From 2b8b44d804ffe857a774976ebcabac927f25cfb3 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Mon, 8 Dec 1997 02:25:36 +0000 Subject: [PATCH] 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 --- gcc/cp/ChangeLog | 3 +++ gcc/cp/except.c | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d2049dfd230..8476d56a1cb 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ Sun Dec 7 15:53:06 1997 Jason Merrill + * 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 diff --git a/gcc/cp/except.c b/gcc/cp/except.c index cb170210922..3d62c771845 100644 --- a/gcc/cp/except.c +++ b/gcc/cp/except.c @@ -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. */ -- 2.30.2