Commit 7348f18c by Geert Bosch Committed by Eric Botcazou

trans.c (emit_check): Put back a final save_expr to prevent exponential…

trans.c (emit_check): Put back a final save_expr to prevent exponential expansion during gimplification.

	* gcc-interface/trans.c (emit_check): Put back a final save_expr
	to prevent exponential expansion during gimplification.

From-SVN: r141885
parent 708bceb7
2008-11-15 Geert Bosch <bosch@adacore.com>
* gcc-interface/trans.c (emit_check): Put back a final save_expr
to prevent exponential expansion during gimplification.
2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
......@@ -6289,7 +6289,10 @@ emit_check (tree gnu_cond, tree gnu_expr, int reason)
we don't need to evaluate it just for the check. */
TREE_SIDE_EFFECTS (gnu_result) = TREE_SIDE_EFFECTS (gnu_expr);
return gnu_result;
/* ??? Unfortunately, if we don't put a SAVE_EXPR around this whole thing,
we will repeatedly do the test and, at compile time, we will repeatedly
visit it during unsharing, which leads to an exponential explosion. */
return save_expr (gnu_result);
}
/* Return an expression that converts GNU_EXPR to GNAT_TYPE, doing
......
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