From 5bd096aef0b9d4caa0c1c8f4a0f28288b6464af8 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Wed, 25 Jun 2014 00:08:10 +0000 Subject: [PATCH] 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 --- test/Parser/MicrosoftExtensions.cpp | 97 ----------------------------- test/Parser/ms-if-exists.cpp | 93 +++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 97 deletions(-) create mode 100644 test/Parser/ms-if-exists.cpp 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; + } +}; -- 2.40.0