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