]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR c++/15764 (no cleanup if temporary's dtor terminates with an exception)
authorJason Merrill <jason@redhat.com>
Wed, 3 Oct 2007 10:43:42 +0000 (06:43 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 3 Oct 2007 10:43:42 +0000 (06:43 -0400)
commita24549d472e2235a6042b96e08a1278d4856fabd
tree450766beb0e73108d3ac65ded3af710cf9a23474
parent7a3c4b3ef39ecd9b3d7aab86f188871d9ea5f11a
re PR c++/15764 (no cleanup if temporary's dtor terminates with an exception)

        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.

From-SVN: r128979
gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/passes.c
gcc/testsuite/g++.dg/eh/init-temp1.C [new file with mode: 0644]
gcc/tree-eh.c
gcc/tree-pass.h