From c52b57714b25f9cdfd4977325a68b2bf62b07de3 Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Sun, 16 Jan 2000 23:56:06 +0000 Subject: [PATCH] parse.y (build_string_concatenation): Only use StringBuffer(String) shortcut if String arg is constant. 2000-01-16 Anthony Green * parse.y (build_string_concatenation): Only use StringBuffer(String) shortcut if String arg is constant. From-SVN: r31450 --- gcc/java/ChangeLog | 5 +++++ gcc/java/parse.c | 12 ++++++------ gcc/java/parse.y | 6 +++--- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index bf03a83bf4c..09d79d321f9 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +2000-01-16 Anthony Green + + * parse.y (build_string_concatenation): Only use + StringBuffer(String) shortcut if String arg is constant. + 2000-01-11 Mumit Khan * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros. diff --git a/gcc/java/parse.c b/gcc/java/parse.c index 9cb374d601e..72b64b49bdd 100644 --- a/gcc/java/parse.c +++ b/gcc/java/parse.c @@ -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 -#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" 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 { diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 0c2f6b85c56..85635082dde 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -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 { -- 2.30.2