https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107871
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- No. They are only allowed to be implementation-defined types, not program-defined types. I can add the casts to make this work, but I don't think it's a real problem that can occur in valid programs.