OSDN Git Service

* cp-demangle.c (d_identifier): In Java mode, skip an optional '$'
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 20 Dec 2003 15:53:06 +0000 (15:53 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 20 Dec 2003 15:53:06 +0000 (15:53 +0000)
after the identifier.
* testsuite/demangle-expected: Add test case.

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

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

index 695c450..20d6552 100644 (file)
@@ -1,3 +1,9 @@
+2003-12-20  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * cp-demangle.c (d_identifier): In Java mode, skip an optional '$'
+       after the identifier.
+       * testsuite/demangle-expected: Add test case.
+
 2003-12-19  Ian Lance Taylor  <ian@wasabisystems.com>
 
        Fix for PR c++/13447:
index 27e09df..1e5684c 100644 (file)
@@ -1341,6 +1341,13 @@ d_identifier (di, len)
   name = d_str (di);
   d_advance (di, len);
 
+  /* A Java mangled name may have a trailing '$' if it is a C++
+     keyword.  This '$' is not included in the length count.  We just
+     ignore the '$'.  */
+  if ((di->options & DMGL_JAVA) != 0
+      && d_peek_char (di) == '$')
+    d_advance (di, 1);
+
   /* Look for something which looks like a gcc encoding of an
      anonymous namespace, and replace it with a more user friendly
      name.  */
index 8bae90e..dd36b7a 100644 (file)
@@ -2591,6 +2591,10 @@ Prim.i(int, boolean, byte, double, float, char, java.lang.String, short, long)
 _ZN4java4util14Map__U24_Entry11class__U24_E
 java.util.Map$Entry.class$
 #
+--format=java
+_ZN3org7eclipse3cdt5debug8internal4core5model9CVariable6sizeof$Ev
+org.eclipse.cdt.debug.internal.core.model.CVariable.sizeof()
+#
 --format=hp
 _Utf58_0_1__1_2147483647__2147483648
 _Utf58_0_1__1_2147483647__2147483648