https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114067
--- Comment #3 from Jason Liam <jlame646 at gmail dot com> --- (In reply to Andrew Pinski from comment #2) > Actually A at that point is incomplete type. Yes, it is incomplete at that point but that is not the reason for the program to be ill-formed. The reason is that `A` is a class-type and not an integral/enumeration type.