https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112716
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Not that local types are never "merged" for cross-TU aliasing, they keep being distinct types. In particular this applies to VLA types since the reference to function-local vars ties them to the function IL sections and thus they do not become subject to global var/type unification. If it's undefined in C then the behavior is OK and expected. I don't think the C standard requirement can extend to VLA types this way.