On Thu, Jan 09, 2025 at 09:39:49PM -0500, Jason Merrill wrote:
> > @@ -6685,7 +6692,14 @@ gimplify_modify_expr (tree *expr_p, gimp
> >         /* Don't do this for calls that return addressable types, 
> > expand_call
> >      relies on those having a lhs.  */
> >         && !(TREE_ADDRESSABLE (TREE_TYPE (*from_p))
> > -      && TREE_CODE (*from_p) == CALL_EXPR))
> > +      && TREE_CODE (*from_p) == CALL_EXPR)
> > +      /* And similarly don't do that for rhs being CONSTRUCTOR with
> > +    CONSTRUCTOR_ZERO_PADDING_BITS set.  */
> > +      && !(TREE_CODE (*expr_p) == INIT_EXPR
> > +      && TREE_CODE (*to_p) == CONSTRUCTOR
> > +      && CONSTRUCTOR_ZERO_PADDING_BITS (*to_p)
> 
> Shouldn't these two *to_p be *from_p?  Is this hunk actually doing anything
> as is?

Thanks for catching this.
Yes, I think it should be *from_p instead of *to_p, but changing that
regresses the new testcase (nothing else).
So I'll have to debug that.

        Jakub

Reply via email to