]> granicus.if.org Git - clang/commitdiff
Use of override keywords in C++98 should produce a warning by default.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Sat, 15 Oct 2011 04:01:16 +0000 (04:01 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Sat, 15 Oct 2011 04:01:16 +0000 (04:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142050 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticParseKinds.td
test/Parser/cxx0x-in-cxx98.cpp

index 4b2343ddaa2ebcf41638b681df6ea688d911c02b..59fc1d6ea8e6db965c7772e202115bde677c5181 100644 (file)
@@ -488,7 +488,7 @@ def err_alias_declaration_specialization : Error<
   "%select{partial specialization|explicit specialization|explicit instantiation}0 of alias templates is not permitted">;
     
 // C++11 override control
-def ext_override_control_keyword : Extension<
+def ext_override_control_keyword : ExtWarn<
   "'%0' keyword accepted as a C++11 extension">, InGroup<CXX11>;
 
 def err_duplicate_virt_specifier : Error<
index 9e41a700a982e868c27a1c150dee4276a166c359..95ceafdfc5c08a28a9f8bb164c6863bd5ea8481c 100644 (file)
@@ -8,3 +8,11 @@ struct X {
 };
 }
 
+struct B {
+  virtual void f();
+  virtual void g();
+};
+struct D final : B { // expected-warning {{'final' keyword accepted as a C++11 extension}}
+  virtual void f() override; // expected-warning {{'override' keyword accepted as a C++11 extension}}
+  virtual void g() final; // expected-warning {{'final' keyword accepted as a C++11 extension}}
+};