aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/parse.y
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>2000-06-26 16:39:28 +0000
committerTom Tromey <tromey@gcc.gnu.org>2000-06-26 16:39:28 +0000
commit774d2baf5040b0a86bb07931e01b4d2811611eab (patch)
treef323f28b8378fae6c4fd2672df4df5516145968c /gcc/java/parse.y
parentde9a31710355e889b79ae02ff1b4af3c46e352ac (diff)
downloadgcc-774d2baf5040b0a86bb07931e01b4d2811611eab.zip
gcc-774d2baf5040b0a86bb07931e01b4d2811611eab.tar.gz
gcc-774d2baf5040b0a86bb07931e01b4d2811611eab.tar.bz2
re GNATS gcj/268 (Internal compiler error in for-loop test condition)
* parse.y (for_statement): Wrap expression in a WFL if it is a constant. For PR gcj/268. From-SVN: r34712
Diffstat (limited to 'gcc/java/parse.y')
-rw-r--r--gcc/java/parse.y6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 5429d41..95a3593 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -1631,7 +1631,11 @@ do_statement:
for_statement:
for_begin SC_TK expression SC_TK for_update CP_TK statement
- { $$ = finish_for_loop (EXPR_WFL_LINECOL ($3), $3, $5, $7); }
+ {
+ if (TREE_CODE_CLASS (TREE_CODE ($3)) == 'c')
+ $3 = build_wfl_node ($3);
+ $$ = finish_for_loop (EXPR_WFL_LINECOL ($3), $3, $5, $7);
+ }
| for_begin SC_TK SC_TK for_update CP_TK statement
{
$$ = finish_for_loop (0, NULL_TREE, $4, $6);