aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/expr.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2004-09-24 15:39:17 +0000
committerTom Tromey <tromey@gcc.gnu.org>2004-09-24 15:39:17 +0000
commit90424847a67993e2cb9b0832371f45b2b64d9048 (patch)
tree716092990a2a64abdb5612e435b1a99a3f1f51b0 /gcc/java/expr.c
parent17c08c32dedfe91dbd6cea4f24d9216630f9aaa9 (diff)
downloadgcc-90424847a67993e2cb9b0832371f45b2b64d9048.zip
gcc-90424847a67993e2cb9b0832371f45b2b64d9048.tar.gz
gcc-90424847a67993e2cb9b0832371f45b2b64d9048.tar.bz2
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
Diffstat (limited to 'gcc/java/expr.c')
-rw-r--r--gcc/java/expr.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 33d3afd..33c048f 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -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 ();