aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2003-11-20 01:48:41 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2003-11-20 01:48:41 +0000
commit6df5a5c72a98bd1a6c0ddbfd342e233ef7840f72 (patch)
tree1cac6779cd15d92795c4dc7d9a1e27374106f0e7
parent3d4f0dab0968a64820b83130b126bad22aa2ed2b (diff)
downloadgcc-6df5a5c72a98bd1a6c0ddbfd342e233ef7840f72.zip
gcc-6df5a5c72a98bd1a6c0ddbfd342e233ef7840f72.tar.gz
gcc-6df5a5c72a98bd1a6c0ddbfd342e233ef7840f72.tar.bz2
cp-demangle.c (demangle_type): Correct thinko in substitution processing.
* cp-demangle.c (demangle_type): Correct thinko in substitution processing. From-SVN: r73751
-rw-r--r--libiberty/ChangeLog5
-rw-r--r--libiberty/cp-demangle.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index fe871ff..c81fb84 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,8 @@
+2003-11-19 Mark Mitchell <mark@codesourcery.com>
+
+ * cp-demangle.c (demangle_type): Correct thinko in substitution
+ processing.
+
2003-11-18 Ian Lance Taylor <ian@wasabisystems.com>
* cp-demangle.c (demangle_operator_name): Remove space before
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index a707a83..8caa733 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -2557,10 +2557,12 @@ demangle_type (dm)
case 'S':
/* First check if this is a special substitution. If it is,
this is a <class-enum-type>. Special substitutions have a
- letter following the `S'; other substitutions have a digit
- or underscore. */
+ lower-case letter following the `S'; other substitutions
+ have a digit, upper-case letter, or underscore. */
peek_next = peek_char_next (dm);
- if (IS_DIGIT (peek_next) || peek_next == '_')
+ if (IS_DIGIT (peek_next)
+ || (peek_next >= 'A' && peek_next <= 'Z')
+ || peek_next == '_')
{
RETURN_IF_ERROR (demangle_substitution (dm, &encode_return_type));