https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65856 --- Comment #12 from Alexander Volkov <a.volkov at rusbitech dot ru> --- Sorry, it should be struct B : A { virtual void f() final; }; in the first example.