diff options
Diffstat (limited to 'gcc/cp/except.c')
-rw-r--r-- | gcc/cp/except.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cp/except.c b/gcc/cp/except.c index b6e8eea..3217f27 100644 --- a/gcc/cp/except.c +++ b/gcc/cp/except.c @@ -388,6 +388,9 @@ initialize_handler_parm (tree decl, tree exp) See also expand_default_init. */ init = ocp_convert (TREE_TYPE (decl), init, CONV_IMPLICIT|CONV_FORCE_TEMP, 0); + /* Force cleanups now to avoid nesting problems with the + MUST_NOT_THROW_EXPR. */ + init = build1 (CLEANUP_POINT_EXPR, TREE_TYPE (init), init); init = build1 (MUST_NOT_THROW_EXPR, TREE_TYPE (init), init); } |