Author: arphaman Date: Thu Dec 14 11:22:41 2017 New Revision: 320735 URL: http://llvm.org/viewvc/llvm-project?rev=320735&view=rev Log: Commit missing tests for r320734
Added: cfe/trunk/test/Preprocessor/is_target.c cfe/trunk/test/Preprocessor/is_target_arm.c cfe/trunk/test/Preprocessor/is_target_os_darwin.c cfe/trunk/test/Preprocessor/is_target_unknown.c Added: cfe/trunk/test/Preprocessor/is_target.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/is_target.c?rev=320735&view=auto ============================================================================== --- cfe/trunk/test/Preprocessor/is_target.c (added) +++ cfe/trunk/test/Preprocessor/is_target.c Thu Dec 14 11:22:41 2017 @@ -0,0 +1,67 @@ +// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-darwin-simulator -verify %s + +#if !__is_target_arch(x86_64) || !__is_target_arch(X86_64) + #error "mismatching arch" +#endif + +#if __is_target_arch(arm64) + #error "mismatching arch" +#endif + +// Silently ignore invalid archs. This will ensure that older compilers will +// accept headers that support new arches/vendors/os variants. +#if __is_target_arch(foo) + #error "invalid arch" +#endif + +#if !__is_target_vendor(apple) || !__is_target_vendor(APPLE) + #error "mismatching vendor" +#endif + +#if __is_target_vendor(unknown) + #error "mismatching vendor" +#endif + +#if __is_target_vendor(foo) + #error "invalid vendor" +#endif + +#if !__is_target_os(darwin) || !__is_target_os(DARWIN) + #error "mismatching os" +#endif + +#if __is_target_os(ios) + #error "mismatching os" +#endif + +#if __is_target_os(foo) + #error "invalid os" +#endif + +#if !__is_target_environment(simulator) || !__is_target_environment(SIMULATOR) + #error "mismatching environment" +#endif + +#if __is_target_environment(unknown) + #error "mismatching environment" +#endif + +#if __is_target_environment(foo) + #error "invalid environment" +#endif + +#if !__has_builtin(__is_target_arch) || !__has_builtin(__is_target_os) || !__has_builtin(__is_target_vendor) || !__has_builtin(__is_target_environment) + #error "has builtin doesn't work" +#endif + +#if __is_target_arch(11) // expected-error {{builtin feature check macro requires a parenthesized identifier}} + #error "invalid arch" +#endif + +#if __is_target_arch x86 // expected-error{{missing '(' after '__is_target_arch'}} + #error "invalid arch" +#endif + +#if __is_target_arch ( x86 // expected-error {{unterminated function-like macro invocation}} + #error "invalid arch" +#endif // expected-error@-2 {{expected value in expression}} Added: cfe/trunk/test/Preprocessor/is_target_arm.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/is_target_arm.c?rev=320735&view=auto ============================================================================== --- cfe/trunk/test/Preprocessor/is_target_arm.c (added) +++ cfe/trunk/test/Preprocessor/is_target_arm.c Thu Dec 14 11:22:41 2017 @@ -0,0 +1,51 @@ +// RUN: %clang_cc1 -fsyntax-only -triple thumbv7--windows-msvc19.11.0 -verify %s +// RUN: %clang_cc1 -fsyntax-only -triple armv7--windows-msvc19.11.0 -DARM -verify %s +// expected-no-diagnostics + +// ARM does match arm and thumb. +#if !__is_target_arch(arm) + #error "mismatching arch" +#endif + +#if __is_target_arch(armeb) || __is_target_arch(armebv7) || __is_target_arch(thumbeb) || __is_target_arch(thumbebv7) + #error "mismatching arch" +#endif + +// ARMV7 does match armv7 and thumbv7. +#if !__is_target_arch(armv7) + #error "mismatching arch" +#endif + +// ARMV6 does not match armv7 or thumbv7. +#if __is_target_arch(armv6) + #error "mismatching arch" +#endif + +#if __is_target_arch(arm64) + #error "mismatching arch" +#endif + +#ifndef ARM + +// Allow checking for precise arch + subarch. +#if !__is_target_arch(thumbv7) + #error "mismatching arch" +#endif + +// But also allow checking for the arch without subarch. +#if !__is_target_arch(thumb) + #error "mismatching arch" +#endif + +// Same arch with a different subarch doesn't match. +#if __is_target_arch(thumbv6) + #error "mismatching arch" +#endif + +#else + +#if __is_target_arch(thumbv7) || __is_target_arch(thumb) + #error "mismatching arch" +#endif + +#endif Added: cfe/trunk/test/Preprocessor/is_target_os_darwin.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/is_target_os_darwin.c?rev=320735&view=auto ============================================================================== --- cfe/trunk/test/Preprocessor/is_target_os_darwin.c (added) +++ cfe/trunk/test/Preprocessor/is_target_os_darwin.c Thu Dec 14 11:22:41 2017 @@ -0,0 +1,26 @@ +// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-macos -DMAC -verify %s +// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-ios -verify %s +// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-tvos -verify %s +// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-watchos -verify %s +// expected-no-diagnostics + +#if !__is_target_os(darwin) + #error "mismatching os" +#endif + +// macOS matches both macOS and macOSX. +#ifdef MAC + +#if !__is_target_os(macos) + #error "mismatching os" +#endif + +#if !__is_target_os(macosx) + #error "mismatching os" +#endif + +#if __is_target_os(ios) + #error "mismatching os" +#endif + +#endif Added: cfe/trunk/test/Preprocessor/is_target_unknown.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/is_target_unknown.c?rev=320735&view=auto ============================================================================== --- cfe/trunk/test/Preprocessor/is_target_unknown.c (added) +++ cfe/trunk/test/Preprocessor/is_target_unknown.c Thu Dec 14 11:22:41 2017 @@ -0,0 +1,22 @@ +// RUN: %clang_cc1 -fsyntax-only -triple i686-unknown-unknown -verify %s +// RUN: %clang_cc1 -fsyntax-only -triple i686-- -verify %s +// expected-no-diagnostics + +#if __is_target_arch(unknown) + #error "mismatching arch" +#endif + +// Unknown vendor is allowed. +#if !__is_target_vendor(unknown) + #error "mismatching vendor" +#endif + +// Unknown OS is allowed. +#if !__is_target_os(unknown) + #error "mismatching OS" +#endif + +// Unknown environment is allowed. +#if !__is_target_environment(unknown) + #error "mismatching environment" +#endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits