diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2011-10-20 21:14:49 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2011-10-20 21:14:49 +0000 |
commit | 36981b17ed939300f6f8fc2355a255f711fcef71 (patch) | |
tree | ee2483e98b09cac943dc93a6969d83ca737ff139 /test/Preprocessor | |
parent | 180abc3db9ae3b4fc63cd65b15697e6ffcc8a657 (diff) |
Notes
Diffstat (limited to 'test/Preprocessor')
-rw-r--r-- | test/Preprocessor/comment_save_if.c | 7 | ||||
-rw-r--r-- | test/Preprocessor/expr_define_expansion.c | 5 | ||||
-rw-r--r-- | test/Preprocessor/init.c | 20 | ||||
-rw-r--r-- | test/Preprocessor/missing-system-header.c | 2 | ||||
-rw-r--r-- | test/Preprocessor/missing-system-header.h | 2 | ||||
-rw-r--r-- | test/Preprocessor/non_fragile_feature.m | 2 | ||||
-rw-r--r-- | test/Preprocessor/non_fragile_feature1.m | 2 | ||||
-rw-r--r-- | test/Preprocessor/pp-record.c | 9 | ||||
-rw-r--r-- | test/Preprocessor/pp-record.h | 1 | ||||
-rw-r--r-- | test/Preprocessor/predefined-arch-macros.c | 866 | ||||
-rw-r--r-- | test/Preprocessor/predefined-exceptions.m | 15 | ||||
-rw-r--r-- | test/Preprocessor/warning_tests.c | 19 |
12 files changed, 931 insertions, 19 deletions
diff --git a/test/Preprocessor/comment_save_if.c b/test/Preprocessor/comment_save_if.c index 2f35bcb9e8c6e..4946122a3f0c8 100644 --- a/test/Preprocessor/comment_save_if.c +++ b/test/Preprocessor/comment_save_if.c @@ -1,6 +1,11 @@ -// RUN: %clang_cc1 %s -E -CC -pedantic 2>&1 | grep -v '^/' | not grep warning +// RUN: %clang_cc1 %s -E -CC -pedantic -verify #if 1 /*bar */ #endif /*foo*/ +#if /*foo*/ defined /*foo*/ FOO /*foo*/ +#if /*foo*/ defined /*foo*/ ( /*foo*/ FOO /*foo*/ ) /*foo*/ +#endif +#endif + diff --git a/test/Preprocessor/expr_define_expansion.c b/test/Preprocessor/expr_define_expansion.c new file mode 100644 index 0000000000000..38c0384092aea --- /dev/null +++ b/test/Preprocessor/expr_define_expansion.c @@ -0,0 +1,5 @@ +// RUN: %clang_cc1 %s -E -CC -pedantic -verify + +#define FOO && 1 +#if defined FOO FOO +#endif diff --git a/test/Preprocessor/init.c b/test/Preprocessor/init.c index f0920c9dedbde..11218154ea1c2 100644 --- a/test/Preprocessor/init.c +++ b/test/Preprocessor/init.c @@ -9,7 +9,7 @@ // BLOCKS:#define __block __attribute__((__blocks__(byref))) // // -// RUN: %clang_cc1 -x c++ -std=c++0x -E -dM < /dev/null | FileCheck -check-prefix CXX0X %s +// RUN: %clang_cc1 -x c++ -std=c++11 -E -dM < /dev/null | FileCheck -check-prefix CXX0X %s // // CXX0X:#define __GNUG__ // CXX0X:#define __GXX_EXPERIMENTAL_CXX0X__ 1 @@ -76,7 +76,7 @@ // C94:#define __STDC_VERSION__ 199409L // // -// RUN: %clang_cc1 -fms-extensions -triple i686-pc-win32 -E -dM < /dev/null | FileCheck -check-prefix MSEXT %s +// RUN: %clang_cc1 -fms-extensions -triple i686-pc-win32 -fobjc-fragile-abi -E -dM < /dev/null | FileCheck -check-prefix MSEXT %s // // MSEXT-NOT:#define __STDC__ // MSEXT:#define _INTEGRAL_MAX_BITS 64 @@ -94,7 +94,7 @@ // OBJCGC:#define __OBJC_GC__ 1 // // -// RUN: %clang_cc1 -x objective-c -fobjc-nonfragile-abi -E -dM < /dev/null | FileCheck -check-prefix NONFRAGILE %s +// RUN: %clang_cc1 -x objective-c -fobjc-exceptions -E -dM < /dev/null | FileCheck -check-prefix NONFRAGILE %s // // NONFRAGILE:#define OBJC_ZEROCOST_EXCEPTIONS 1 // NONFRAGILE:#define __OBJC2__ 1 @@ -410,9 +410,6 @@ // I386:#define __WINT_WIDTH__ 32 // I386:#define __i386 1 // I386:#define __i386__ 1 -// I386:#define __nocona 1 -// I386:#define __nocona__ 1 -// I386:#define __tune_nocona__ 1 // I386:#define i386 1 // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-pc-linux-gnu < /dev/null | FileCheck -check-prefix I386-LINUX %s @@ -508,9 +505,6 @@ // I386-LINUX:#define __WINT_WIDTH__ 32 // I386-LINUX:#define __i386 1 // I386-LINUX:#define __i386__ 1 -// I386-LINUX:#define __nocona 1 -// I386-LINUX:#define __nocona__ 1 -// I386-LINUX:#define __tune_nocona__ 1 // I386-LINUX:#define i386 1 // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=msp430-none-none < /dev/null | FileCheck -check-prefix MSP430 %s @@ -1183,9 +1177,6 @@ // X86_64:#define __WINT_WIDTH__ 32 // X86_64:#define __amd64 1 // X86_64:#define __amd64__ 1 -// X86_64:#define __nocona 1 -// X86_64:#define __nocona__ 1 -// X86_64:#define __tune_nocona__ 1 // X86_64:#define __x86_64 1 // X86_64:#define __x86_64__ 1 // @@ -1289,13 +1280,10 @@ // X86_64-LINUX:#define __WINT_WIDTH__ 32 // X86_64-LINUX:#define __amd64 1 // X86_64-LINUX:#define __amd64__ 1 -// X86_64-LINUX:#define __nocona 1 -// X86_64-LINUX:#define __nocona__ 1 -// X86_64-LINUX:#define __tune_nocona__ 1 // X86_64-LINUX:#define __x86_64 1 // X86_64-LINUX:#define __x86_64__ 1 // -// RUN: %clang_cc1 -x c++ -triple i686-pc-linux-gnu -E -dM < /dev/null | FileCheck -check-prefix GNUSOURCE %s +// RUN: %clang_cc1 -x c++ -triple i686-pc-linux-gnu -fobjc-fragile-abi -E -dM < /dev/null | FileCheck -check-prefix GNUSOURCE %s // GNUSOURCE:#define _GNU_SOURCE 1 // // RUN: %clang_cc1 -x c++ -std=c++98 -fno-rtti -E -dM < /dev/null | FileCheck -check-prefix NORTTI %s diff --git a/test/Preprocessor/missing-system-header.c b/test/Preprocessor/missing-system-header.c new file mode 100644 index 0000000000000..69cb1314eaeff --- /dev/null +++ b/test/Preprocessor/missing-system-header.c @@ -0,0 +1,2 @@ +// RUN: %clang_cc1 -verify -fsyntax-only %s +#include "missing-system-header.h" diff --git a/test/Preprocessor/missing-system-header.h b/test/Preprocessor/missing-system-header.h new file mode 100644 index 0000000000000..393ab2b5c9799 --- /dev/null +++ b/test/Preprocessor/missing-system-header.h @@ -0,0 +1,2 @@ +#pragma clang system_header +#include "not exist" // expected-error {{file not found}} diff --git a/test/Preprocessor/non_fragile_feature.m b/test/Preprocessor/non_fragile_feature.m index 1f67ed3f09bd3..cf64df2bf880f 100644 --- a/test/Preprocessor/non_fragile_feature.m +++ b/test/Preprocessor/non_fragile_feature.m @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fobjc-nonfragile-abi %s +// RUN: %clang_cc1 %s #ifndef __has_feature #error Should have __has_feature #endif diff --git a/test/Preprocessor/non_fragile_feature1.m b/test/Preprocessor/non_fragile_feature1.m index 89b52ed53bf58..79cc488a0b6ea 100644 --- a/test/Preprocessor/non_fragile_feature1.m +++ b/test/Preprocessor/non_fragile_feature1.m @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple i386-unknown-unknown %s +// RUN: %clang_cc1 -triple i386-unknown-unknown -fobjc-fragile-abi %s #ifndef __has_feature #error Should have __has_feature #endif diff --git a/test/Preprocessor/pp-record.c b/test/Preprocessor/pp-record.c new file mode 100644 index 0000000000000..dcb52b56b7d9f --- /dev/null +++ b/test/Preprocessor/pp-record.c @@ -0,0 +1,9 @@ +// RUN: %clang_cc1 -fsyntax-only -detailed-preprocessing-record %s + +// http://llvm.org/PR11120 + +#define FILE_HEADER_NAME "pp-record.h" + +#if defined(FILE_HEADER_NAME) +#include FILE_HEADER_NAME +#endif diff --git a/test/Preprocessor/pp-record.h b/test/Preprocessor/pp-record.h new file mode 100644 index 0000000000000..34158bd20527a --- /dev/null +++ b/test/Preprocessor/pp-record.h @@ -0,0 +1 @@ +// Only useful for #inclusion. diff --git a/test/Preprocessor/predefined-arch-macros.c b/test/Preprocessor/predefined-arch-macros.c new file mode 100644 index 0000000000000..b063f7fe089af --- /dev/null +++ b/test/Preprocessor/predefined-arch-macros.c @@ -0,0 +1,866 @@ +// These tests are generated by running utils/generate_arch_predefine_tests.sh +// to observe GCC's behavior (or some other system compiler's behavior). +// +// Begin X86/GCC/Linux tests ---------------- +// +// RUN: %clang -march=i386 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_I386_M32 +// CHECK_I386_M32: #define __i386 1 +// CHECK_I386_M32: #define __i386__ 1 +// CHECK_I386_M32: #define __tune_i386__ 1 +// CHECK_I386_M32: #define i386 1 +// RUN: %clang -march=i386 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_I386_M64 +// CHECK_I386_M64: error: +// +// RUN: %clang -march=i486 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_I486_M32 +// CHECK_I486_M32: #define __i386 1 +// CHECK_I486_M32: #define __i386__ 1 +// CHECK_I486_M32: #define __i486 1 +// CHECK_I486_M32: #define __i486__ 1 +// CHECK_I486_M32: #define __tune_i486__ 1 +// CHECK_I486_M32: #define i386 1 +// RUN: %clang -march=i486 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_I486_M64 +// CHECK_I486_M64: error: +// +// RUN: %clang -march=i586 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_I586_M32 +// CHECK_I586_M32: #define __i386 1 +// CHECK_I586_M32: #define __i386__ 1 +// CHECK_I586_M32: #define __i586 1 +// CHECK_I586_M32: #define __i586__ 1 +// CHECK_I586_M32: #define __pentium 1 +// CHECK_I586_M32: #define __pentium__ 1 +// CHECK_I586_M32: #define __tune_i586__ 1 +// CHECK_I586_M32: #define __tune_pentium__ 1 +// CHECK_I586_M32: #define i386 1 +// RUN: %clang -march=i586 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_I586_M64 +// CHECK_I586_M64: error: +// +// RUN: %clang -march=pentium -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M32 +// CHECK_PENTIUM_M32: #define __i386 1 +// CHECK_PENTIUM_M32: #define __i386__ 1 +// CHECK_PENTIUM_M32: #define __i586 1 +// CHECK_PENTIUM_M32: #define __i586__ 1 +// CHECK_PENTIUM_M32: #define __pentium 1 +// CHECK_PENTIUM_M32: #define __pentium__ 1 +// CHECK_PENTIUM_M32: #define __tune_i586__ 1 +// CHECK_PENTIUM_M32: #define __tune_pentium__ 1 +// CHECK_PENTIUM_M32: #define i386 1 +// RUN: %clang -march=pentium -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M64 +// CHECK_PENTIUM_M64: error: +// +// RUN: %clang -march=pentium-mmx -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M32 +// CHECK_PENTIUM_MMX_M32: #define __MMX__ 1 +// CHECK_PENTIUM_MMX_M32: #define __i386 1 +// CHECK_PENTIUM_MMX_M32: #define __i386__ 1 +// CHECK_PENTIUM_MMX_M32: #define __i586 1 +// CHECK_PENTIUM_MMX_M32: #define __i586__ 1 +// CHECK_PENTIUM_MMX_M32: #define __pentium 1 +// CHECK_PENTIUM_MMX_M32: #define __pentium__ 1 +// CHECK_PENTIUM_MMX_M32: #define __pentium_mmx__ 1 +// CHECK_PENTIUM_MMX_M32: #define __tune_i586__ 1 +// CHECK_PENTIUM_MMX_M32: #define __tune_pentium__ 1 +// CHECK_PENTIUM_MMX_M32: #define __tune_pentium_mmx__ 1 +// CHECK_PENTIUM_MMX_M32: #define i386 1 +// RUN: %clang -march=pentium-mmx -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M64 +// CHECK_PENTIUM_MMX_M64: error: +// +// RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M32 +// CHECK_WINCHIP_C6_M32: #define __MMX__ 1 +// CHECK_WINCHIP_C6_M32: #define __i386 1 +// CHECK_WINCHIP_C6_M32: #define __i386__ 1 +// CHECK_WINCHIP_C6_M32: #define __i486 1 +// CHECK_WINCHIP_C6_M32: #define __i486__ 1 +// CHECK_WINCHIP_C6_M32: #define __tune_i486__ 1 +// CHECK_WINCHIP_C6_M32: #define i386 1 +// RUN: %clang -march=winchip-c6 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M64 +// CHECK_WINCHIP_C6_M64: error: +// +// RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP2_M32 +// CHECK_WINCHIP2_M32: #define __3dNOW__ 1 +// CHECK_WINCHIP2_M32: #define __MMX__ 1 +// CHECK_WINCHIP2_M32: #define __i386 1 +// CHECK_WINCHIP2_M32: #define __i386__ 1 +// CHECK_WINCHIP2_M32: #define __i486 1 +// CHECK_WINCHIP2_M32: #define __i486__ 1 +// CHECK_WINCHIP2_M32: #define __tune_i486__ 1 +// CHECK_WINCHIP2_M32: #define i386 1 +// RUN: %clang -march=winchip2 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP2_M64 +// CHECK_WINCHIP2_M64: error: +// +// RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_C3_M32 +// CHECK_C3_M32: #define __3dNOW__ 1 +// CHECK_C3_M32: #define __MMX__ 1 +// CHECK_C3_M32: #define __i386 1 +// CHECK_C3_M32: #define __i386__ 1 +// CHECK_C3_M32: #define __i486 1 +// CHECK_C3_M32: #define __i486__ 1 +// CHECK_C3_M32: #define __tune_i486__ 1 +// CHECK_C3_M32: #define i386 1 +// RUN: %clang -march=c3 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_C3_M64 +// CHECK_C3_M64: error: +// +// RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_C3_2_M32 +// CHECK_C3_2_M32: #define __MMX__ 1 +// CHECK_C3_2_M32: #define __SSE__ 1 +// CHECK_C3_2_M32: #define __i386 1 +// CHECK_C3_2_M32: #define __i386__ 1 +// CHECK_C3_2_M32: #define __i686 1 +// CHECK_C3_2_M32: #define __i686__ 1 +// CHECK_C3_2_M32: #define __pentiumpro 1 +// CHECK_C3_2_M32: #define __pentiumpro__ 1 +// CHECK_C3_2_M32: #define __tune_i686__ 1 +// CHECK_C3_2_M32: #define __tune_pentium2__ 1 +// CHECK_C3_2_M32: #define __tune_pentiumpro__ 1 +// CHECK_C3_2_M32: #define i386 1 +// RUN: %clang -march=c3-2 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_C3_2_M64 +// CHECK_C3_2_M64: error: +// +// RUN: %clang -march=i686 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_I686_M32 +// CHECK_I686_M32: #define __i386 1 +// CHECK_I686_M32: #define __i386__ 1 +// CHECK_I686_M32: #define __i686 1 +// CHECK_I686_M32: #define __i686__ 1 +// CHECK_I686_M32: #define __pentiumpro 1 +// CHECK_I686_M32: #define __pentiumpro__ 1 +// CHECK_I686_M32: #define i386 1 +// RUN: %clang -march=i686 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_I686_M64 +// CHECK_I686_M64: error: +// +// RUN: %clang -march=pentiumpro -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M32 +// CHECK_PENTIUMPRO_M32: #define __i386 1 +// CHECK_PENTIUMPRO_M32: #define __i386__ 1 +// CHECK_PENTIUMPRO_M32: #define __i686 1 +// CHECK_PENTIUMPRO_M32: #define __i686__ 1 +// CHECK_PENTIUMPRO_M32: #define __pentiumpro 1 +// CHECK_PENTIUMPRO_M32: #define __pentiumpro__ 1 +// CHECK_PENTIUMPRO_M32: #define __tune_i686__ 1 +// CHECK_PENTIUMPRO_M32: #define __tune_pentiumpro__ 1 +// CHECK_PENTIUMPRO_M32: #define i386 1 +// RUN: %clang -march=pentiumpro -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M64 +// CHECK_PENTIUMPRO_M64: error: +// +// RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM2_M32 +// CHECK_PENTIUM2_M32: #define __MMX__ 1 +// CHECK_PENTIUM2_M32: #define __i386 1 +// CHECK_PENTIUM2_M32: #define __i386__ 1 +// CHECK_PENTIUM2_M32: #define __i686 1 +// CHECK_PENTIUM2_M32: #define __i686__ 1 +// CHECK_PENTIUM2_M32: #define __pentiumpro 1 +// CHECK_PENTIUM2_M32: #define __pentiumpro__ 1 +// CHECK_PENTIUM2_M32: #define __tune_i686__ 1 +// CHECK_PENTIUM2_M32: #define __tune_pentium2__ 1 +// CHECK_PENTIUM2_M32: #define __tune_pentiumpro__ 1 +// CHECK_PENTIUM2_M32: #define i386 1 +// RUN: %clang -march=pentium2 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM2_M64 +// CHECK_PENTIUM2_M64: error: +// +// RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3_M32 +// CHECK_PENTIUM3_M32: #define __MMX__ 1 +// CHECK_PENTIUM3_M32: #define __SSE__ 1 +// CHECK_PENTIUM3_M32: #define __i386 1 +// CHECK_PENTIUM3_M32: #define __i386__ 1 +// CHECK_PENTIUM3_M32: #define __i686 1 +// CHECK_PENTIUM3_M32: #define __i686__ 1 +// CHECK_PENTIUM3_M32: #define __pentiumpro 1 +// CHECK_PENTIUM3_M32: #define __pentiumpro__ 1 +// CHECK_PENTIUM3_M32: #define __tune_i686__ 1 +// CHECK_PENTIUM3_M32: #define __tune_pentium2__ 1 +// CHECK_PENTIUM3_M32: #define __tune_pentium3__ 1 +// CHECK_PENTIUM3_M32: #define __tune_pentiumpro__ 1 +// CHECK_PENTIUM3_M32: #define i386 1 +// RUN: %clang -march=pentium3 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3_M64 +// CHECK_PENTIUM3_M64: error: +// +// RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M32 +// CHECK_PENTIUM3M_M32: #define __MMX__ 1 +// CHECK_PENTIUM3M_M32: #define __SSE__ 1 +// CHECK_PENTIUM3M_M32: #define __i386 1 +// CHECK_PENTIUM3M_M32: #define __i386__ 1 +// CHECK_PENTIUM3M_M32: #define __i686 1 +// CHECK_PENTIUM3M_M32: #define __i686__ 1 +// CHECK_PENTIUM3M_M32: #define __pentiumpro 1 +// CHECK_PENTIUM3M_M32: #define __pentiumpro__ 1 +// CHECK_PENTIUM3M_M32: #define __tune_i686__ 1 +// CHECK_PENTIUM3M_M32: #define __tune_pentiumpro__ 1 +// CHECK_PENTIUM3M_M32: #define i386 1 +// RUN: %clang -march=pentium3m -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M64 +// CHECK_PENTIUM3M_M64: error: +// +// RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M32 +// CHECK_PENTIUM_M_M32: #define __MMX__ 1 +// CHECK_PENTIUM_M_M32: #define __SSE2__ 1 +// CHECK_PENTIUM_M_M32: #define __SSE__ 1 +// CHECK_PENTIUM_M_M32: #define __i386 1 +// CHECK_PENTIUM_M_M32: #define __i386__ 1 +// CHECK_PENTIUM_M_M32: #define __i686 1 +// CHECK_PENTIUM_M_M32: #define __i686__ 1 +// CHECK_PENTIUM_M_M32: #define __pentiumpro 1 +// CHECK_PENTIUM_M_M32: #define __pentiumpro__ 1 +// CHECK_PENTIUM_M_M32: #define __tune_i686__ 1 +// CHECK_PENTIUM_M_M32: #define __tune_pentiumpro__ 1 +// CHECK_PENTIUM_M_M32: #define i386 1 +// RUN: %clang -march=pentium-m -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M64 +// CHECK_PENTIUM_M_M64: error: +// +// RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4_M32 +// CHECK_PENTIUM4_M32: #define __MMX__ 1 +// CHECK_PENTIUM4_M32: #define __SSE2__ 1 +// CHECK_PENTIUM4_M32: #define __SSE__ 1 +// CHECK_PENTIUM4_M32: #define __i386 1 +// CHECK_PENTIUM4_M32: #define __i386__ 1 +// CHECK_PENTIUM4_M32: #define __pentium4 1 +// CHECK_PENTIUM4_M32: #define __pentium4__ 1 +// CHECK_PENTIUM4_M32: #define __tune_pentium4__ 1 +// CHECK_PENTIUM4_M32: #define i386 1 +// RUN: %clang -march=pentium4 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4_M64 +// CHECK_PENTIUM4_M64: error: +// +// RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M32 +// CHECK_PENTIUM4M_M32: #define __MMX__ 1 +// CHECK_PENTIUM4M_M32: #define __SSE2__ 1 +// CHECK_PENTIUM4M_M32: #define __SSE__ 1 +// CHECK_PENTIUM4M_M32: #define __i386 1 +// CHECK_PENTIUM4M_M32: #define __i386__ 1 +// CHECK_PENTIUM4M_M32: #define __pentium4 1 +// CHECK_PENTIUM4M_M32: #define __pentium4__ 1 +// CHECK_PENTIUM4M_M32: #define __tune_pentium4__ 1 +// CHECK_PENTIUM4M_M32: #define i386 1 +// RUN: %clang -march=pentium4m -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M64 +// CHECK_PENTIUM4M_M64: error: +// +// RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PRESCOTT_M32 +// CHECK_PRESCOTT_M32: #define __MMX__ 1 +// CHECK_PRESCOTT_M32: #define __SSE2__ 1 +// CHECK_PRESCOTT_M32: #define __SSE3__ 1 +// CHECK_PRESCOTT_M32: #define __SSE__ 1 +// CHECK_PRESCOTT_M32: #define __i386 1 +// CHECK_PRESCOTT_M32: #define __i386__ 1 +// CHECK_PRESCOTT_M32: #define __nocona 1 +// CHECK_PRESCOTT_M32: #define __nocona__ 1 +// CHECK_PRESCOTT_M32: #define __tune_nocona__ 1 +// CHECK_PRESCOTT_M32: #define i386 1 +// RUN: %clang -march=prescott -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_PRESCOTT_M64 +// CHECK_PRESCOTT_M64: error: +// +// RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M32 +// CHECK_NOCONA_M32: #define __MMX__ 1 +// CHECK_NOCONA_M32: #define __SSE2__ 1 +// CHECK_NOCONA_M32: #define __SSE3__ 1 +// CHECK_NOCONA_M32: #define __SSE__ 1 +// CHECK_NOCONA_M32: #define __i386 1 +// CHECK_NOCONA_M32: #define __i386__ 1 +// CHECK_NOCONA_M32: #define __nocona 1 +// CHECK_NOCONA_M32: #define __nocona__ 1 +// CHECK_NOCONA_M32: #define __tune_nocona__ 1 +// CHECK_NOCONA_M32: #define i386 1 +// RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M64 +// CHECK_NOCONA_M64: #define __MMX__ 1 +// CHECK_NOCONA_M64: #define __SSE2_MATH__ 1 +// CHECK_NOCONA_M64: #define __SSE2__ 1 +// CHECK_NOCONA_M64: #define __SSE3__ 1 +// CHECK_NOCONA_M64: #define __SSE_MATH__ 1 +// CHECK_NOCONA_M64: #define __SSE__ 1 +// CHECK_NOCONA_M64: #define __amd64 1 +// CHECK_NOCONA_M64: #define __amd64__ 1 +// CHECK_NOCONA_M64: #define __nocona 1 +// CHECK_NOCONA_M64: #define __nocona__ 1 +// CHECK_NOCONA_M64: #define __tune_nocona__ 1 +// CHECK_NOCONA_M64: #define __x86_64 1 +// CHECK_NOCONA_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M32 +// CHECK_CORE2_M32: #define __MMX__ 1 +// CHECK_CORE2_M32: #define __SSE2__ 1 +// CHECK_CORE2_M32: #define __SSE3__ 1 +// CHECK_CORE2_M32: #define __SSE__ 1 +// CHECK_CORE2_M32: #define __SSSE3__ 1 +// CHECK_CORE2_M32: #define __core2 1 +// CHECK_CORE2_M32: #define __core2__ 1 +// CHECK_CORE2_M32: #define __i386 1 +// CHECK_CORE2_M32: #define __i386__ 1 +// CHECK_CORE2_M32: #define __tune_core2__ 1 +// CHECK_CORE2_M32: #define i386 1 +// RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M64 +// CHECK_CORE2_M64: #define __MMX__ 1 +// CHECK_CORE2_M64: #define __SSE2_MATH__ 1 +// CHECK_CORE2_M64: #define __SSE2__ 1 +// CHECK_CORE2_M64: #define __SSE3__ 1 +// CHECK_CORE2_M64: #define __SSE_MATH__ 1 +// CHECK_CORE2_M64: #define __SSE__ 1 +// CHECK_CORE2_M64: #define __SSSE3__ 1 +// CHECK_CORE2_M64: #define __amd64 1 +// CHECK_CORE2_M64: #define __amd64__ 1 +// CHECK_CORE2_M64: #define __core2 1 +// CHECK_CORE2_M64: #define __core2__ 1 +// CHECK_CORE2_M64: #define __tune_core2__ 1 +// CHECK_CORE2_M64: #define __x86_64 1 +// CHECK_CORE2_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M32 +// CHECK_COREI7_M32: #define __MMX__ 1 +// CHECK_COREI7_M32: #define __SSE2__ 1 +// CHECK_COREI7_M32: #define __SSE3__ 1 +// CHECK_COREI7_M32: #define __SSE4_1__ 1 +// CHECK_COREI7_M32: #define __SSE4_2__ 1 +// CHECK_COREI7_M32: #define __SSE__ 1 +// CHECK_COREI7_M32: #define __SSSE3__ 1 +// CHECK_COREI7_M32: #define __corei7 1 +// CHECK_COREI7_M32: #define __corei7__ 1 +// CHECK_COREI7_M32: #define __i386 1 +// CHECK_COREI7_M32: #define __i386__ 1 +// CHECK_COREI7_M32: #define __tune_corei7__ 1 +// CHECK_COREI7_M32: #define i386 1 +// RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M64 +// CHECK_COREI7_M64: #define __MMX__ 1 +// CHECK_COREI7_M64: #define __SSE2_MATH__ 1 +// CHECK_COREI7_M64: #define __SSE2__ 1 +// CHECK_COREI7_M64: #define __SSE3__ 1 +// CHECK_COREI7_M64: #define __SSE4_1__ 1 +// CHECK_COREI7_M64: #define __SSE4_2__ 1 +// CHECK_COREI7_M64: #define __SSE_MATH__ 1 +// CHECK_COREI7_M64: #define __SSE__ 1 +// CHECK_COREI7_M64: #define __SSSE3__ 1 +// CHECK_COREI7_M64: #define __amd64 1 +// CHECK_COREI7_M64: #define __amd64__ 1 +// CHECK_COREI7_M64: #define __corei7 1 +// CHECK_COREI7_M64: #define __corei7__ 1 +// CHECK_COREI7_M64: #define __tune_corei7__ 1 +// CHECK_COREI7_M64: #define __x86_64 1 +// CHECK_COREI7_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M32 +// CHECK_COREI7_AVX_M32: #define __AES__ 1 +// FIXME: AVX is not yet enabled with Clang. +// CHECK_COREI7_AVX_M32-NOT: #define __AVX__ 1 +// CHECK_COREI7_AVX_M32: #define __MMX__ 1 +// CHECK_COREI7_AVX_M32: #define __SSE2__ 1 +// CHECK_COREI7_AVX_M32: #define __SSE3__ 1 +// CHECK_COREI7_AVX_M32: #define __SSE4_1__ 1 +// CHECK_COREI7_AVX_M32: #define __SSE4_2__ 1 +// CHECK_COREI7_AVX_M32: #define __SSE__ 1 +// CHECK_COREI7_AVX_M32: #define __SSSE3__ 1 +// CHECK_COREI7_AVX_M32: #define __corei7 1 +// CHECK_COREI7_AVX_M32: #define __corei7__ 1 +// CHECK_COREI7_AVX_M32: #define __i386 1 +// CHECK_COREI7_AVX_M32: #define __i386__ 1 +// CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1 +// CHECK_COREI7_AVX_M32: #define i386 1 +// RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M64 +// CHECK_COREI7_AVX_M64: #define __AES__ 1 +// FIXME: AVX is not yet enabled with Clang. +// CHECK_COREI7_AVX_M64-NOT: #define __AVX__ 1 +// CHECK_COREI7_AVX_M64: #define __MMX__ 1 +// CHECK_COREI7_AVX_M64: #define __SSE2_MATH__ 1 +// CHECK_COREI7_AVX_M64: #define __SSE2__ 1 +// CHECK_COREI7_AVX_M64: #define __SSE3__ 1 +// CHECK_COREI7_AVX_M64: #define __SSE4_1__ 1 +// CHECK_COREI7_AVX_M64: #define __SSE4_2__ 1 +// CHECK_COREI7_AVX_M64: #define __SSE_MATH__ 1 +// CHECK_COREI7_AVX_M64: #define __SSE__ 1 +// CHECK_COREI7_AVX_M64: #define __SSSE3__ 1 +// CHECK_COREI7_AVX_M64: #define __amd64 1 +// CHECK_COREI7_AVX_M64: #define __amd64__ 1 +// CHECK_COREI7_AVX_M64: #define __corei7 1 +// CHECK_COREI7_AVX_M64: #define __corei7__ 1 +// CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1 +// CHECK_COREI7_AVX_M64: #define __x86_64 1 +// CHECK_COREI7_AVX_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M32 +// CHECK_CORE_AVX_I_M32: #define __AES__ 1 +// FIXME: AVX is not yet enabled with Clang. +// CHECK_CORE_AVX_I_M32-NOT: #define __AVX__ 1 +// CHECK_CORE_AVX_I_M32: #define __MMX__ 1 +// CHECK_CORE_AVX_I_M32: #define __SSE2__ 1 +// CHECK_CORE_AVX_I_M32: #define __SSE3__ 1 +// CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1 +// CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1 +// CHECK_CORE_AVX_I_M32: #define __SSE__ 1 +// CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1 +// CHECK_CORE_AVX_I_M32: #define __corei7 1 +// CHECK_CORE_AVX_I_M32: #define __corei7__ 1 +// CHECK_CORE_AVX_I_M32: #define __i386 1 +// CHECK_CORE_AVX_I_M32: #define __i386__ 1 +// CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1 +// CHECK_CORE_AVX_I_M32: #define i386 1 +// RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M64 +// CHECK_CORE_AVX_I_M64: #define __AES__ 1 +// FIXME: AVX is not yet enabled with Clang. +// CHECK_CORE_AVX_I_M64-NOT: #define __AVX__ 1 +// CHECK_CORE_AVX_I_M64: #define __MMX__ 1 +// CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1 +// CHECK_CORE_AVX_I_M64: #define __SSE2__ 1 +// CHECK_CORE_AVX_I_M64: #define __SSE3__ 1 +// CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1 +// CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1 +// CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1 +// CHECK_CORE_AVX_I_M64: #define __SSE__ 1 +// CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1 +// CHECK_CORE_AVX_I_M64: #define __amd64 1 +// CHECK_CORE_AVX_I_M64: #define __amd64__ 1 +// CHECK_CORE_AVX_I_M64: #define __corei7 1 +// CHECK_CORE_AVX_I_M64: #define __corei7__ 1 +// CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1 +// CHECK_CORE_AVX_I_M64: #define __x86_64 1 +// CHECK_CORE_AVX_I_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M32 +// CHECK_ATOM_M32: #define __MMX__ 1 +// CHECK_ATOM_M32: #define __SSE2__ 1 +// CHECK_ATOM_M32: #define __SSE3__ 1 +// CHECK_ATOM_M32: #define __SSE__ 1 +// CHECK_ATOM_M32: #define __SSSE3__ 1 +// CHECK_ATOM_M32: #define __atom 1 +// CHECK_ATOM_M32: #define __atom__ 1 +// CHECK_ATOM_M32: #define __i386 1 +// CHECK_ATOM_M32: #define __i386__ 1 +// CHECK_ATOM_M32: #define __tune_atom__ 1 +// CHECK_ATOM_M32: #define i386 1 +// RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M64 +// CHECK_ATOM_M64: #define __MMX__ 1 +// CHECK_ATOM_M64: #define __SSE2_MATH__ 1 +// CHECK_ATOM_M64: #define __SSE2__ 1 +// CHECK_ATOM_M64: #define __SSE3__ 1 +// CHECK_ATOM_M64: #define __SSE_MATH__ 1 +// CHECK_ATOM_M64: #define __SSE__ 1 +// CHECK_ATOM_M64: #define __SSSE3__ 1 +// CHECK_ATOM_M64: #define __amd64 1 +// CHECK_ATOM_M64: #define __amd64__ 1 +// CHECK_ATOM_M64: #define __atom 1 +// CHECK_ATOM_M64: #define __atom__ 1 +// CHECK_ATOM_M64: #define __tune_atom__ 1 +// CHECK_ATOM_M64: #define __x86_64 1 +// CHECK_ATOM_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M32 +// CHECK_GEODE_M32: #define __3dNOW_A__ 1 +// CHECK_GEODE_M32: #define __3dNOW__ 1 +// CHECK_GEODE_M32: #define __MMX__ 1 +// CHECK_GEODE_M32: #define __geode 1 +// CHECK_GEODE_M32: #define __geode__ 1 +// CHECK_GEODE_M32: #define __i386 1 +// CHECK_GEODE_M32: #define __i386__ 1 +// CHECK_GEODE_M32: #define __tune_geode__ 1 +// CHECK_GEODE_M32: #define i386 1 +// RUN: %clang -march=geode -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M64 +// CHECK_GEODE_M64: error: +// +// RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_K6_M32 +// CHECK_K6_M32: #define __MMX__ 1 +// CHECK_K6_M32: #define __i386 1 +// CHECK_K6_M32: #define __i386__ 1 +// CHECK_K6_M32: #define __k6 1 +// CHECK_K6_M32: #define __k6__ 1 +// CHECK_K6_M32: #define __tune_k6__ 1 +// CHECK_K6_M32: #define i386 1 +// RUN: %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_K6_M64 +// CHECK_K6_M64: error: +// +// RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M32 +// CHECK_K6_2_M32: #define __3dNOW__ 1 +// CHECK_K6_2_M32: #define __MMX__ 1 +// CHECK_K6_2_M32: #define __i386 1 +// CHECK_K6_2_M32: #define __i386__ 1 +// CHECK_K6_2_M32: #define __k6 1 +// CHECK_K6_2_M32: #define __k6_2__ 1 +// CHECK_K6_2_M32: #define __k6__ 1 +// CHECK_K6_2_M32: #define __tune_k6_2__ 1 +// CHECK_K6_2_M32: #define __tune_k6__ 1 +// CHECK_K6_2_M32: #define i386 1 +// RUN: %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M64 +// CHECK_K6_2_M64: error: +// +// RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M32 +// CHECK_K6_3_M32: #define __3dNOW__ 1 +// CHECK_K6_3_M32: #define __MMX__ 1 +// CHECK_K6_3_M32: #define __i386 1 +// CHECK_K6_3_M32: #define __i386__ 1 +// CHECK_K6_3_M32: #define __k6 1 +// CHECK_K6_3_M32: #define __k6_3__ 1 +// CHECK_K6_3_M32: #define __k6__ 1 +// CHECK_K6_3_M32: #define __tune_k6_3__ 1 +// CHECK_K6_3_M32: #define __tune_k6__ 1 +// CHECK_K6_3_M32: #define i386 1 +// RUN: %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M64 +// CHECK_K6_3_M64: error: +// +// RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M32 +// CHECK_ATHLON_M32: #define __3dNOW_A__ 1 +// CHECK_ATHLON_M32: #define __3dNOW__ 1 +// CHECK_ATHLON_M32: #define __MMX__ 1 +// CHECK_ATHLON_M32: #define __athlon 1 +// CHECK_ATHLON_M32: #define __athlon__ 1 +// CHECK_ATHLON_M32: #define __i386 1 +// CHECK_ATHLON_M32: #define __i386__ 1 +// CHECK_ATHLON_M32: #define __tune_athlon__ 1 +// CHECK_ATHLON_M32: #define i386 1 +// RUN: %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M64 +// CHECK_ATHLON_M64: error: +// +// RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M32 +// CHECK_ATHLON_TBIRD_M32: #define __3dNOW_A__ 1 +// CHECK_ATHLON_TBIRD_M32: #define __3dNOW__ 1 +// CHECK_ATHLON_TBIRD_M32: #define __MMX__ 1 +// CHECK_ATHLON_TBIRD_M32: #define __athlon 1 +// CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1 +// CHECK_ATHLON_TBIRD_M32: #define __i386 1 +// CHECK_ATHLON_TBIRD_M32: #define __i386__ 1 +// CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1 +// CHECK_ATHLON_TBIRD_M32: #define i386 1 +// RUN: %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M64 +// CHECK_ATHLON_TBIRD_M64: error: +// +// RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M32 +// CHECK_ATHLON_4_M32: #define __3dNOW_A__ 1 +// CHECK_ATHLON_4_M32: #define __3dNOW__ 1 +// CHECK_ATHLON_4_M32: #define __MMX__ 1 +// CHECK_ATHLON_4_M32: #define __SSE__ 1 +// CHECK_ATHLON_4_M32: #define __athlon 1 +// CHECK_ATHLON_4_M32: #define __athlon__ 1 +// CHECK_ATHLON_4_M32: #define __athlon_sse__ 1 +// CHECK_ATHLON_4_M32: #define __i386 1 +// CHECK_ATHLON_4_M32: #define __i386__ 1 +// CHECK_ATHLON_4_M32: #define __tune_athlon__ 1 +// CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1 +// CHECK_ATHLON_4_M32: #define i386 1 +// RUN: %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M64 +// CHECK_ATHLON_4_M64: error: +// +// RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M32 +// CHECK_ATHLON_XP_M32: #define __3dNOW_A__ 1 +// CHECK_ATHLON_XP_M32: #define __3dNOW__ 1 +// CHECK_ATHLON_XP_M32: #define __MMX__ 1 +// CHECK_ATHLON_XP_M32: #define __SSE__ 1 +// CHECK_ATHLON_XP_M32: #define __athlon 1 +// CHECK_ATHLON_XP_M32: #define __athlon__ 1 +// CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1 +// CHECK_ATHLON_XP_M32: #define __i386 1 +// CHECK_ATHLON_XP_M32: #define __i386__ 1 +// CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1 +// CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1 +// CHECK_ATHLON_XP_M32: #define i386 1 +// RUN: %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M64 +// CHECK_ATHLON_XP_M64: error: +// +// RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M32 +// CHECK_ATHLON_MP_M32: #define __3dNOW_A__ 1 +// CHECK_ATHLON_MP_M32: #define __3dNOW__ 1 +// CHECK_ATHLON_MP_M32: #define __MMX__ 1 +// CHECK_ATHLON_MP_M32: #define __SSE__ 1 +// CHECK_ATHLON_MP_M32: #define __athlon 1 +// CHECK_ATHLON_MP_M32: #define __athlon__ 1 +// CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1 +// CHECK_ATHLON_MP_M32: #define __i386 1 +// CHECK_ATHLON_MP_M32: #define __i386__ 1 +// CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1 +// CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1 +// CHECK_ATHLON_MP_M32: #define i386 1 +// RUN: %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M64 +// CHECK_ATHLON_MP_M64: error: +// +// RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M32 +// CHECK_X86_64_M32: #define __MMX__ 1 +// CHECK_X86_64_M32: #define __SSE2__ 1 +// CHECK_X86_64_M32: #define __SSE__ 1 +// CHECK_X86_64_M32: #define __i386 1 +// CHECK_X86_64_M32: #define __i386__ 1 +// CHECK_X86_64_M32: #define __k8 1 +// CHECK_X86_64_M32: #define __k8__ 1 +// CHECK_X86_64_M32: #define i386 1 +// RUN: %clang -march=x86-64 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M64 +// CHECK_X86_64_M64: #define __MMX__ 1 +// CHECK_X86_64_M64: #define __SSE2_MATH__ 1 +// CHECK_X86_64_M64: #define __SSE2__ 1 +// CHECK_X86_64_M64: #define __SSE_MATH__ 1 +// CHECK_X86_64_M64: #define __SSE__ 1 +// CHECK_X86_64_M64: #define __amd64 1 +// CHECK_X86_64_M64: #define __amd64__ 1 +// CHECK_X86_64_M64: #define __k8 1 +// CHECK_X86_64_M64: #define __k8__ 1 +// CHECK_X86_64_M64: #define __x86_64 1 +// CHECK_X86_64_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_K8_M32 +// CHECK_K8_M32: #define __3dNOW_A__ 1 +// CHECK_K8_M32: #define __3dNOW__ 1 +// CHECK_K8_M32: #define __MMX__ 1 +// CHECK_K8_M32: #define __SSE2__ 1 +// CHECK_K8_M32: #define __SSE__ 1 +// CHECK_K8_M32: #define __i386 1 +// CHECK_K8_M32: #define __i386__ 1 +// CHECK_K8_M32: #define __k8 1 +// CHECK_K8_M32: #define __k8__ 1 +// CHECK_K8_M32: #define __tune_k8__ 1 +// CHECK_K8_M32: #define i386 1 +// RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_K8_M64 +// CHECK_K8_M64: #define __3dNOW_A__ 1 +// CHECK_K8_M64: #define __3dNOW__ 1 +// CHECK_K8_M64: #define __MMX__ 1 +// CHECK_K8_M64: #define __SSE2_MATH__ 1 +// CHECK_K8_M64: #define __SSE2__ 1 +// CHECK_K8_M64: #define __SSE_MATH__ 1 +// CHECK_K8_M64: #define __SSE__ 1 +// CHECK_K8_M64: #define __amd64 1 +// CHECK_K8_M64: #define __amd64__ 1 +// CHECK_K8_M64: #define __k8 1 +// CHECK_K8_M64: #define __k8__ 1 +// CHECK_K8_M64: #define __tune_k8__ 1 +// CHECK_K8_M64: #define __x86_64 1 +// CHECK_K8_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M32 +// CHECK_K8_SSE3_M32: #define __3dNOW_A__ 1 +// CHECK_K8_SSE3_M32: #define __3dNOW__ 1 +// CHECK_K8_SSE3_M32: #define __MMX__ 1 +// CHECK_K8_SSE3_M32: #define __SSE2__ 1 +// CHECK_K8_SSE3_M32: #define __SSE3__ 1 +// CHECK_K8_SSE3_M32: #define __SSE__ 1 +// CHECK_K8_SSE3_M32: #define __i386 1 +// CHECK_K8_SSE3_M32: #define __i386__ 1 +// CHECK_K8_SSE3_M32: #define __k8 1 +// CHECK_K8_SSE3_M32: #define __k8__ 1 +// CHECK_K8_SSE3_M32: #define __tune_k8__ 1 +// CHECK_K8_SSE3_M32: #define i386 1 +// RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M64 +// CHECK_K8_SSE3_M64: #define __3dNOW_A__ 1 +// CHECK_K8_SSE3_M64: #define __3dNOW__ 1 +// CHECK_K8_SSE3_M64: #define __MMX__ 1 +// CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 1 +// CHECK_K8_SSE3_M64: #define __SSE2__ 1 +// CHECK_K8_SSE3_M64: #define __SSE3__ 1 +// CHECK_K8_SSE3_M64: #define __SSE_MATH__ 1 +// CHECK_K8_SSE3_M64: #define __SSE__ 1 +// CHECK_K8_SSE3_M64: #define __amd64 1 +// CHECK_K8_SSE3_M64: #define __amd64__ 1 +// CHECK_K8_SSE3_M64: #define __k8 1 +// CHECK_K8_SSE3_M64: #define __k8__ 1 +// CHECK_K8_SSE3_M64: #define __tune_k8__ 1 +// CHECK_K8_SSE3_M64: #define __x86_64 1 +// CHECK_K8_SSE3_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M32 +// CHECK_OPTERON_M32: #define __3dNOW_A__ 1 +// CHECK_OPTERON_M32: #define __3dNOW__ 1 +// CHECK_OPTERON_M32: #define __MMX__ 1 +// CHECK_OPTERON_M32: #define __SSE2__ 1 +// CHECK_OPTERON_M32: #define __SSE__ 1 +// CHECK_OPTERON_M32: #define __i386 1 +// CHECK_OPTERON_M32: #define __i386__ 1 +// CHECK_OPTERON_M32: #define __k8 1 +// CHECK_OPTERON_M32: #define __k8__ 1 +// CHECK_OPTERON_M32: #define __tune_k8__ 1 +// CHECK_OPTERON_M32: #define i386 1 +// RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M64 +// CHECK_OPTERON_M64: #define __3dNOW_A__ 1 +// CHECK_OPTERON_M64: #define __3dNOW__ 1 +// CHECK_OPTERON_M64: #define __MMX__ 1 +// CHECK_OPTERON_M64: #define __SSE2_MATH__ 1 +// CHECK_OPTERON_M64: #define __SSE2__ 1 +// CHECK_OPTERON_M64: #define __SSE_MATH__ 1 +// CHECK_OPTERON_M64: #define __SSE__ 1 +// CHECK_OPTERON_M64: #define __amd64 1 +// CHECK_OPTERON_M64: #define __amd64__ 1 +// CHECK_OPTERON_M64: #define __k8 1 +// CHECK_OPTERON_M64: #define __k8__ 1 +// CHECK_OPTERON_M64: #define __tune_k8__ 1 +// CHECK_OPTERON_M64: #define __x86_64 1 +// CHECK_OPTERON_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M32 +// CHECK_OPTERON_SSE3_M32: #define __3dNOW_A__ 1 +// CHECK_OPTERON_SSE3_M32: #define __3dNOW__ 1 +// CHECK_OPTERON_SSE3_M32: #define __MMX__ 1 +// CHECK_OPTERON_SSE3_M32: #define __SSE2__ 1 +// CHECK_OPTERON_SSE3_M32: #define __SSE3__ 1 +// CHECK_OPTERON_SSE3_M32: #define __SSE__ 1 +// CHECK_OPTERON_SSE3_M32: #define __i386 1 +// CHECK_OPTERON_SSE3_M32: #define __i386__ 1 +// CHECK_OPTERON_SSE3_M32: #define __k8 1 +// CHECK_OPTERON_SSE3_M32: #define __k8__ 1 +// CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1 +// CHECK_OPTERON_SSE3_M32: #define i386 1 +// RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M64 +// CHECK_OPTERON_SSE3_M64: #define __3dNOW_A__ 1 +// CHECK_OPTERON_SSE3_M64: #define __3dNOW__ 1 +// CHECK_OPTERON_SSE3_M64: #define __MMX__ 1 +// CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 1 +// CHECK_OPTERON_SSE3_M64: #define __SSE2__ 1 +// CHECK_OPTERON_SSE3_M64: #define __SSE3__ 1 +// CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 1 +// CHECK_OPTERON_SSE3_M64: #define __SSE__ 1 +// CHECK_OPTERON_SSE3_M64: #define __amd64 1 +// CHECK_OPTERON_SSE3_M64: #define __amd64__ 1 +// CHECK_OPTERON_SSE3_M64: #define __k8 1 +// CHECK_OPTERON_SSE3_M64: #define __k8__ 1 +// CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1 +// CHECK_OPTERON_SSE3_M64: #define __x86_64 1 +// CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M32 +// CHECK_ATHLON64_M32: #define __3dNOW_A__ 1 +// CHECK_ATHLON64_M32: #define __3dNOW__ 1 +// CHECK_ATHLON64_M32: #define __MMX__ 1 +// CHECK_ATHLON64_M32: #define __SSE2__ 1 +// CHECK_ATHLON64_M32: #define __SSE__ 1 +// CHECK_ATHLON64_M32: #define __i386 1 +// CHECK_ATHLON64_M32: #define __i386__ 1 +// CHECK_ATHLON64_M32: #define __k8 1 +// CHECK_ATHLON64_M32: #define __k8__ 1 +// CHECK_ATHLON64_M32: #define __tune_k8__ 1 +// CHECK_ATHLON64_M32: #define i386 1 +// RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M64 +// CHECK_ATHLON64_M64: #define __3dNOW_A__ 1 +// CHECK_ATHLON64_M64: #define __3dNOW__ 1 +// CHECK_ATHLON64_M64: #define __MMX__ 1 +// CHECK_ATHLON64_M64: #define __SSE2_MATH__ 1 +// CHECK_ATHLON64_M64: #define __SSE2__ 1 +// CHECK_ATHLON64_M64: #define __SSE_MATH__ 1 +// CHECK_ATHLON64_M64: #define __SSE__ 1 +// CHECK_ATHLON64_M64: #define __amd64 1 +// CHECK_ATHLON64_M64: #define __amd64__ 1 +// CHECK_ATHLON64_M64: #define __k8 1 +// CHECK_ATHLON64_M64: #define __k8__ 1 +// CHECK_ATHLON64_M64: #define __tune_k8__ 1 +// CHECK_ATHLON64_M64: #define __x86_64 1 +// CHECK_ATHLON64_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M32 +// CHECK_ATHLON64_SSE3_M32: #define __3dNOW_A__ 1 +// CHECK_ATHLON64_SSE3_M32: #define __3dNOW__ 1 +// CHECK_ATHLON64_SSE3_M32: #define __MMX__ 1 +// CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 1 +// CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 1 +// CHECK_ATHLON64_SSE3_M32: #define __SSE__ 1 +// CHECK_ATHLON64_SSE3_M32: #define __i386 1 +// CHECK_ATHLON64_SSE3_M32: #define __i386__ 1 +// CHECK_ATHLON64_SSE3_M32: #define __k8 1 +// CHECK_ATHLON64_SSE3_M32: #define __k8__ 1 +// CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1 +// CHECK_ATHLON64_SSE3_M32: #define i386 1 +// RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M64 +// CHECK_ATHLON64_SSE3_M64: #define __3dNOW_A__ 1 +// CHECK_ATHLON64_SSE3_M64: #define __3dNOW__ 1 +// CHECK_ATHLON64_SSE3_M64: #define __MMX__ 1 +// CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 1 +// CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 1 +// CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 1 +// CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 1 +// CHECK_ATHLON64_SSE3_M64: #define __SSE__ 1 +// CHECK_ATHLON64_SSE3_M64: #define __amd64 1 +// CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1 +// CHECK_ATHLON64_SSE3_M64: #define __k8 1 +// CHECK_ATHLON64_SSE3_M64: #define __k8__ 1 +// CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1 +// CHECK_ATHLON64_SSE3_M64: #define __x86_64 1 +// CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1 +// +// RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M32 +// CHECK_ATHLON_FX_M32: #define __3dNOW_A__ 1 +// CHECK_ATHLON_FX_M32: #define __3dNOW__ 1 +// CHECK_ATHLON_FX_M32: #define __MMX__ 1 +// CHECK_ATHLON_FX_M32: #define __SSE2__ 1 +// CHECK_ATHLON_FX_M32: #define __SSE__ 1 +// CHECK_ATHLON_FX_M32: #define __i386 1 +// CHECK_ATHLON_FX_M32: #define __i386__ 1 +// CHECK_ATHLON_FX_M32: #define __k8 1 +// CHECK_ATHLON_FX_M32: #define __k8__ 1 +// CHECK_ATHLON_FX_M32: #define __tune_k8__ 1 +// CHECK_ATHLON_FX_M32: #define i386 1 +// RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M64 +// CHECK_ATHLON_FX_M64: #define __3dNOW_A__ 1 +// CHECK_ATHLON_FX_M64: #define __3dNOW__ 1 +// CHECK_ATHLON_FX_M64: #define __MMX__ 1 +// CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 1 +// CHECK_ATHLON_FX_M64: #define __SSE2__ 1 +// CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 1 +// CHECK_ATHLON_FX_M64: #define __SSE__ 1 +// CHECK_ATHLON_FX_M64: #define __amd64 1 +// CHECK_ATHLON_FX_M64: #define __amd64__ 1 +// CHECK_ATHLON_FX_M64: #define __k8 1 +// CHECK_ATHLON_FX_M64: #define __k8__ 1 +// CHECK_ATHLON_FX_M64: #define __tune_k8__ 1 +// CHECK_ATHLON_FX_M64: #define __x86_64 1 +// CHECK_ATHLON_FX_M64: #define __x86_64__ 1 +// +// End X86/GCC/Linux tests ------------------ diff --git a/test/Preprocessor/predefined-exceptions.m b/test/Preprocessor/predefined-exceptions.m new file mode 100644 index 0000000000000..c13f429e37632 --- /dev/null +++ b/test/Preprocessor/predefined-exceptions.m @@ -0,0 +1,15 @@ +// RUN: %clang_cc1 -x objective-c -fobjc-exceptions -fexceptions -E -dM %s | FileCheck -check-prefix=CHECK-OBJC-NOCXX %s +// CHECK-OBJC-NOCXX: #define OBJC_ZEROCOST_EXCEPTIONS 1 +// CHECK-OBJC-NOCXX-NOT: #define __EXCEPTIONS 1 + +// RUN: %clang_cc1 -x objective-c++ -fobjc-exceptions -fexceptions -fcxx-exceptions -E -dM %s | FileCheck -check-prefix=CHECK-OBJC-CXX %s +// CHECK-OBJC-CXX: #define OBJC_ZEROCOST_EXCEPTIONS 1 +// CHECK-OBJC-CXX: #define __EXCEPTIONS 1 + +// RUN: %clang_cc1 -x objective-c++ -fexceptions -fcxx-exceptions -E -dM %s | FileCheck -check-prefix=CHECK-NOOBJC-CXX %s +// CHECK-NOOBJC-CXX-NOT: #define OBJC_ZEROCOST_EXCEPTIONS 1 +// CHECK-NOOBJC-CXX: #define __EXCEPTIONS 1 + +// RUN: %clang_cc1 -x objective-c -E -dM %s | FileCheck -check-prefix=CHECK-NOOBJC-NOCXX %s +// CHECK-NOOBJC-NOCXX-NOT: #define OBJC_ZEROCOST_EXCEPTIONS 1 +// CHECK-NOOBJC-NOCXX-NOT: #define __EXCEPTIONS 1 diff --git a/test/Preprocessor/warning_tests.c b/test/Preprocessor/warning_tests.c new file mode 100644 index 0000000000000..96b96efc7e698 --- /dev/null +++ b/test/Preprocessor/warning_tests.c @@ -0,0 +1,19 @@ +// RUN: %clang_cc1 -fsyntax-only %s -verify +#ifndef __has_warning +#error Should have __has_warning +#endif + +#if __has_warning("not valid") // expected-warning {{__has_warning expected option name}} +#endif + +#if __has_warning("-Wparentheses") +#warning Should have -Wparentheses // expected-warning {{Should have -Wparentheses}} +#endif + +#if __has_warning(-Wfoo) // expected-error {{builtin warning check macro requires a parenthesized string}} +#endif + +#if __has_warning("-Wnot-a-valid-warning-flag-at-all") +#else +#warning Not a valid warning flag // expected-warning {{Not a valid warning flag}} +#endif
\ No newline at end of file |