diff options
author | Jason Merrill <merrill@gnu.org> | 1996-03-20 06:11:33 +0000 |
---|---|---|
committer | Jason Merrill <merrill@gnu.org> | 1996-03-20 06:11:33 +0000 |
commit | ba9d9bfa1c53e9ef319a84279e213ded7844d4e5 (patch) | |
tree | 6787395589ff9a90e7eaca3fb5146a9184d599b2 /gcc | |
parent | 375826d208867401acfccbadd827ed5615128e9c (diff) | |
download | gcc-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.c | 10 |
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; } |