From: Reid Kleckner Date: Wed, 25 Jun 2014 00:08:10 +0000 (+0000) Subject: Split tests for __if_exists out into their own file X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=27e14731433730130d73b24cbe3d35a0c0f95fed;p=platform%2Fupstream%2Fllvm.git Split tests for __if_exists out into their own file llvm-svn: 211649 --- diff --git a/clang/test/Parser/MicrosoftExtensions.cpp b/clang/test/Parser/MicrosoftExtensions.cpp index 72d6c2e..7f3ef6d 100644 --- a/clang/test/Parser/MicrosoftExtensions.cpp +++ b/clang/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/clang/test/Parser/ms-if-exists.cpp b/clang/test/Parser/ms-if-exists.cpp new file mode 100644 index 0000000..f1cfbcf --- /dev/null +++ b/clang/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; + } +};