Commit 519087cf by Eric Botcazou Committed by Eric Botcazou

gimplify.c (mostly_copy_tree_r): Revert latest change.

	* gimplify.c (mostly_copy_tree_r): Revert latest change.
	(gimplify_save_expr): Likewise.

From-SVN: r250238
parent e1813e4b
2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
* gimplify.c (mostly_copy_tree_r): Revert latest change.
(gimplify_save_expr): Likewise.
2017-07-07 Jan Hubicka <hubicka@ucw.cz>
* ipa-visibility.c (function_and_variable_visibility): Fix pasto.
......
......@@ -818,7 +818,12 @@ mostly_copy_tree_r (tree *tp, int *walk_subtrees, void *data)
/* Stop at types, decls, constants like copy_tree_r. */
else if (TREE_CODE_CLASS (code) == tcc_type
|| TREE_CODE_CLASS (code) == tcc_declaration
|| TREE_CODE_CLASS (code) == tcc_constant)
|| TREE_CODE_CLASS (code) == tcc_constant
/* We can't do anything sensible with a BLOCK used as an
expression, but we also can't just die when we see it
because of non-expression uses. So we avert our eyes
and cross our fingers. Silly Java. */
|| code == BLOCK)
*walk_subtrees = 0;
/* Cope with the statement expression extension. */
......@@ -5802,10 +5807,19 @@ gimplify_save_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
/* If the SAVE_EXPR has not been resolved, then evaluate it once. */
if (!SAVE_EXPR_RESOLVED_P (*expr_p))
{
gcc_assert (TREE_TYPE (val) != void_type_node);
/* The temporary may not be an SSA name as later abnormal and EH
control flow may invalidate use/def domination. */
val = get_initialized_tmp_var (val, pre_p, post_p, false);
/* The operand may be a void-valued expression such as SAVE_EXPRs
generated by the Java frontend for class initialization. It is
being executed only for its side-effects. */
if (TREE_TYPE (val) == void_type_node)
{
ret = gimplify_expr (&TREE_OPERAND (*expr_p, 0), pre_p, post_p,
is_gimple_stmt, fb_none);
val = NULL;
}
else
/* The temporary may not be an SSA name as later abnormal and EH
control flow may invalidate use/def domination. */
val = get_initialized_tmp_var (val, pre_p, post_p, false);
TREE_OPERAND (*expr_p, 0) = val;
SAVE_EXPR_RESOLVED_P (*expr_p) = 1;
......
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