The following snippet: class A {}; class B : public A {
typedef A super; public: class X {}; }; class C : public B { typedef B super; class X : public super::X { typedef super::X super; }; }; compiles without a warning on Comeau and MSVC, but GCC (4.6.1 and 4.7.1) failes with the following message: $ gcc -c bug.cpp bug.cpp:18:24: error: declaration of ‘typedef class B::X C::X::super’ [-fpermissive] bug.cpp:14:14: error: changes meaning of ‘super’ from ‘typedef class B C::super’ [-fpermissive] Should I file a report? Best regards, Piotr