mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-20 12:41:17 +08:00
re PR java/16789 (ICE in force_evaluation_order() on valid code)
PR java/16789: * parse.y (resolve_qualified_expression_name): Set CAN_COMPLETE_NORMALLY on first call when chaining static calls. * expr.c (force_evaluation_order): Check for empty argument list after stripping COMPOUND_EXPR. From-SVN: r88045
This commit is contained in:
parent
17c08c32de
commit
90424847a6
@ -1,3 +1,11 @@
|
||||
2004-09-24 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
PR java/16789:
|
||||
* parse.y (resolve_qualified_expression_name): Set
|
||||
CAN_COMPLETE_NORMALLY on first call when chaining static calls.
|
||||
* expr.c (force_evaluation_order): Check for empty argument list
|
||||
after stripping COMPOUND_EXPR.
|
||||
|
||||
2004-09-23 Andrew Haley <aph@redhat.com>
|
||||
|
||||
PR java/16927:
|
||||
|
@ -3178,9 +3178,6 @@ force_evaluation_order (tree node)
|
||||
{
|
||||
tree arg, cmp;
|
||||
|
||||
if (!TREE_OPERAND (node, 1))
|
||||
return node;
|
||||
|
||||
arg = node;
|
||||
|
||||
/* Position arg properly, account for wrapped around ctors. */
|
||||
@ -3189,7 +3186,11 @@ force_evaluation_order (tree node)
|
||||
|
||||
arg = TREE_OPERAND (arg, 1);
|
||||
|
||||
/* Not having a list of argument here is an error. */
|
||||
/* An empty argument list is ok, just ignore it. */
|
||||
if (!arg)
|
||||
return node;
|
||||
|
||||
/* Not having a list of arguments here is an error. */
|
||||
if (TREE_CODE (arg) != TREE_LIST)
|
||||
abort ();
|
||||
|
||||
|
@ -9607,6 +9607,9 @@ resolve_qualified_expression_name (tree wfl, tree *found_decl,
|
||||
forcoming function's argument. */
|
||||
if (previous_call_static && is_static)
|
||||
{
|
||||
/* We must set CAN_COMPLETE_NORMALLY for the first call
|
||||
since it is done nowhere else. */
|
||||
CAN_COMPLETE_NORMALLY (decl) = 1;
|
||||
decl = build2 (COMPOUND_EXPR, TREE_TYPE (*where_found),
|
||||
decl, *where_found);
|
||||
TREE_SIDE_EFFECTS (decl) = 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user