stmt.c (expand_decl_cleanup_no_eh): New fn.
authorJason Merrill <jason@gcc.gnu.org>
Mon, 10 Nov 1997 20:03:49 +0000 (15:03 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 10 Nov 1997 20:03:49 +0000 (15:03 -0500)
commitc7ae64f2cc5733e40bfb3ca6a58a63ece97691e3
treebcf117ed27d06a44b18a74813ec3d1623001099e
parent26f578a2286268f9ec2815978264f2647d6516ff
stmt.c (expand_decl_cleanup_no_eh): New fn.

* 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.

From-SVN: r16419
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