From: Tom Tromey Date: Tue, 12 Sep 2006 19:51:08 +0000 (+0000) Subject: * expr.c (push_value): Always flush quick stack. X-Git-Tag: releases/gcc-4.2.0~1417 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ff682191312962bc020b67112b517a98552c70d3;p=thirdparty%2Fgcc.git * expr.c (push_value): Always flush quick stack. From-SVN: r116905 --- diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index af1c42b12e45..756fbcf7e427 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,7 @@ +2006-09-12 Tom Tromey + + * expr.c (push_value): Always flush quick stack. + 2006-09-12 Tom Tromey PR java/29013: diff --git a/gcc/java/expr.c b/gcc/java/expr.c index 26cd7da50789..3cb3db7bb2c0 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -301,6 +301,13 @@ push_value (tree value) TREE_CHAIN (node) = quick_stack; quick_stack = node; } + /* If the value has a side effect, then we need to evaluate it + whether or not the result is used. If the value ends up on the + quick stack and is then popped, this won't happen -- so we flush + the quick stack. It is safest to simply always flush, though, + since TREE_SIDE_EFFECTS doesn't capture COMPONENT_REF, and for + the latter we may need to strip conversions. */ + flush_quick_stack (); } /* Pop a type from the type stack.