https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65856
--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- And BTW both clang and EDG warn for the first example: foo.cpp:6:16: warning: 'B::f' hides overloaded virtual function [-Woverloaded-virtual] virtual void f() final; ^ foo.cpp:2:16: note: hidden overloaded virtual function 'A::f' declared here: different number of parameters (1 vs 0) virtual void f(int); ^ 1 warning generated. foo.cpp(6): warning #1125: function "A::f(int)" is hidden by "B::f" -- virtual function override intended? virtual void f() final; ^