From e0afe616d4883f8dcfdafda44373d3f8190b9e20 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Thu, 22 Oct 1998 14:48:22 +0000 Subject: [PATCH] * init.c (build_new_1): Delay cleanup until end of full expression. From-SVN: r23223 --- gcc/cp/ChangeLog | 4 ++++ gcc/cp/init.c | 11 ----------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8bdc1629445..f2be60cb0c9 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +1998-10-22 Martin v. Löwis + + * init.c (build_new_1): Delay cleanup until end of full expression. + 1998-10-21 Jason Merrill * typeck.c (build_component_ref): Use of a type here is an error. diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 47c83558d53..87c4a596f64 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2444,9 +2444,6 @@ build_new_1 (exp) if (cleanup) { -#if 0 - /* Disable this until flow is fixed so that it doesn't - think the initialization of sentry is a dead write. */ tree end, sentry, begin, buf, t = TREE_TYPE (rval); begin = get_target_expr (boolean_true_node); @@ -2469,14 +2466,6 @@ build_new_1 (exp) rval = build (COMPOUND_EXPR, t, begin, build (COMPOUND_EXPR, t, rval, build (COMPOUND_EXPR, t, end, buf))); -#else - /* FIXME: this is a workaround for a crash due to overlapping - exception regions. Cleanups shouldn't really happen here. */ - rval = build1 (CLEANUP_POINT_EXPR, TREE_TYPE (rval), rval); - - rval = build (TRY_CATCH_EXPR, TREE_TYPE (rval), rval, cleanup); - rval = build (COMPOUND_EXPR, TREE_TYPE (rval), alloc_expr, rval); -#endif } } } -- 2.30.2