Bug 16015

Summary: [4.0 Regression] xfailed g++.dg/ext/stmtexpr1.C
Product: gcc Reporter: Richard Henderson <rth>
Component: c++Assignee: Jason Merrill <jason>
Status: RESOLVED FIXED    
Severity: normal CC: gcc-bugs
Priority: P2 Keywords: xfail
Version: 4.0.0   
Target Milestone: 4.0.0   
Host: Target:
Build: Known to work:
Known to fail: Last reconfirmed: 2004-06-16 21:23:01
Attachments: Statement expression test that never worked.

Description Richard Henderson 2004-06-16 08:36:03 UTC
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.
Comment 1 Richard Henderson 2004-06-16 08:37:29 UTC
Created attachment 6539 [details]
Statement expression test that never worked.
Comment 2 Andrew Pinski 2004-06-16 21:23:00 UTC
Confirmed.
Comment 3 GCC Commits 2004-06-17 22:35:57 UTC
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

Comment 4 Jason Merrill 2004-06-17 22:39:31 UTC
feexd