This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/15764] no cleanup if temporary's dtor terminates with an exception
- From: "jason at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 Oct 2007 10:43:53 -0000
- Subject: [Bug c++/15764] no cleanup if temporary's dtor terminates with an exception
- References: <bug-15764-5779@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #10 from jason at gcc dot gnu dot org 2007-10-03 10:43 -------
Subject: Bug 15764
Author: jason
Date: Wed Oct 3 10:43:42 2007
New Revision: 128979
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128979
Log:
PR c++/15764
* cp/decl.c (wrap_cleanups_r): New fn.
(wrap_temporary_cleanups): New fn.
(initialize_local_var): Call it.
* tree-eh.c (same_handler_p): New fn.
(optimize_double_finally): New fn.
(refactor_eh_r): New fn.
(refactor_eh): New fn.
(pass_refactor_eh): New pass.
* tree-pass.h: Declare it.
* passes.c (init_optimization_passes): Add it.
Added:
trunk/gcc/testsuite/g++.dg/eh/init-temp1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/passes.c
trunk/gcc/tree-eh.c
trunk/gcc/tree-pass.h
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15764