diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2001-12-04 10:30:04 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2001-12-04 10:30:04 +0000 |
commit | d1bd43d95082914bdc5e6f782ed0a919ff4305e2 (patch) | |
tree | 764fcb1b30f9b79f8a0f0dc4fa3f07a61527c096 /gcc/expr.c | |
parent | 1b3ea405b0f468e456251a24fede3012be58b3ff (diff) | |
download | gcc-d1bd43d95082914bdc5e6f782ed0a919ff4305e2.zip gcc-d1bd43d95082914bdc5e6f782ed0a919ff4305e2.tar.gz gcc-d1bd43d95082914bdc5e6f782ed0a919ff4305e2.tar.bz2 |
stmt.c (expand_expr_stmt): Keep last_expr_value non-NULL iff we're interested in the result.
* stmt.c (expand_expr_stmt): Keep last_expr_value non-NULL iff
we're interested in the result. Use it to tell whether to
ignore results of enclosed expressions.
(expand_start_stmt_expr): Added new argument, and initialize
last_expr_value accordingly.
* tree.h (expand_start_stmt_expr): Adjusted declaration.
* c-common.c (c_expand_expr): Adjust call.
* expr.c (expand_expr) [EXPR_WFL]: Pass const0_rtx down if
ignoring the result.
From-SVN: r47607
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -6528,7 +6528,9 @@ expand_expr (exp, target, tmode, modifier) if (EXPR_WFL_EMIT_LINE_NOTE (exp)) emit_line_note (input_filename, lineno); /* Possibly avoid switching back and forth here. */ - to_return = expand_expr (EXPR_WFL_NODE (exp), target, tmode, modifier); + to_return = expand_expr (EXPR_WFL_NODE (exp), + target || ! ignore ? target : const0_rtx, + tmode, modifier); input_filename = saved_input_filename; lineno = saved_lineno; return to_return; |