aboutsummaryrefslogtreecommitdiff
path: root/ld/ldmisc.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2002-01-25 12:22:42 +0000
committerAlan Modra <amodra@gmail.com>2002-01-25 12:22:42 +0000
commit6d39955ebe7b9029474cfa994b74ea86409e9456 (patch)
tree611da551a47280e4e28a73f3a9aa6dc225d303c3 /ld/ldmisc.c
parentcc9ff76a522c9e798c72ec034ab0779b9e941fc0 (diff)
downloadgdb-6d39955ebe7b9029474cfa994b74ea86409e9456.zip
gdb-6d39955ebe7b9029474cfa994b74ea86409e9456.tar.gz
gdb-6d39955ebe7b9029474cfa994b74ea86409e9456.tar.bz2
* ldmisc.c (demangle): Put back dots when string not demangled.
Diffstat (limited to 'ld/ldmisc.c')
-rw-r--r--ld/ldmisc.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/ld/ldmisc.c b/ld/ldmisc.c
index 25b7857..42adcee 100644
--- a/ld/ldmisc.c
+++ b/ld/ldmisc.c
@@ -1,5 +1,6 @@
/* ldmisc.c
- Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+ Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ 2000, 2002
Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support.
@@ -69,18 +70,20 @@ demangle (string)
const char *string;
{
char *res;
+ const char *p;
if (output_bfd != NULL
&& bfd_get_symbol_leading_char (output_bfd) == string[0])
++string;
- /* This is a hack for better error reporting on XCOFF, or the MS PE
- format. Xcoff has a single '.', while the NT PE for PPC has
- '..'. So we remove all of them. */
- while (string[0] == '.')
- ++string;
+ /* This is a hack for better error reporting on XCOFF, PowerPC64-ELF
+ or the MS PE format. These formats have a number of leading '.'s
+ on at least some symbols, so we remove all dots. */
+ p = string;
+ while (*p == '.')
+ ++p;
- res = cplus_demangle (string, DMGL_ANSI | DMGL_PARAMS);
+ res = cplus_demangle (p, DMGL_ANSI | DMGL_PARAMS);
return res ? res : xstrdup (string);
}