parse.y (build_string_concatenation): Only use StringBuffer(String) shortcut if Strin...
authorAnthony Green <green@cygnus.com>
Sun, 16 Jan 2000 23:56:06 +0000 (23:56 +0000)
committerAnthony Green <green@gcc.gnu.org>
Sun, 16 Jan 2000 23:56:06 +0000 (23:56 +0000)
2000-01-16  Anthony Green  <green@cygnus.com>

* parse.y (build_string_concatenation): Only use
StringBuffer(String) shortcut if String arg is constant.

From-SVN: r31450

gcc/java/ChangeLog
gcc/java/parse.c
gcc/java/parse.y

index bf03a83bf4c41b867e580d391fc443889a8e5b86..09d79d321f953f97b087041a30fa67dd9ab2ea54 100644 (file)
@@ -1,3 +1,8 @@
+2000-01-16  Anthony Green  <green@cygnus.com>
+
+       * parse.y (build_string_concatenation): Only use
+       StringBuffer(String) shortcut if String arg is constant.
+
 2000-01-11  Mumit Khan  <khan@xraylith.wisc.edu>
 
        * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
index 9cb374d601ebd85c3c47fb8c3d8d267358c99ebc..72b64b49bdd9fad89a557819e1b206aa28480e12 100644 (file)
@@ -2257,7 +2257,7 @@ static const short yycheck[] = {     3,
 #define YYPURE 1
 
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/lib/bison.simple"
+#line 3 "/home/green/cygnus/njava/i0/share/bison.simple"
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -2450,7 +2450,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/lib/bison.simple"
+#line 196 "/home/green/cygnus/njava/i0/share/bison.simple"
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -4750,7 +4750,7 @@ case 495:
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/lib/bison.simple"
+#line 498 "/home/green/cygnus/njava/i0/share/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -12821,9 +12821,9 @@ build_string_concatenation (op1, op2)
   if (!IS_CRAFTED_STRING_BUFFER_P (op1))
     {
       /* Two solutions here: 
-        1) OP1 is a string reference, we call new StringBuffer(OP1)
-        2) OP1 is something else, we call new StringBuffer().append(OP1). */
-      if (JSTRING_TYPE_P (TREE_TYPE (op1)))
+        1) OP1 is a constant string reference, we call new StringBuffer(OP1)
+        2) OP1 is something else, we call new StringBuffer().append(OP1).  */
+      if (TREE_CONSTANT (op1) && JSTRING_TYPE_P (TREE_TYPE (op1)))
        op1 = BUILD_STRING_BUFFER (op1);
       else
        {
index 0c2f6b85c56f06c552e3c6b996b2f7fb5b0668d2..85635082dded1e81ff7d6ba46579c3068d7378f6 100644 (file)
@@ -10218,9 +10218,9 @@ build_string_concatenation (op1, op2)
   if (!IS_CRAFTED_STRING_BUFFER_P (op1))
     {
       /* Two solutions here: 
-        1) OP1 is a string reference, we call new StringBuffer(OP1)
-        2) OP1 is something else, we call new StringBuffer().append(OP1). */
-      if (JSTRING_TYPE_P (TREE_TYPE (op1)))
+        1) OP1 is a constant string reference, we call new StringBuffer(OP1)
+        2) OP1 is something else, we call new StringBuffer().append(OP1).  */
+      if (TREE_CONSTANT (op1) && JSTRING_TYPE_P (TREE_TYPE (op1)))
        op1 = BUILD_STRING_BUFFER (op1);
       else
        {