diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-24 04:02:22 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-24 04:02:22 +0000 |
commit | f356b17104639c5aee88ac3b1b9fe1c0a0ad78de (patch) | |
tree | 6fc1328e20e8ac209f7778f91545696375e14ba0 /libiberty | |
parent | 23c096757e6b13e3ab7792d414dad3bca4f822a0 (diff) | |
download | gcc-f356b17104639c5aee88ac3b1b9fe1c0a0ad78de.tar.gz |
* cp-demangle.c (__cxa_demangle): Adjust last patch to handle
empty string correctly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78353 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty')
-rw-r--r-- | libiberty/ChangeLog | 3 | ||||
-rw-r--r-- | libiberty/cp-demangle.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 97ba223979e..a43fb90272b 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,5 +1,8 @@ 2004-02-23 Ian Lance Taylor <ian@wasabisystems.com> + * cp-demangle.c (__cxa_demangle): Adjust last patch to handle + empty string correctly. + * cp-demangle.c (__cxa_demangle): It is not an error if status is not NULL. It is an error if the mangled name is the same as a built-in type name. diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index 4d0dd7e5b70..be7a569f0ee 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -3964,8 +3964,8 @@ __cxa_demangle (mangled_name, output_buffer, length, status) internal built-in type names are a single lower case character. Frankly, this simplistic disambiguation doesn't make sense to me, but it is documented, so we implement it here. */ - if (mangled_name[1] == '\0' - && IS_LOWER (mangled_name[0]) + if (IS_LOWER (mangled_name[0]) + && mangled_name[1] == '\0' && cplus_demangle_builtin_types[mangled_name[0] - 'a'].name != NULL) { if (status != NULL) |