https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121527
--- Comment #22 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Eric Botcazou from comment #21) > > Yeah, I'm looking at what "breaks Ada" means, so I'm testing the attached, > > a more consistent dropping of this stripping. > > Alternatively, the problematic VIEW_CONVERT_EXPR is generated for upcasting > and we probably can do better in the front-end (gigi) for it. I'm not exactly sure how so. For constant sizes you could use a BIT_FIELD_REF, but for variable sizes there's no good alternative (a V_C_E to a fake union plus component-ref maybe?). That said, the upcasting is always to a same or smaller size type, it'll never be a "paradoxical subreg", right?