merge from gcc
authorDJ Delorie <dj@redhat.com>
Thu, 20 Nov 2003 02:01:32 +0000 (02:01 +0000)
committerDJ Delorie <dj@redhat.com>
Thu, 20 Nov 2003 02:01:32 +0000 (02:01 +0000)
libiberty/ChangeLog
libiberty/cp-demangle.c

index 26485fcedb82d8797094e6d2b2d2584ffa0b01e5..fc3544d1cfa34f1e8da1c2e07b66cb25ef0663ef 100644 (file)
@@ -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
index a707a833402c56d526d302771bd964c68e411b9f..8caa733c91f54fade968021e82ab9fe74d95877d 100644 (file)
@@ -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));
            
This page took 0.030297 seconds and 4 git commands to generate.