OSDN Git Service

include/
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 May 2005 23:29:54 +0000 (23:29 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 May 2005 23:29:54 +0000 (23:29 +0000)
* demangle.h (DEMANGLE_COMPONENT_HIDDEN_ALIAS): New.
libiberty/
* cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_HIDDEN_ALIAS.
(d_make_comp, d_print_comp): Likewise.
(d_special_name): Generate one.
* testsuite/demangle-expected: Add a hidden alias test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100174 138bc75d-0d04-0410-961f-82ee72b054a4

include/ChangeLog
include/demangle.h
libiberty/ChangeLog
libiberty/cp-demangle.c
libiberty/testsuite/demangle-expected

index 5265c31..e7eb8e0 100644 (file)
@@ -1,3 +1,7 @@
+2005-05-25  Richard Henderson  <rth@redhat.com>
+
+       * demangle.h (DEMANGLE_COMPONENT_HIDDEN_ALIAS): New.
+
 2005-05-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
        * libiberty.h (ACONCAT): Properly cast value of alloca().
index 944a951..304a4c4 100644 (file)
@@ -239,6 +239,9 @@ enum demangle_component_type
   /* A reference temporary.  This has one subtree, the name for which
      this is a temporary.  */
   DEMANGLE_COMPONENT_REFTEMP,
+  /* A hidden alias.  This has one subtree, the encoding for which it
+     is providing alternative linkage.  */
+  DEMANGLE_COMPONENT_HIDDEN_ALIAS,
   /* A standard substitution.  This holds the name of the
      substitution.  */
   DEMANGLE_COMPONENT_SUB_STD,
index 8f034b5..853e897 100644 (file)
@@ -1,3 +1,10 @@
+2005-05-25  Richard Henderson  <rth@redhat.com>
+
+       * cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_HIDDEN_ALIAS.
+       (d_make_comp, d_print_comp): Likewise.
+       (d_special_name): Generate one.
+       * testsuite/demangle-expected: Add a hidden alias test.
+
 2005-05-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
        * configure.ac: Check declarations for calloc(), getenv(),
index 856fbd4..6174439 100644 (file)
@@ -520,6 +520,9 @@ d_dump (struct demangle_component *dc, int indent)
     case DEMANGLE_COMPONENT_REFTEMP:
       printf ("reference temporary\n");
       break;
+    case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
+      printf ("hidden alias\n");
+      break;
     case DEMANGLE_COMPONENT_RESTRICT:
       printf ("restrict\n");
       break;
@@ -733,6 +736,7 @@ d_make_comp (struct d_info *di, enum demangle_component_type type,
     case DEMANGLE_COMPONENT_JAVA_CLASS:
     case DEMANGLE_COMPONENT_GUARD:
     case DEMANGLE_COMPONENT_REFTEMP:
+    case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
     case DEMANGLE_COMPONENT_POINTER:
     case DEMANGLE_COMPONENT_REFERENCE:
     case DEMANGLE_COMPONENT_COMPLEX:
@@ -1439,6 +1443,7 @@ d_operator_name (struct d_info *di)
                   ::= TF <type>
                   ::= TJ <type>
                   ::= GR <name>
+                 ::= GA <encoding>
 */
 
 static struct demangle_component *
@@ -1529,6 +1534,10 @@ d_special_name (struct d_info *di)
          return d_make_comp (di, DEMANGLE_COMPONENT_REFTEMP, d_name (di),
                              NULL);
 
+       case 'A':
+         return d_make_comp (di, DEMANGLE_COMPONENT_HIDDEN_ALIAS,
+                             d_encoding (di, 0), NULL);
+
        default:
          return NULL;
        }
@@ -2931,6 +2940,11 @@ d_print_comp (struct d_print_info *dpi,
       d_print_comp (dpi, d_left (dc));
       return;
 
+    case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
+      d_append_string_constant (dpi, "hidden alias for ");
+      d_print_comp (dpi, d_left (dc));
+      return;
+
     case DEMANGLE_COMPONENT_SUB_STD:
       d_append_buffer (dpi, dc->u.s_string.string, dc->u.s_string.len);
       return;
index d38ce33..f8e402d 100644 (file)
@@ -3771,3 +3771,7 @@ _Z1ZZ2Z::__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4em
 _test_array__L_1__B23b___clean.6
 _test_array__L_1__B23b___clean.6
 _test_array__L_1__B23b___clean.6
+#
+--format=java
+_ZGAN4java4lang5Class7forNameEPNS0_6StringE
+hidden alias for java.lang.Class.forName(java.lang.String)