linux64.h (DBX_OUTPUT_BRAC): Treat function name passed as NAME as if it were label...
authorAlan Modra <amodra@bigpond.net.au>
Tue, 13 Sep 2005 23:29:31 +0000 (23:29 +0000)
committerAlan Modra <amodra@gcc.gnu.org>
Tue, 13 Sep 2005 23:29:31 +0000 (08:59 +0930)
* config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
passed as NAME as if it were label at start of function code.

From-SVN: r104245

gcc/ChangeLog
gcc/config/rs6000/linux64.h

index 90007c4d4bf07ca5d0cc5af8cc85fbdfca30e281..79973924aee14946a41ba9bc7351b795916ac6fa 100644 (file)
@@ -1,3 +1,8 @@
+2005-09-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
+       passed as NAME as if it were label at start of function code.
+
 2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>
 
        * config/sh/sh.md (*movv4sf_i): Add general register cases to
index 31bf8ac86ed369ab823c21166ce44de60bd18981..1c4dc1f312abbc0cf316d62606e808f70c347655 100644 (file)
@@ -494,10 +494,19 @@ while (0)
     {                                                                  \
       const char *s;                                                   \
       dbxout_begin_stabn (BRAC);                                       \
-      assemble_name (FILE, NAME);                                      \
-      putc ('-', FILE);                                                        \
       s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0);                \
-      rs6000_output_function_entry (FILE, s);                          \
+      /* dbxout_block passes this macro the function name as NAME,     \
+        assuming that it is the function code start label.  In our     \
+        case, the function name is the OPD entry.  dbxout_block is     \
+        broken, hack around it here.  */                               \
+      if (NAME == s)                                                   \
+       putc ('0', FILE);                                               \
+      else                                                             \
+       {                                                               \
+         assemble_name (FILE, NAME);                                   \
+         putc ('-', FILE);                                             \
+         rs6000_output_function_entry (FILE, s);                       \
+       }                                                               \
       putc ('\n', FILE);                                               \
     }                                                                  \
   while (0)