diff options
author | Jason Merrill <jason@redhat.com> | 2004-06-17 18:35:55 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2004-06-17 18:35:55 -0400 |
commit | 2692eb7d0ea1757cbf2508f001be9ee9f2f87ed3 (patch) | |
tree | 2b8aade990ea880a225c9d2959e1a6b93ece70bb /gcc/tree.def | |
parent | 6ffbdf03e5d6863c7441dce9adab8fbf724bc8a4 (diff) | |
download | gcc-2692eb7d0ea1757cbf2508f001be9ee9f2f87ed3.tar.gz |
re PR c++/16015 (xfailed g++.dg/ext/stmtexpr1.C)
PR c++/16015
* gimplify.c (gimplify_target_expr): Handle void initializer.
* expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
* doc/c-tree.texi (Expression trees): Update TARGET_EXPR
and AGGR_INIT_EXPR.
* cp/semantics.c (simplify_aggr_init_expr): Don't return the slot.
(finish_stmt_expr_expr): Update type after conversions.
(finish_stmt_expr): Wrap initializer in CLEANUP_POINT_EXPR.
Handle void initializer.
* cp/tree.c (build_cplus_new): Make AGGR_INIT_EXPRs void.
From-SVN: r83320
Diffstat (limited to 'gcc/tree.def')
-rw-r--r-- | gcc/tree.def | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/tree.def b/gcc/tree.def index 5c40c8a163f..3e911113ee4 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -435,10 +435,11 @@ DEFTREECODE (MODIFY_EXPR, "modify_expr", 'e', 2) 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 3 is the saved initializer after this node has been - expanded once, this is so we can re-expand the tree later. */ + operand 1 is the initializer for the target, which may be void + if simplify expanding it initializes the target. + operand 2 is the cleanup for this node, if any. + 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', 4) /* Conditional expression ( ... ? ... : ... in C). |