From 8a48be3a16675308704e80694f6a600b7ad2ead9 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 3 Mar 2006 20:29:35 -0500 Subject: [PATCH] add comment From-SVN: r111701 --- gcc/cp/except.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gcc/cp/except.c b/gcc/cp/except.c index 87e958676fa..d82c07ff329 100644 --- a/gcc/cp/except.c +++ b/gcc/cp/except.c @@ -724,7 +724,11 @@ build_throw (tree exp) temp_expr = NULL_TREE; stabilize_init (exp, &temp_expr); + /* Wrap the initialization in a CLEANUP_POINT_EXPR so that cleanups + for temporaries within the initialization are run before the one + for the exception object, preserving LIFO order. */ exp = build1 (CLEANUP_POINT_EXPR, TREE_TYPE (exp), exp); + if (elided) exp = build2 (TRY_CATCH_EXPR, void_type_node, exp, do_free_exception (ptr)); -- 2.30.2