summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/MicrosoftExtensions.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2013-10-18 00:33:31 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2013-10-18 00:33:31 +0000
commita543308ce5569a40160b3bcd314037395d78cc0a (patch)
tree1f9bb9ec0b8ecbee0ca582cc6c9f7bae63fc18a2 /clang/test/SemaCXX/MicrosoftExtensions.cpp
parent6939177ceab8b9df367bbaeccb16a74d85447644 (diff)
downloadbcm5719-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.cpp25
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 {};
OpenPOWER on IntegriCloud