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?

Reply via email to