diff options
author | David Majnemer <david.majnemer@gmail.com> | 2013-10-18 00:33:31 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2013-10-18 00:33:31 +0000 |
commit | a543308ce5569a40160b3bcd314037395d78cc0a (patch) | |
tree | 1f9bb9ec0b8ecbee0ca582cc6c9f7bae63fc18a2 /clang/test/SemaCXX/MicrosoftExtensions.cpp | |
parent | 6939177ceab8b9df367bbaeccb16a74d85447644 (diff) | |
download | bcm5719-llvm-a543308ce5569a40160b3bcd314037395d78cc0a.tar.gz bcm5719-llvm-a543308ce5569a40160b3bcd314037395d78cc0a.zip |
[-fms-extensions] Permit 'override' in C++98 and 'sealed' as a synonym for 'final'
Summary: Some MS headers use these features.
Reviewers: rnk, rsmith
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1948
llvm-svn: 192936
Diffstat (limited to 'clang/test/SemaCXX/MicrosoftExtensions.cpp')
-rw-r--r-- | clang/test/SemaCXX/MicrosoftExtensions.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/MicrosoftExtensions.cpp b/clang/test/SemaCXX/MicrosoftExtensions.cpp index 723beb4efca..c5b45a2905c 100644 --- a/clang/test/SemaCXX/MicrosoftExtensions.cpp +++ b/clang/test/SemaCXX/MicrosoftExtensions.cpp @@ -385,3 +385,28 @@ namespace rdar14250378 { } } } + +// expected-error@+1 {{'sealed' keyword not permitted with interface types}} +__interface InterfaceWithSealed sealed { +}; + +struct SomeBase { + virtual void OverrideMe(); + + // expected-note@+2 {{overridden virtual function is here}} + // expected-warning@+1 {{'sealed' keyword is a Microsoft extension}} + virtual void SealedFunction() sealed; +}; + +// expected-note@+2 {{'SealedType' declared here}} +// expected-warning@+1 {{'sealed' keyword is a Microsoft extension}} +struct SealedType sealed : SomeBase { + // expected-error@+1 {{declaration of 'SealedFunction' overrides a 'sealed' function}} + virtual void SealedFunction(); + + // expected-warning@+1 {{'override' keyword is a C++11 extension}} + virtual void OverrideMe() override; +}; + +// expected-error@+1 {{base 'SealedType' is marked 'sealed'}} +struct InheritFromSealed : SealedType {}; |