Commit 01842234 by Richard Kenner

(expand_expr, case COND_EXPR): Protect the condition from being evaluated more than once.

(expand_expr, case COND_EXPR): Protect the condition from being evaluated more
than once.
(do_jump, case TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR): Likewise.

From-SVN: r10055
parent 586c5437
...@@ -6013,6 +6013,7 @@ expand_expr (exp, target, tmode, modifier) ...@@ -6013,6 +6013,7 @@ expand_expr (exp, target, tmode, modifier)
TREE_TYPE (cond) = integer_type_node; TREE_TYPE (cond) = integer_type_node;
RTL_EXPR_RTL (cond) = flag; RTL_EXPR_RTL (cond) = flag;
RTL_EXPR_SEQUENCE (cond) = NULL_RTX; RTL_EXPR_SEQUENCE (cond) = NULL_RTX;
cond = save_expr (cond);
if (! left_cleanups) if (! left_cleanups)
left_cleanups = integer_zero_node; left_cleanups = integer_zero_node;
...@@ -8950,6 +8951,7 @@ do_jump (exp, if_false_label, if_true_label) ...@@ -8950,6 +8951,7 @@ do_jump (exp, if_false_label, if_true_label)
TREE_TYPE (cond) = integer_type_node; TREE_TYPE (cond) = integer_type_node;
RTL_EXPR_RTL (cond) = flag; RTL_EXPR_RTL (cond) = flag;
RTL_EXPR_SEQUENCE (cond) = NULL_RTX; RTL_EXPR_SEQUENCE (cond) = NULL_RTX;
cond = save_expr (cond);
new_cleanups = build (COND_EXPR, void_type_node, new_cleanups = build (COND_EXPR, void_type_node,
truthvalue_conversion (cond), truthvalue_conversion (cond),
...@@ -9007,6 +9009,7 @@ do_jump (exp, if_false_label, if_true_label) ...@@ -9007,6 +9009,7 @@ do_jump (exp, if_false_label, if_true_label)
TREE_TYPE (cond) = integer_type_node; TREE_TYPE (cond) = integer_type_node;
RTL_EXPR_RTL (cond) = flag; RTL_EXPR_RTL (cond) = flag;
RTL_EXPR_SEQUENCE (cond) = NULL_RTX; RTL_EXPR_SEQUENCE (cond) = NULL_RTX;
cond = save_expr (cond);
new_cleanups = build (COND_EXPR, void_type_node, new_cleanups = build (COND_EXPR, void_type_node,
truthvalue_conversion (cond), truthvalue_conversion (cond),
......
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