summaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-20 15:53:06 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-20 15:53:06 +0000
commitabe6933af0078a21a7425fb036d9ca6fcf254ba3 (patch)
treee970f35297e4cc02bc84b48420d39d67eaedf34c /libiberty
parent53366bcba3748c5db5000450372bfdff8d9b0899 (diff)
downloadgcc-abe6933af0078a21a7425fb036d9ca6fcf254ba3.tar.gz
* cp-demangle.c (d_identifier): In Java mode, skip an optional '$'
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
Diffstat (limited to 'libiberty')
-rw-r--r--libiberty/ChangeLog6
-rw-r--r--libiberty/cp-demangle.c7
-rw-r--r--libiberty/testsuite/demangle-expected4
3 files changed, 17 insertions, 0 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 695c45059dc..20d6552a7d3 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -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:
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index 27e09df7288..1e5684c1520 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -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. */
diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected
index 8bae90eb0a5..dd36b7a24fd 100644
--- a/libiberty/testsuite/demangle-expected
+++ b/libiberty/testsuite/demangle-expected
@@ -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