]> gcc.gnu.org Git - gcc.git/commitdiff
cp-demangle.c (demangle_operator_name): Add spaces before names beginning with a...
authorZack Weinberg <zack@wolery.cumb.org>
Fri, 9 Jun 2000 18:55:36 +0000 (18:55 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Fri, 9 Jun 2000 18:55:36 +0000 (18:55 +0000)
* cp-demangle.c (demangle_operator_name): Add spaces before
names beginning with a letter: delete, delete[], new, new[],
sizeof.
(demangle_special_name): Handle TF <type> and TJ <type>.

From-SVN: r34477

libiberty/ChangeLog
libiberty/cp-demangle.c

index 872d26212f473566731b2fc9a1afae658a168464..e7bac6d47585fc0bc523e1d43246d94947161fc4 100644 (file)
@@ -1,3 +1,10 @@
+2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cp-demangle.c (demangle_operator_name): Add spaces before
+       names beginning with a letter: delete, delete[], new, new[],
+       sizeof.
+       (demangle_special_name): Handle TF <type> and TJ <type>.
+
 Thu Jun  8 18:52:24 2000  Philippe De Muyter  <phdm@macqel.be>
 
        * cp-demangle.c (template_arg_list_new): Revert previous PARAMS patch.
index fc961d81a83e2a679f3ec65995945375e8a8abf4..b1c405549ec1f0dbd2e6784a737111ede77bfd54 100644 (file)
@@ -1327,9 +1327,9 @@ demangle_operator_name (dm, short_name, num_args)
     { "cm", ","        , 2 },
     { "co", "~"        , 1 },
     { "dV", "/="       , 2 },
-    { "da", "delete[]" , 1 },
+    { "da", " delete[]", 1 },
     { "de", "*"        , 1 },
-    { "dl", "delete"   , 1 },
+    { "dl", " delete"  , 1 },
     { "dv", "/"        , 2 },
     { "eO", "^="       , 2 },
     { "eo", "^"        , 2 },
@@ -1346,11 +1346,11 @@ demangle_operator_name (dm, short_name, num_args)
     { "mi", "-"        , 2 },
     { "ml", "*"        , 2 },
     { "mm", "--"       , 1 },
-    { "na", "new[]"    , 1 },
+    { "na", " new[]"   , 1 },
     { "ne", "!="       , 2 },
     { "ng", "-"        , 1 },
     { "nt", "!"        , 1 },
-    { "nw", "new"      , 1 },
+    { "nw", " new"     , 1 },
     { "oR", "|="       , 2 },
     { "oo", "||"       , 2 },
     { "or", "|"        , 2 },
@@ -1364,7 +1364,7 @@ demangle_operator_name (dm, short_name, num_args)
     { "rS", ">>="      , 2 },
     { "rm", "%"        , 2 },
     { "rs", ">>"       , 2 },
-    { "sz", "sizeof"   , 1 }
+    { "sz", " sizeof"  , 1 }
   };
 
   const int num_operators = 
@@ -1439,10 +1439,12 @@ demangle_operator_name (dm, short_name, num_args)
                    ::= TI <type>          # typeinfo structure
                   ::= TS <type>          # typeinfo name  
 
-   Also demangles the special g++ mangling,
+   Also demangles the special g++ manglings,
 
     <special-name> ::= CT <type> <offset number> _ <base type>
-                                          # construction vtable  */
+                                          # construction vtable
+                  ::= TF <type>          # typeinfo function (old ABI only)
+                  ::= TJ <type>          # java Class structure  */
 
 static status_t
 demangle_special_name (dm)
@@ -1490,6 +1492,13 @@ demangle_special_name (dm)
          RETURN_IF_ERROR (demangle_type (dm));
          break;
 
+       case 'F':
+         /* Typeinfo function.  Used only in old ABI with new mangling.  */
+         advance_char (dm);
+         result_append (dm, "typeinfo fn for ");
+         RETURN_IF_ERROR (demangle_type (dm));
+         break;
+
        case 'S':
          /* Character string containing type name, used in typeinfo. */
          advance_char (dm);
@@ -1497,6 +1506,13 @@ demangle_special_name (dm)
          RETURN_IF_ERROR (demangle_type (dm));
          break;
 
+       case 'J':
+         /* The java Class variable corresponding to a C++ class.  */
+         advance_char (dm);
+         result_append (dm, "java Class for ");
+         RETURN_IF_ERROR (demangle_type (dm));
+         break;
+
        case 'h':
          /* Non-virtual thunk.  */
          advance_char (dm);
This page took 0.186736 seconds and 5 git commands to generate.