https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79531
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Since GCC 8, we produce: <source>:8:16: error: 'virtual void derived::method2()' marked 'override', but does not override virtual void method2() override; ^~~~~~~ <source>:11:6: error: no declaration matches 'void derived::n()' void derived::n () ^~~~~~~ <source>:11:6: note: no functions named 'void derived::n()' <source>:6:8: note: 'struct derived' defined here struct derived : public base { ^~~~~~~ Which seems ok, unless I am missing something.