mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-19 03:40:26 +08:00
re PR java/10459 (ICE with certain expressions as 3rd clause of for loop)
PR java/10459: * parse.y (finish_for_loop): Do nothing if update expression is a EXPR_WFL_NODE wrapping nothing. (java_complete_lhs) <COMPOUND_EXPR>: Likewise. From-SVN: r66411
This commit is contained in:
parent
a6f1f688a6
commit
fcc8cecb81
@ -1,3 +1,10 @@
|
||||
2003-05-01 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
PR java/10459:
|
||||
* parse.y (finish_for_loop): Do nothing if update expression is a
|
||||
EXPR_WFL_NODE wrapping nothing.
|
||||
(java_complete_lhs) <COMPOUND_EXPR>: Likewise.
|
||||
|
||||
2003-05-02 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* lex.h (input_lineno): Remove declaration.
|
||||
|
@ -11771,7 +11771,9 @@ java_complete_lhs (tree node)
|
||||
nn = wfl_op2;
|
||||
if (TREE_CODE (nn) == EXPR_WITH_FILE_LOCATION)
|
||||
nn = EXPR_WFL_NODE (nn);
|
||||
if (TREE_CODE (nn) != EXIT_EXPR)
|
||||
/* NN can be NULL_TREE exactly when UPDATE is, in
|
||||
finish_for_loop. */
|
||||
if (nn != NULL_TREE && TREE_CODE (nn) != EXIT_EXPR)
|
||||
{
|
||||
SET_WFL_OPERATOR (wfl_operator, node, wfl_op2);
|
||||
if (SUPPRESS_UNREACHABLE_ERROR (nn))
|
||||
@ -14928,12 +14930,17 @@ finish_for_loop (int location, tree condition, tree update, tree body)
|
||||
tree up2 = update;
|
||||
if (TREE_CODE (up2) == EXPR_WITH_FILE_LOCATION)
|
||||
up2 = EXPR_WFL_NODE (up2);
|
||||
/* Try to detect constraint violations. These would be
|
||||
programming errors somewhere. */
|
||||
if (! IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (up2)))
|
||||
|| TREE_CODE (up2) == LOOP_EXPR)
|
||||
abort ();
|
||||
SUPPRESS_UNREACHABLE_ERROR (up2) = 1;
|
||||
/* It is possible for the update expression to be an
|
||||
EXPR_WFL_NODE wrapping nothing. */
|
||||
if (up2 != NULL_TREE && up2 != empty_stmt_node)
|
||||
{
|
||||
/* Try to detect constraint violations. These would be
|
||||
programming errors somewhere. */
|
||||
if (! IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (up2)))
|
||||
|| TREE_CODE (up2) == LOOP_EXPR)
|
||||
abort ();
|
||||
SUPPRESS_UNREACHABLE_ERROR (up2) = 1;
|
||||
}
|
||||
}
|
||||
LOOP_EXPR_BODY_UPDATE_BLOCK (LOOP_EXPR_BODY (loop)) = update;
|
||||
return loop;
|
||||
|
Loading…
x
Reference in New Issue
Block a user