aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.def
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2004-06-17 18:35:55 -0400
committerJason Merrill <jason@gcc.gnu.org>2004-06-17 18:35:55 -0400
commit2692eb7d0ea1757cbf2508f001be9ee9f2f87ed3 (patch)
tree2b8aade990ea880a225c9d2959e1a6b93ece70bb /gcc/tree.def
parent6ffbdf03e5d6863c7441dce9adab8fbf724bc8a4 (diff)
downloadgcc-2692eb7d0ea1757cbf2508f001be9ee9f2f87ed3.zip
gcc-2692eb7d0ea1757cbf2508f001be9ee9f2f87ed3.tar.gz
gcc-2692eb7d0ea1757cbf2508f001be9ee9f2f87ed3.tar.bz2
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.def9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/tree.def b/gcc/tree.def
index 5c40c8a..3e91111 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).