re PR target/20799 (bad relocs for new/delete overrides)
authorAndrew Pinski <pinskia@physics.uc.edu>
Wed, 24 Aug 2005 01:50:54 +0000 (01:50 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Wed, 24 Aug 2005 01:50:54 +0000 (18:50 -0700)
2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>

        PR target/20799
        * config/darwin.c (machopic_select_section): Remove the hack to
        mark "::operator new" and "::operator delete" for coalescing
        even though they are not weak.

From-SVN: r103426

gcc/ChangeLog
gcc/config/darwin.c

index 29c899e..7aeeacd 100644 (file)
@@ -1,3 +1,10 @@
+2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR target/20799
+       * config/darwin.c (machopic_select_section): Remove the hack to
+       mark "::operator new" and "::operator delete" for coalescing
+       even though they are not weak.
+
 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
 
        * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
index fd503ef..c7cd1a3 100644 (file)
@@ -1118,28 +1118,6 @@ machopic_select_section (tree exp, int reloc,
       else
        base_function ();
     }
-  /* ::operator new and ::operator delete must be coalesced, even
-     if not weak.  There are 8 variants that we look for.  */
-  else if (TREE_CODE (exp) == FUNCTION_DECL
-          && ! DECL_ONE_ONLY (exp))
-    {
-      const char * name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (exp));
-      if (name[0] == '_' && name[1] == 'Z'
-         && ((name[2] == 'n' && (name[3] == 'a' || name[3] == 'w')
-              && name[4] == 'm')
-             || (name[2] == 'd' && (name[3] == 'a' || name[3] == 'l')
-                 && name[4] == 'P' && name[5] == 'v')))
-       {
-         bool delete_p = name[2] == 'd';
-         if (name[5 + delete_p] == 0
-             || strcmp (name + 5 + delete_p, "KSt9nothrow_t") == 0)
-           base_funs[reloc][1] ();
-         else
-           base_function ();
-       }
-      else
-       base_function ();
-    }
   else
     base_function ();
 }