https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117490
--- Comment #1 from uecker at gcc dot gnu.org --- I believe the optimization is valid because what is relevant are the types used for the accesses in 'f2' so 's1' and 's2_alt' which are not compatible with each other. The type in the other TU is irrelevant. Yes, this is then a cross-TU type safety issue, but WG14 did not want to fix this.