This test is now xfailed on mainline because ({A <10> (), A<11> (); }).Foo (), A<12> (); no longer works as expected. I'm unclear on how this ever worked, since a related test case (to be attached) doesn't pass on any version of gcc. Jason said he'd poke at the problem.
Created attachment 6539 [details] Statement expression test that never worked.
Confirmed.
Subject: Bug 16015 CVSROOT: /cvs/gcc Module name: gcc Changes by: jason@gcc.gnu.org 2004-06-17 22:35:55 Modified files: gcc : ChangeLog expr.c gimplify.c tree.def gcc/cp : ChangeLog semantics.c tree.c gcc/doc : c-tree.texi gcc/testsuite/g++.dg/ext: stmtexpr1.C Log message: 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. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.4021&r2=2.4022 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/expr.c.diff?cvsroot=gcc&r1=1.652&r2=1.653 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/gimplify.c.diff?cvsroot=gcc&r1=2.16&r2=2.17 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.def.diff?cvsroot=gcc&r1=1.78&r2=1.79 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4109&r2=1.4110 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/semantics.c.diff?cvsroot=gcc&r1=1.401&r2=1.402 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/tree.c.diff?cvsroot=gcc&r1=1.378&r2=1.379 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/c-tree.texi.diff?cvsroot=gcc&r1=1.57&r2=1.58 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/stmtexpr1.C.diff?cvsroot=gcc&r1=1.2&r2=1.3
feexd