https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99673
--- Comment #16 from Richard Biener <rguenth at gcc dot gnu.org> --- To summarize again - the late waccess pass runs after object sizes for addresses are no longer preserved so it should not rely on those to be precise to the original sub-object (at the same offset). In this case whole struct B vs. it's first element i. We might want to forcefully canonicalize addresses to the outermost object at same object (that also makes the IL smaller), there's just no place this fits in nicely. I suppose the object-size pass itself could do this.