On Thu, Apr 25, 2019 at 04:58:57PM +0200, Richard Biener wrote: > 2019-04-25 Richard Biener <rguent...@suse.de> > > PR middle-end/89765 > * gimplify.c (gimplify_expr): Avoid turning a lvalue > VIEW_CONVERT_EXPR into one operating on an rvalue.
Successfully bootstrapped/regtested on {powerpc64{,le},x86_64,i686}-linux. > --- gcc/gimplify.c (revision 270574) > +++ gcc/gimplify.c (working copy) > @@ -12397,7 +12397,8 @@ gimplify_expr (tree *expr_p, gimple_seq > break; > > case VIEW_CONVERT_EXPR: > - if (is_gimple_reg_type (TREE_TYPE (*expr_p)) > + if ((fallback & fb_rvalue) > + && is_gimple_reg_type (TREE_TYPE (*expr_p)) > && is_gimple_reg_type (TREE_TYPE (TREE_OPERAND (*expr_p, 0)))) > { > ret = gimplify_expr (&TREE_OPERAND (*expr_p, 0), pre_p, Jakub