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