From 6a921942a1af7a25bb2fff16a0cb247907b1b5b2 Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Tue, 8 Oct 2002 07:10:49 +0000 Subject: Fix string concatenation bug. From-SVN: r57912 --- gcc/java/parse.y | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'gcc/java/parse.y') diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 217f74c..bb7155b 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -13773,8 +13773,19 @@ merge_string_cste (op1, op2, after) string = null_pointer; else if (TREE_TYPE (op2) == char_type_node) { - ch[0] = (char )TREE_INT_CST_LOW (op2); - ch[1] = '\0'; + /* Convert the character into UTF-8. */ + unsigned char c = (unsigned char) TREE_INT_CST_LOW (op2); + unsigned char *p = (unsigned char *) ch; + if (0x01 <= c + && c <= 0x7f) + *p++ = c; + else + { + *p++ = c >> 6 | 0xc0; + *p++ = c & 0x3f | 0x80; + } + *p = '\0'; + string = ch; } else -- cgit v1.1