https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112716
--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to uecker from comment #11) > I asked the C FE and it wants to get this fixed. That was a funny comment? But yes, when there are new C standards like C23 changing interoperability rules a GCC extension needs to be amended to say how it behaves here. I would simply say the types covered by the GCC extension are exempt from the C23 tag compatibility rules. That said - if C23 tag compatibility is something like the C++ ODR then the frontend could produce a "mangling" (simply the tag name) and direct the middle-end to handle compatibility that way. Note that C++ specifically exempts "local" types from the ODR. I think C is wrong here to not allow this - it will basically force all structs with that T to be "compatible" whether or not the types are even structurally related?