> I think the issue is that we set SUBREG_PROMOTED_* on something that is > possibly not so (aka uninitialized in this case).
Yes, that's what I called inherent weakness of the promoted subregs mechanism. > We may only set it if either the ABI or a previous operation forced it to. > Maybe this is also the reason why we need this zero init pass in some cases > (though that isn't a full solution either). Do you think that we should zero-init all the unsigned promoted subregs (and sign-extend-init all the signed promoted subregs)? That sounds like a big hammer to me, but I can give it a try. -- Eric Botcazou