https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118765
--- Comment #8 from Hime Haieto <himehaieto at gmail dot com> --- Alright, so apparently the union example is no longer valid (and the comments you referenced were interesting, and I'd have never found them otherwise!), so yes, scratch that one - the only issue here is for the typedef redeclaration. As shown in the original example, a redeclaration of the typedef exactly as in the attached code is supposed to be valid, and indeed the second declaration does in fact pass with gcc. However, a subsequent third declaration does not.