Tested on x86_64-suse-linux, applied on the mainline as obvious.
2013-11-23 Eric Botcazou <ebotca...@adacore.com>
* gimplify.h (recalculate_side_effects): Delete.
* gimplify.c (recalculate_side_effects): Make static and add comment.
ada/
* gcc-interface/trans.c (Loop_Statement_to_gnu): Set TREE_SIDE_EFFECTS
on the conditional expression directly.
--
Eric Botcazou
Index: gimplify.c
===================================================================
--- gimplify.c (revision 205300)
+++ gimplify.c (working copy)
@@ -1757,7 +1757,9 @@ gimplify_var_or_parm_decl (tree *expr_p)
return GS_ALL_DONE;
}
-void
+/* Recalculate the value of the TREE_SIDE_EFFECTS flag for T. */
+
+static void
recalculate_side_effects (tree t)
{
enum tree_code code = TREE_CODE (t);
Index: gimplify.h
===================================================================
--- gimplify.h (revision 205300)
+++ gimplify.h (working copy)
@@ -64,7 +64,6 @@ extern tree unshare_expr (tree);
extern tree unshare_expr_without_location (tree);
extern tree voidify_wrapper_expr (tree, tree);
extern tree build_and_jump (tree *);
-extern void recalculate_side_effects (tree);
extern enum gimplify_status gimplify_self_mod_expr (tree *, gimple_seq *,
gimple_seq *, bool, tree);
extern tree gimple_boolify (tree);
Index: ada/gcc-interface/trans.c
===================================================================
--- ada/gcc-interface/trans.c (revision 205300)
+++ ada/gcc-interface/trans.c (working copy)
@@ -2808,8 +2808,8 @@ Loop_Statement_to_gnu (Node_Id gnat_node
if (gnu_cond_expr)
{
COND_EXPR_THEN (gnu_cond_expr) = gnu_loop_stmt;
+ TREE_SIDE_EFFECTS (gnu_cond_expr) = 1;
gnu_result = gnu_cond_expr;
- recalculate_side_effects (gnu_cond_expr);
}
else
gnu_result = gnu_loop_stmt;