mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-04 17:40:25 +08:00
except.c (expand_start_catch_block): suspend_momentary for the terminate handler.
* except.c (expand_start_catch_block): suspend_momentary for the terminate handler. From-SVN: r17003
This commit is contained in:
parent
14cd4d23c8
commit
2b8b44d804
@ -1,5 +1,8 @@
|
||||
Sun Dec 7 15:53:06 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* except.c (expand_start_catch_block): suspend_momentary for the
|
||||
terminate handler.
|
||||
|
||||
* error.c (dump_decl): Handle LOOKUP_EXPR.
|
||||
|
||||
Sun Dec 7 15:45:07 1997 Mark Mitchell <mmitchell@usa.net>
|
||||
|
@ -598,12 +598,15 @@ expand_start_catch_block (declspecs, declarator)
|
||||
must call terminate. See eh23.C. */
|
||||
if (TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (decl)))
|
||||
{
|
||||
int yes = suspend_momentary ();
|
||||
tree term = build_function_call (Terminate, NULL_TREE);
|
||||
resume_momentary (yes);
|
||||
|
||||
/* Generate the copy constructor call directly so we can wrap it.
|
||||
See also expand_default_init. */
|
||||
init = ocp_convert (TREE_TYPE (decl), init,
|
||||
CONV_IMPLICIT|CONV_FORCE_TEMP, 0);
|
||||
init = build (TRY_CATCH_EXPR, TREE_TYPE (init), init,
|
||||
build_function_call (Terminate, NULL_TREE));
|
||||
init = build (TRY_CATCH_EXPR, TREE_TYPE (init), init, term);
|
||||
}
|
||||
|
||||
/* Let `cp_finish_decl' know that this initializer is ok. */
|
||||
|
Loading…
Reference in New Issue
Block a user