https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108194
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- If you use typeof instead of __typeof, and -std=c2x, these types are treated as compatible. I deliberately kept the existing semantics for __typeof, and for typeof in pre-C2x modes, when implementing C2x typeof; see the commit message for commit fa258f6894801aef6785f0327594dc803da63fbd.