http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53184
--- Comment #2 from Orgad Shaneh <orgads at gmail dot com> 2012-05-02 06:56:28 UTC --- Anonymous types shouldn't produce any warnings. They are very commonly used in headers needed for both C and C++ projects. The warning is meant for types inside anonymous namespaces, which is not the case here. Moreover, removing the volatile keyword resolves the warning. Why is that?