(demangle_template): Fix for non-mangled pointer
authorJason Merrill <merrill@gnu.org>
Wed, 20 Mar 1996 06:11:33 +0000 (06:11 +0000)
committerJason Merrill <merrill@gnu.org>
Wed, 20 Mar 1996 06:11:33 +0000 (06:11 +0000)
        arguments.

From-SVN: r11572

gcc/cplus-dem.c

index da0ffffd1cc013e9abe8eec11bb3fd408d1d69cf..a7f86802278928c1d088ee1d6a293f16e8e84b93 100644 (file)
@@ -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;
            }