Commit df77f454 by Jason Merrill Committed by Jason Merrill

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
parent 301a8f95
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> 2005-11-11 Zdenek Dvorak <dvorakz@suse.cz>
PR rtl-optimization/22509 PR rtl-optimization/22509
......
...@@ -3810,14 +3810,18 @@ gimplify_cleanup_point_expr (tree *expr_p, tree *pre_p) ...@@ -3810,14 +3810,18 @@ gimplify_cleanup_point_expr (tree *expr_p, tree *pre_p)
tree temp = voidify_wrapper_expr (*expr_p, NULL); tree temp = voidify_wrapper_expr (*expr_p, NULL);
/* We only care about the number of conditions between the innermost /* 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; int old_conds = gimplify_ctxp->conditions;
tree old_cleanups = gimplify_ctxp->conditional_cleanups;
gimplify_ctxp->conditions = 0; gimplify_ctxp->conditions = 0;
gimplify_ctxp->conditional_cleanups = NULL_TREE;
body = TREE_OPERAND (*expr_p, 0); body = TREE_OPERAND (*expr_p, 0);
gimplify_to_stmt_list (&body); gimplify_to_stmt_list (&body);
gimplify_ctxp->conditions = old_conds; gimplify_ctxp->conditions = old_conds;
gimplify_ctxp->conditional_cleanups = old_cleanups;
for (iter = tsi_start (body); !tsi_end_p (iter); ) for (iter = tsi_start (body); !tsi_end_p (iter); )
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment