aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <merrill@gnu.org>1996-03-20 06:11:33 +0000
committerJason Merrill <merrill@gnu.org>1996-03-20 06:11:33 +0000
commitba9d9bfa1c53e9ef319a84279e213ded7844d4e5 (patch)
tree6787395589ff9a90e7eaca3fb5146a9184d599b2 /gcc
parent375826d208867401acfccbadd827ed5615128e9c (diff)
downloadgcc-ba9d9bfa1c53e9ef319a84279e213ded7844d4e5.zip
gcc-ba9d9bfa1c53e9ef319a84279e213ded7844d4e5.tar.gz
gcc-ba9d9bfa1c53e9ef319a84279e213ded7844d4e5.tar.bz2
(demangle_template): Fix for non-mangled pointer
arguments. From-SVN: r11572
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cplus-dem.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/cplus-dem.c b/gcc/cplus-dem.c
index da0ffff..a7f8680 100644
--- a/gcc/cplus-dem.c
+++ b/gcc/cplus-dem.c
@@ -1067,11 +1067,17 @@ demangle_template (work, mangled, tname, trawname)
{
char *p = xmalloc (symbol_len + 1), *q;
strncpy (p, *mangled, symbol_len);
+ p [symbol_len] = '\0';
q = cplus_demangle (p, work->options);
string_appendn (tname, "&", 1);
- string_append (tname, q);
+ if (q)
+ {
+ string_append (tname, q);
+ free (q);
+ }
+ else
+ string_append (tname, p);
free (p);
- free (q);
}
*mangled += symbol_len;
}