Commit 5859a68d by Jason Merrill Committed by Jason Merrill

gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.

	* gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.

The front end shouldn't produce a GENERIC COND_EXPR of TREE_ADDRESSABLE
type.

From-SVN: r271524
parent c652ff83
2019-05-22 Jason Merrill <jason@redhat.com>
* gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
2019-05-22 H.J. Lu <hongjiu.lu@intel.com> 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
PR target/88483 PR target/88483
......
...@@ -3990,10 +3990,12 @@ gimplify_cond_expr (tree *expr_p, gimple_seq *pre_p, fallback_t fallback) ...@@ -3990,10 +3990,12 @@ gimplify_cond_expr (tree *expr_p, gimple_seq *pre_p, fallback_t fallback)
tree result; tree result;
/* If either an rvalue is ok or we do not require an lvalue, create the /* If either an rvalue is ok or we do not require an lvalue, create the
temporary. But we cannot do that if the type is addressable. */ temporary. We cannot do that if the type is addressable, but
that should have been avoided before we got here. */
if (((fallback & fb_rvalue) || !(fallback & fb_lvalue)) if (((fallback & fb_rvalue) || !(fallback & fb_lvalue))
&& !TREE_ADDRESSABLE (type)) && (flag_checking || !TREE_ADDRESSABLE (type)))
{ {
gcc_assert (!TREE_ADDRESSABLE (type));
if (gimplify_ctxp->allow_rhs_cond_expr if (gimplify_ctxp->allow_rhs_cond_expr
/* If either branch has side effects or could trap, it can't be /* If either branch has side effects or could trap, it can't be
evaluated unconditionally. */ evaluated unconditionally. */
......
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