diff options
author | Mike Stump <mrs@gcc.gnu.org> | 1996-05-17 21:48:14 +0000 |
---|---|---|
committer | Mike Stump <mrs@gcc.gnu.org> | 1996-05-17 21:48:14 +0000 |
commit | 4847c9386bfbaf333a36d7086c74a4b29f3b1461 (patch) | |
tree | d45ed9209ff2030610011f8365b79f5db25beac6 /gcc/tree.def | |
parent | 3cd456066e16f812b16ea0095bc392adbb94fa8f (diff) | |
download | gcc-4847c9386bfbaf333a36d7086c74a4b29f3b1461.zip gcc-4847c9386bfbaf333a36d7086c74a4b29f3b1461.tar.gz gcc-4847c9386bfbaf333a36d7086c74a4b29f3b1461.tar.bz2 |
expr.c (expand_expr, [...]): Make TARGET_EXPRs redoable for UNSAVE_EXPR.
* expr.c (expand_expr, cond TARGET_EXPR): Make TARGET_EXPRs
redoable for UNSAVE_EXPR.
* stmt.c (expand_decl_cleanup): Wrap the cleanup in an UNSAVE_EXPR
to that we can redo it.
* tree.c (unsave_expr_now): Handle TARGET_EXPRs fully now.
* tree.def (TARGET_EXPR): Add a third field so that TARGET_EXPRs
are redoable.
From-SVN: r12018
Diffstat (limited to 'gcc/tree.def')
-rw-r--r-- | gcc/tree.def | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree.def b/gcc/tree.def index 61f06a9..2b70883 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -406,7 +406,9 @@ DEFTREECODE (INIT_EXPR, "init_expr", "e", 2) /* For TARGET_EXPR, operand 0 is the target of an initialization, operand 1 is the initializer for the target, - and operand 2 is the cleanup for this node, if any. */ + and operand 2 is the cleanup for this node, if any. + and operand 3 is the saved initializer after this node has been + expanded once, this is so we can re-expand the tree later. */ DEFTREECODE (TARGET_EXPR, "target_expr", "e", 3) /* Conditional expression ( ... ? ... : ... in C). |