re PR c++/24686 (ICE when building a variation of NMSTL)

PR c++/24686
        * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
        the cleanup list.

From-SVN: r106786
This commit is contained in:
Jason Merrill 2005-11-11 12:14:49 -05:00 committed by Jason Merrill
parent 301a8f9577
commit df77f45463
2 changed files with 11 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2005-11-11 Jason Merrill <jason@redhat.com>
PR c++/24686
* gimplify.c (gimplify_cleanup_point_expr): Also save and restore
the cleanup list.
2005-11-11 Zdenek Dvorak <dvorakz@suse.cz>
PR rtl-optimization/22509

View File

@ -3810,14 +3810,18 @@ gimplify_cleanup_point_expr (tree *expr_p, tree *pre_p)
tree temp = voidify_wrapper_expr (*expr_p, NULL);
/* We only care about the number of conditions between the innermost
CLEANUP_POINT_EXPR and the cleanup. So save and reset the count. */
CLEANUP_POINT_EXPR and the cleanup. So save and reset the count and
any cleanups collected outside the CLEANUP_POINT_EXPR. */
int old_conds = gimplify_ctxp->conditions;
tree old_cleanups = gimplify_ctxp->conditional_cleanups;
gimplify_ctxp->conditions = 0;
gimplify_ctxp->conditional_cleanups = NULL_TREE;
body = TREE_OPERAND (*expr_p, 0);
gimplify_to_stmt_list (&body);
gimplify_ctxp->conditions = old_conds;
gimplify_ctxp->conditional_cleanups = old_cleanups;
for (iter = tsi_start (body); !tsi_end_p (iter); )
{