summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-06-25 00:08:10 +0000
committerReid Kleckner <reid@kleckner.net>2014-06-25 00:08:10 +0000
commit5bd096aef0b9d4caa0c1c8f4a0f28288b6464af8 (patch)
tree0f89faf128f2f1b04fc1fb6eff3153879f35e92d
parentd03ed82c9d0c2fb1a03e4f8e1f2107a5fe15ec63 (diff)
downloadclang-5bd096aef0b9d4caa0c1c8f4a0f28288b6464af8.tar.gz
clang-5bd096aef0b9d4caa0c1c8f4a0f28288b6464af8.tar.bz2
clang-5bd096aef0b9d4caa0c1c8f4a0f28288b6464af8.tar.xz
Split tests for __if_exists out into their own file
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211649 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Parser/MicrosoftExtensions.cpp97
-rw-r--r--test/Parser/ms-if-exists.cpp93
2 files changed, 93 insertions, 97 deletions
diff --git a/test/Parser/MicrosoftExtensions.cpp b/test/Parser/MicrosoftExtensions.cpp
index 72d6c2ed58..7f3ef6d903 100644
--- a/test/Parser/MicrosoftExtensions.cpp
+++ b/test/Parser/MicrosoftExtensions.cpp
@@ -227,103 +227,6 @@ void interface_test() {
__int64 x7 = __int64(0);
-
-namespace If_exists_test {
-
-class IF_EXISTS {
-private:
- typedef int Type;
-};
-
-int __if_exists_test() {
- int b=0;
- __if_exists(IF_EXISTS::Type) {
- b++;
- b++;
- }
- __if_exists(IF_EXISTS::Type_not) {
- this will not compile.
- }
- __if_not_exists(IF_EXISTS::Type) {
- this will not compile.
- }
- __if_not_exists(IF_EXISTS::Type_not) {
- b++;
- b++;
- }
-}
-
-
-__if_exists(IF_EXISTS::Type) {
- int var23;
-}
-
-__if_exists(IF_EXISTS::Type_not) {
- this will not compile.
-}
-
-__if_not_exists(IF_EXISTS::Type) {
- this will not compile.
-}
-
-__if_not_exists(IF_EXISTS::Type_not) {
- int var244;
-}
-
-int __if_exists_init_list() {
-
- int array1[] = {
- 0,
- __if_exists(IF_EXISTS::Type) {2, }
- 3
- };
-
- int array2[] = {
- 0,
- __if_exists(IF_EXISTS::Type_not) { this will not compile }
- 3
- };
-
- int array3[] = {
- 0,
- __if_not_exists(IF_EXISTS::Type_not) {2, }
- 3
- };
-
- int array4[] = {
- 0,
- __if_not_exists(IF_EXISTS::Type) { this will not compile }
- 3
- };
-
-}
-
-
-class IF_EXISTS_CLASS_TEST {
- __if_exists(IF_EXISTS::Type) {
- // __if_exists, __if_not_exists can nest
- __if_not_exists(IF_EXISTS::Type_not) {
- int var123;
- }
- int var23;
- }
-
- __if_exists(IF_EXISTS::Type_not) {
- this will not compile.
- }
-
- __if_not_exists(IF_EXISTS::Type) {
- this will not compile.
- }
-
- __if_not_exists(IF_EXISTS::Type_not) {
- int var244;
- }
-};
-
-}
-
-
int __identifier(generic) = 3;
int __identifier(int) = 4;
struct __identifier(class) { __identifier(class) *__identifier(for); };
diff --git a/test/Parser/ms-if-exists.cpp b/test/Parser/ms-if-exists.cpp
new file mode 100644
index 0000000000..f1cfbcfdfe
--- /dev/null
+++ b/test/Parser/ms-if-exists.cpp
@@ -0,0 +1,93 @@
+// RUN: %clang_cc1 %s -std=c++11 -fsyntax-only -Wmicrosoft -verify -fms-extensions
+
+// expected-no-diagnostics
+
+class MayExist {
+private:
+ typedef int Type;
+};
+
+void test_if_exists_stmts() {
+ int b = 0;
+ __if_exists(MayExist::Type) {
+ b++;
+ b++;
+ }
+ __if_exists(MayExist::Type_not) {
+ this will not compile.
+ }
+ __if_not_exists(MayExist::Type) {
+ this will not compile.
+ }
+ __if_not_exists(MayExist::Type_not) {
+ b++;
+ b++;
+ }
+}
+
+__if_exists(MayExist::Type) {
+ int var23;
+}
+
+__if_exists(MayExist::Type_not) {
+ this will not compile.
+}
+
+__if_not_exists(MayExist::Type) {
+ this will not compile.
+}
+
+__if_not_exists(MayExist::Type_not) {
+ int var244;
+}
+
+void test_if_exists_init_list() {
+
+ int array1[] = {
+ 0,
+ __if_exists(MayExist::Type) {2, }
+ 3
+ };
+
+ int array2[] = {
+ 0,
+ __if_exists(MayExist::Type_not) { this will not compile }
+ 3
+ };
+
+ int array3[] = {
+ 0,
+ __if_not_exists(MayExist::Type_not) {2, }
+ 3
+ };
+
+ int array4[] = {
+ 0,
+ __if_not_exists(MayExist::Type) { this will not compile }
+ 3
+ };
+
+}
+
+
+class IfExistsClassScope {
+ __if_exists(MayExist::Type) {
+ // __if_exists, __if_not_exists can nest
+ __if_not_exists(MayExist::Type_not) {
+ int var123;
+ }
+ int var23;
+ }
+
+ __if_exists(MayExist::Type_not) {
+ this will not compile.
+ }
+
+ __if_not_exists(MayExist::Type) {
+ this will not compile.
+ }
+
+ __if_not_exists(MayExist::Type_not) {
+ int var244;
+ }
+};