* Makefile.am: Run "make dep-am".
[deliverable/binutils-gdb.git] / binutils / objdump.c
index 59a173161cc2352341cb07dd0705f97c9c2cc44f..2687b6e74a7b9b97aa3f9247406b445df2da1147 100644 (file)
@@ -22,6 +22,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "bfd.h"
 #include "progress.h"
 #include "bucomm.h"
+#include "budemang.h"
 #include "getopt.h"
 #include "safe-ctype.h"
 #include "dis-asm.h"
@@ -630,29 +631,20 @@ objdump_print_symname (abfd, info, sym)
 {
   char *alloc;
   const char *name;
-  const char *print;
 
   alloc = NULL;
   name = bfd_asymbol_name (sym);
-  if (! do_demangle || name[0] == '\0')
-    print = name;
-  else
+  if (do_demangle && name[0] != '\0')
     {
       /* Demangle the name.  */
-      if (bfd_get_symbol_leading_char (abfd) == name[0])
-       ++name;
-
-      alloc = cplus_demangle (name, DMGL_ANSI | DMGL_PARAMS);
-      if (alloc == NULL)
-       print = name;
-      else
-       print = alloc;
+      alloc = demangle (abfd, name);
+      name = alloc;
     }
 
   if (info != NULL)
-    (*info->fprintf_func) (info->stream, "%s", print);
+    (*info->fprintf_func) (info->stream, "%s", name);
   else
-    printf ("%s", print);
+    printf ("%s", name);
 
   if (alloc != NULL)
     free (alloc);
@@ -957,8 +949,8 @@ show_line (abfd, section, addr_offset)
      asection *section;
      bfd_vma addr_offset;
 {
-  CONST char *filename;
-  CONST char *functionname;
+  const char *filename;
+  const char *functionname;
   unsigned int line;
 
   if (! with_line_numbers && ! with_source_code)
@@ -2316,24 +2308,16 @@ dump_symbols (abfd, dynamic)
              const char *name;
              char *alloc;
 
-             name = bfd_asymbol_name (*current);
+             name = (*current)->name;
              alloc = NULL;
              if (do_demangle && name != NULL && *name != '\0')
                {
-                 const char *n;
-
                  /* If we want to demangle the name, we demangle it
                      here, and temporarily clobber it while calling
                      bfd_print_symbol.  FIXME: This is a gross hack.  */
 
-                 n = name;
-                 if (bfd_get_symbol_leading_char (cur_bfd) == *n)
-                   ++n;
-                 alloc = cplus_demangle (n, DMGL_ANSI | DMGL_PARAMS);
-                 if (alloc != NULL)
-                   (*current)->name = alloc;
-                 else
-                   (*current)->name = n;
+                 alloc = demangle (cur_bfd, name);
+                 (*current)->name = alloc;
                }
 
              bfd_print_symbol (cur_bfd, stdout, *current,
@@ -2543,7 +2527,7 @@ dump_reloc_set (abfd, sec, relpp, relcount)
        }
       else
        {
-         if (section_name == (CONST char *) NULL)
+         if (section_name == (const char *) NULL)
            section_name = "*unknown*";
          bfd_printf_vma (abfd, q->address);
          printf (" %-16s  [%s]",
This page took 0.025748 seconds and 4 git commands to generate.