diff options
author | Jason Merrill <jason@redhat.com> | 2000-12-05 12:29:12 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2000-12-05 12:29:12 -0500 |
commit | b5d1497d5e46e39bd4360f3233a36be9bcded599 (patch) | |
tree | 5ee6a7415e7a494832f2584dde1f4545083edad7 /libiberty | |
parent | f56887a78f92924a34a2226f4ac546c21f1ff686 (diff) | |
download | gcc-b5d1497d5e46e39bd4360f3233a36be9bcded599.zip gcc-b5d1497d5e46e39bd4360f3233a36be9bcded599.tar.gz gcc-b5d1497d5e46e39bd4360f3233a36be9bcded599.tar.bz2 |
cp-demangle.c (cplus_demangle_v3): Check that it's a v3 mangled name before allocating the dyn_string.
* cp-demangle.c (cplus_demangle_v3): Check that it's a v3 mangled
name before allocating the dyn_string.
From-SVN: r38043
Diffstat (limited to 'libiberty')
-rw-r--r-- | libiberty/ChangeLog | 5 | ||||
-rw-r--r-- | libiberty/cp-demangle.c | 12 |
2 files changed, 15 insertions, 2 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 9a5a13f..0656e8c 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,8 @@ +2000-12-05 Jason Merrill <jason@redhat.com> + + * cp-demangle.c (cplus_demangle_v3): Check that it's a v3 mangled + name before allocating the dyn_string. + 2000-12-04 Jason Merrill <jason@redhat.com> * cp-demangle.c: s/new_abi/v3/. diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index 5787f74..1cc4847 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -3600,10 +3600,18 @@ char * cplus_demangle_v3 (mangled) const char* mangled; { + dyn_string_t demangled; + status_t status; + + /* If this isn't a mangled name, don't pretend to demangle it. */ + if (strncmp (mangled, "_Z", 2) != 0) + return NULL; + /* Create a dyn_string to hold the demangled name. */ - dyn_string_t demangled = dyn_string_new (0); + demangled = dyn_string_new (0); /* Attempt the demangling. */ - status_t status = cp_demangle ((char *) mangled, demangled); + status = cp_demangle ((char *) mangled, demangled); + if (STATUS_NO_ERROR (status)) /* Demangling succeeded. */ { |