aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorJoel Dice <dicej@mailsnare.net>2009-10-20 16:01:21 +0000
committerAndrew Haley <aph@gcc.gnu.org>2009-10-20 16:01:21 +0000
commit5a3a8eb12ea8fa102cfbdbd2429fc119a41f5904 (patch)
tree91b9f4244278d77eb5b23593a3d0f4ca4015ff76 /gcc/java
parenta30f893635475a17a11e58861c472df04c63a90f (diff)
downloadgcc-5a3a8eb12ea8fa102cfbdbd2429fc119a41f5904.zip
gcc-5a3a8eb12ea8fa102cfbdbd2429fc119a41f5904.tar.gz
gcc-5a3a8eb12ea8fa102cfbdbd2429fc119a41f5904.tar.bz2
re PR java/28474 (mangle_name.c mangles names unecessarily)
2009-10-20 Joel Dice <dicej@mailsnare.net> PR java/28474 * mangle_name.c (append_unicode_mangled_name): Fix mangling of names with multiple underscores and "U". (unicode_mangling_length): Likewise. From-SVN: r153021
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog7
-rw-r--r--gcc/java/mangle_name.c10
2 files changed, 15 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 6ce9d58..7815bc8 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,10 @@
+2009-10-20 Joel Dice <dicej@mailsnare.net>
+
+ PR java/28474
+ * mangle_name.c (append_unicode_mangled_name): Fix mangling
+ of names with multiple underscores and "U".
+ (unicode_mangling_length): Likewise.
+
2009-10-03 Simon Baldwin <simonb@google.com>
* config-lang.in (lang_dirs): Remove zlib.
diff --git a/gcc/java/mangle_name.c b/gcc/java/mangle_name.c
index a0e6887..a75f5ca 100644
--- a/gcc/java/mangle_name.c
+++ b/gcc/java/mangle_name.c
@@ -266,7 +266,10 @@ append_unicode_mangled_name (const char *name, int len)
int ch = UTF8_GET(ptr, limit);
if ((ISALNUM (ch) && ch != 'U') || ch == '$')
- obstack_1grow (mangle_obstack, ch);
+ {
+ obstack_1grow (mangle_obstack, ch);
+ uuU = 0;
+ }
/* Everything else needs encoding */
else
{
@@ -321,7 +324,10 @@ unicode_mangling_length (const char *name, int len)
if (ch < 0)
error ("internal error - invalid Utf8 name");
if ((ISALNUM (ch) && ch != 'U') || ch == '$')
- num_chars++;
+ {
+ num_chars++;
+ uuU = 0;
+ }
/* Everything else needs encoding */
else
{