Created attachment 6862 [details] Compiler output (-v -save-temps)
Created attachment 6863 [details] Source code (-save-temps)
Confirmed, reduced testcase: struct A { A(int); }; void xd(int t) { throw(3,A(t)) ; } Related to PR 16338.
: Search converges between 2004-05-11-trunk (#454) and 2004-05-14-trunk (#455).
This one is the one with respect that a COMPOUND_EXPR comes into play: <compound_expr 0x415c8438 type <void_type 0x415d4f80 void VOID align 8 symtab 0 alias set -1 pointer_to_this <pointer_type 0x415d5000>> side-effects arg 0 <convert_expr 0x41758cc0 type <void_type 0x415d4f80 void> constant invariant arg 0 <integer_cst 0x41758be0 constant invariant 3>> arg 1 <aggr_init_expr 0x415c8410 type <void_type 0x415d4f80 void> side-effects tree_0 arg 0 <addr_expr 0x41758ca0 type <pointer_type 0x41797800> constant invariant arg 0 <function_decl 0x41793900 __comp_ctor>> arg 1 <tree_list 0x41795618 value <integer_cst 0x41758c00 constant invariant 0> chain <tree_list 0x41795630 value <parm_decl 0x41793d00 t>>> arg 2 <var_decl 0x41797900 type <record_type 0x41793200 A> addressable QI file t.cc line 5 size <integer_cst 0x415c7d00 constant invariant 8> unit size <integer_cst 0x415c7ca0 constant invariant 1> align 8 context <function_decl 0x41793e00 xd>>>>
Jason, this is another problem with stabilize_init and friends, so I've assigned this to you.
Subject: Bug 16851 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_4-branch Changes by: jason@gcc.gnu.org 2004-08-25 05:33:03 Modified files: gcc/cp : ChangeLog tree.c semantics.c Log message: PR c++/16851 * tree.c (stabilize_init): See through a COMPOUND_EXPR. PR c++/15461 * semantics.c (nullify_returns_r): Replace a DECL_STMT for the NRV with an INIT_EXPR. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3892.2.152&r2=1.3892.2.153 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/tree.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.360.4.8&r2=1.360.4.9 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/semantics.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.381.4.13&r2=1.381.4.14
Fixed so far on the 3.4 branch.
Subject: Bug 16851 CVSROOT: /cvs/gcc Module name: gcc Changes by: jason@gcc.gnu.org 2004-08-28 02:35:15 Modified files: gcc/cp : tree.c ChangeLog Added files: gcc/testsuite/g++.dg/eh: throw2.C Log message: PR c++/16851 * tree.c (stabilize_init): See through a COMPOUND_EXPR. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/tree.c.diff?cvsroot=gcc&r1=1.407&r2=1.408 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4314&r2=1.4315 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/eh/throw2.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
Fixed.