summaryrefslogtreecommitdiffstats
path: root/libiberty/cp-demangle.c
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-20 01:48:41 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-20 01:48:41 +0000
commitc8f6de6447f17614d095c5eede9ec99f9c14aff8 (patch)
tree1cac6779cd15d92795c4dc7d9a1e27374106f0e7 /libiberty/cp-demangle.c
parent46390118aca7711661f8064c102a05247b933f36 (diff)
downloadppe42-gcc-c8f6de6447f17614d095c5eede9ec99f9c14aff8.tar.gz
ppe42-gcc-c8f6de6447f17614d095c5eede9ec99f9c14aff8.zip
* cp-demangle.c (demangle_type): Correct thinko in substitution
processing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73751 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty/cp-demangle.c')
-rw-r--r--libiberty/cp-demangle.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index a707a833402..8caa733c91f 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));
OpenPOWER on IntegriCloud