The following code produces a wrong warning: class A { public: virtual ~A() {}; virtual void Update( int ) {}; protected: virtual void Update( int, float ) {}; };
class B : public A { public: virtual void Update( int ) {}; }; 6 C:\Dev-Cpp\Projects\test-stlport\main_7.cpp [Warning] 'virtual void A::Update(int, float)' was hidden 11 C:\Dev-Cpp\Projects\test-stlport\main_7.cpp [Warning] by 'virtual void B::Update(int)' I thought the warnign was only supposed to happen, if B has no virtual in front of the function "Update", which is inherited from A. I am using: Using built-in specs. Target: i686-pc-mingw32 Configured with: /datal/gcc/gcc/configure --prefix=/datal/gcc/build/wingcc --build=i686-pc-linux-gnu --host=i686-pc-mingw32 --target=i686-pc-mingw32 --enable-languages=c,c++,java --with-gcc --with-gnu-as --with-gnu-ld --enable-threads=win32 --disable-nls --disable-win32-registry --disable-shared --disable-debug --without-newlib --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-sjlj-exceptions --enable-libgcj-multifile --enable-libgcj-mingw-osapi=ansi Thread model: win32 gcc version 4.0.0 20050324 (prerelease) -- Summary: wrong warning when using "-Woverloaded-virtual" Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: oliverst at online dot de CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20683