Re: Compiler warnings while compiling gcc with clang‏

Renato Golin
Tue May 5 08:01:00 GMT 2015

On 5 May 2015 at 05:58, Andrew Pinski <> wrote:
> These two are bogus and really clang in GCC's mind.  The main reason
> is the standard says struct and class are the same thing.

Apart from the fact that classes are private by default and structs
are not. They may be similar for layout purposes, and it may be ok to
interchange them on local re-declarations when the compiler doesn't
need the type completely defined, but they're not the same thing.

The compiler might be smart and use the protection model that the
original declaration used (private/public), but what that warning is
saying is that you have refactored your code to include classes and
forgot to update all uses, which is a very valid warning. I can't see
why one would *want* to keep the "struct" keyword. If you're already
compiling in C++ mode, removing it from variable/argument declarations
should be valid, and re-declaring incomplete types should be made as


More information about the Gcc mailing list