OSDN Git Service

* stmt.c (expand_decl_cleanup_no_eh): New fn.
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Nov 1997 20:03:49 +0000 (20:03 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Nov 1997 20:03:49 +0000 (20:03 +0000)
commitedf8c644ff4706070f741122edb2ff2d9b81c453
treebcf117ed27d06a44b18a74813ec3d1623001099e
parenta9a2f83c7e239a70b5b972c9da28493a01afbb18
* stmt.c (expand_decl_cleanup_no_eh): New fn.

* except.c (expand_leftover_cleanups): do_pending_stack_adjust.

Complete nested exception support.
* except.c (do_pop_exception): Split out...
(push_eh_cleanup): From here.  Handle the EH region by hand.
(expand_start_catch_block): Add a new level for the catch parm.
Move the rethrow region outside the two cleanup regions.
Protect the initializer for the catch parm with terminate.
(expand_end_catch_block): Likewise.  End the region for the eh_cleanup.
* exception.cc (__cp_pop_exception): Now takes two parms.  Handle
popping off the middle of the stack.
* tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR,
WITH_CLEANUP_EXPR, and UNSAVE_EXPR.
(build_cplus_new): Only wrap CALL_EXPRs.
* init.c (expand_default_init): Handle a TRY_CATCH_EXPR around
the constructor call.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16419 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/Make-lang.in
gcc/cp/except.c
gcc/cp/exception.cc
gcc/cp/init.c
gcc/cp/tree.c
gcc/except.c
gcc/stmt.c