The clang behavior was poor before this patch:
void B::foo() override {}
// Before: clang emited "expcted function body after function
// declarator", and skiped all contents until it hits a ";", the
// following function f() is discarded.
// VS
// Nnow "override is not allowed" with a remove fixit, and following f()
// is retained.
void f();
virt-specifier is standardese. I think dropping virt, i.e. 'override' specifier... is clear enough.