diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-05-27 18:47:56 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-05-27 18:47:56 +0000 |
commit | 5e20cdd81c44a443562a09007668ffdf76c455af (patch) | |
tree | dbbd4047878da71c1a706e26ce05b4e7791b14cc /test/Preprocessor | |
parent | d5f23b0b7528b5c3caed1ba14f897cc4aaa9e3c3 (diff) |
Notes
Diffstat (limited to 'test/Preprocessor')
-rw-r--r-- | test/Preprocessor/_Pragma-location.c | 12 | ||||
-rw-r--r-- | test/Preprocessor/aarch64-target-features.c | 10 | ||||
-rw-r--r-- | test/Preprocessor/annotate_in_macro_arg.c | 8 | ||||
-rw-r--r-- | test/Preprocessor/arm-target-features.c | 36 | ||||
-rw-r--r-- | test/Preprocessor/has_attribute.c | 5 | ||||
-rw-r--r-- | test/Preprocessor/has_include.c | 12 | ||||
-rw-r--r-- | test/Preprocessor/init.c | 821 | ||||
-rw-r--r-- | test/Preprocessor/macro_paste_msextensions.c | 7 | ||||
-rw-r--r-- | test/Preprocessor/pr19649-signed-wchar_t.c | 6 | ||||
-rw-r--r-- | test/Preprocessor/pr19649-unsigned-wchar_t.c | 6 | ||||
-rw-r--r-- | test/Preprocessor/pragma_microsoft.c | 46 | ||||
-rw-r--r-- | test/Preprocessor/pragma_ps4.c | 27 | ||||
-rw-r--r-- | test/Preprocessor/predefined-arch-macros.c | 79 | ||||
-rw-r--r-- | test/Preprocessor/stdint.c | 20 | ||||
-rw-r--r-- | test/Preprocessor/x86_target_features.c | 4 |
15 files changed, 1019 insertions, 80 deletions
diff --git a/test/Preprocessor/_Pragma-location.c b/test/Preprocessor/_Pragma-location.c index 5031ee4edcc6..a523c26b01d0 100644 --- a/test/Preprocessor/_Pragma-location.c +++ b/test/Preprocessor/_Pragma-location.c @@ -10,9 +10,9 @@ push_p push_p _Pragma("pack(push)") __pragma(pack(push)) // CHECK: #pragma pack(push) -// CHECK-NEXT: #line 11 "{{.*}}_Pragma-location.c" +// CHECK-NEXT: # 11 "{{.*}}_Pragma-location.c" // CHECK-NEXT: #pragma pack(push) -// CHECK-NEXT: #line 11 "{{.*}}_Pragma-location.c" +// CHECK-NEXT: # 11 "{{.*}}_Pragma-location.c" // CHECK-NEXT: #pragma pack(push) @@ -31,17 +31,17 @@ void test () { // CHECK: void test () { // CHECK-NEXT: 1; -// CHECK-NEXT: #line 24 "{{.*}}_Pragma-location.c" +// CHECK-NEXT: # 24 "{{.*}}_Pragma-location.c" // CHECK-NEXT: #pragma clang diagnostic push // CHECK-NEXT: #pragma clang diagnostic ignored "-Wformat-extra-args" // CHECK-NEXT: #pragma clang diagnostic pop // CHECK: 2; -// CHECK-NEXT: #line 28 "{{.*}}_Pragma-location.c" +// CHECK-NEXT: # 28 "{{.*}}_Pragma-location.c" // CHECK-NEXT: #pragma clang diagnostic push -// CHECK-NEXT: #line 28 "{{.*}}_Pragma-location.c" +// CHECK-NEXT: # 28 "{{.*}}_Pragma-location.c" // CHECK-NEXT: #pragma clang diagnostic ignored "-Wformat-extra-args" // CHECK-NEXT: 3; -// CHECK-NEXT: #line 29 "{{.*}}_Pragma-location.c" +// CHECK-NEXT: # 29 "{{.*}}_Pragma-location.c" // CHECK-NEXT: #pragma clang diagnostic pop // CHECK-NEXT: } diff --git a/test/Preprocessor/aarch64-target-features.c b/test/Preprocessor/aarch64-target-features.c index 4e9e6c7fde95..85c0f246840b 100644 --- a/test/Preprocessor/aarch64-target-features.c +++ b/test/Preprocessor/aarch64-target-features.c @@ -69,9 +69,11 @@ // RUN: %clang -target aarch64 -mcpu=cyclone -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MCPU-CYCLONE %s // RUN: %clang -target aarch64 -mcpu=cortex-a53 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MCPU-A53 %s // RUN: %clang -target aarch64 -mcpu=cortex-a57 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MCPU-A57 %s +// RUN: %clang -target aarch64 -mcpu=cortex-a72 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MCPU-A72 %s // CHECK-MCPU-CYCLONE: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" "-target-feature" "+zcm" "-target-feature" "+zcz" // CHECK-MCPU-A53: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" // CHECK-MCPU-A57: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" +// CHECK-MCPU-A72: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" // RUN: %clang -target x86_64-apple-macosx -arch arm64 -### -c %s 2>&1 | FileCheck --check-prefix=CHECK-ARCH-ARM64 %s // CHECK-ARCH-ARM64: "-target-cpu" "cyclone" "-target-feature" "+neon" "-target-feature" "+crc" "-target-feature" "+crypto" "-target-feature" "+zcm" "-target-feature" "+zcz" @@ -107,3 +109,11 @@ // RUN: %clang -target aarch64 -march=armv8-a+neon -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-ERROR-NEON %s // RUN: %clang -target aarch64 -march=armv8-a+noneon -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-ERROR-NEON %s // CHECK-ERROR-NEON: error: [no]neon is not accepted as modifier, please use [no]simd instead + +// RUN: %clang -target aarch64 -march=armv8.1a+crypto -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V81A-FEATURE-1 %s +// RUN: %clang -target aarch64 -march=armv8.1a+nocrypto -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V81A-FEATURE-2 %s +// RUN: %clang -target aarch64 -march=armv8.1a+nosimd -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V81A-FEATURE-3 %s +// CHECK-V81A-FEATURE-1: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+v8.1a" "-target-feature" "+crypto" +// CHECK-V81A-FEATURE-2: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+neon" "-target-feature" "+v8.1a" "-target-feature" "-crypto" +// CHECK-V81A-FEATURE-3: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-feature" "+v8.1a" "-target-feature" "-neon" + diff --git a/test/Preprocessor/annotate_in_macro_arg.c b/test/Preprocessor/annotate_in_macro_arg.c new file mode 100644 index 000000000000..f4aa7d158261 --- /dev/null +++ b/test/Preprocessor/annotate_in_macro_arg.c @@ -0,0 +1,8 @@ +// RUN: %clang_cc1 -verify %s +#define M1() // expected-note{{macro 'M1' defined here}} + +M1( // expected-error{{unterminated function-like macro invocation}} + +#if M1() // expected-error{{expected value in expression}} +#endif +#pragma pack() diff --git a/test/Preprocessor/arm-target-features.c b/test/Preprocessor/arm-target-features.c index e95a50d02277..0dace434abb0 100644 --- a/test/Preprocessor/arm-target-features.c +++ b/test/Preprocessor/arm-target-features.c @@ -264,6 +264,24 @@ // A53-THUMB:#define __ARM_ARCH_EXT_IDIV__ 1 // A53-THUMB:#define __ARM_FEATURE_DSP +// Test whether predefines are as expected when targeting cortex-r4. +// RUN: %clang -target armv7 -mcpu=cortex-r4 -x c -E -dM %s -o - | FileCheck --check-prefix=R4-ARM %s +// R4-ARM-NOT:#define __ARM_ARCH_EXT_IDIV__ +// R4-ARM:#define __ARM_FEATURE_DSP + +// RUN: %clang -target armv7 -mthumb -mcpu=cortex-r4 -x c -E -dM %s -o - | FileCheck --check-prefix=R4-THUMB %s +// R4-THUMB:#define __ARM_ARCH_EXT_IDIV__ 1 +// R4-THUMB:#define __ARM_FEATURE_DSP + +// Test whether predefines are as expected when targeting cortex-r4f. +// RUN: %clang -target armv7 -mcpu=cortex-r4f -x c -E -dM %s -o - | FileCheck --check-prefix=R4F-ARM %s +// R4F-ARM-NOT:#define __ARM_ARCH_EXT_IDIV__ +// R4F-ARM:#define __ARM_FEATURE_DSP + +// RUN: %clang -target armv7 -mthumb -mcpu=cortex-r4f -x c -E -dM %s -o - | FileCheck --check-prefix=R4F-THUMB %s +// R4F-THUMBT:#define __ARM_ARCH_EXT_IDIV__ 1 +// R4F-THUMB:#define __ARM_FEATURE_DSP + // Test whether predefines are as expected when targeting cortex-r5. // RUN: %clang -target armv7 -mcpu=cortex-r5 -x c -E -dM %s -o - | FileCheck --check-prefix=R5-ARM %s // R5-ARM:#define __ARM_ARCH_EXT_IDIV__ 1 @@ -273,13 +291,26 @@ // R5-THUMB:#define __ARM_ARCH_EXT_IDIV__ 1 // R5-THUMB:#define __ARM_FEATURE_DSP +// Test whether predefines are as expected when targeting cortex-r7. +// RUN: %clang -target armv7 -mcpu=cortex-r7 -x c -E -dM %s -o - | FileCheck --check-prefix=R7-ARM %s +// R7-ARM:#define __ARM_ARCH_EXT_IDIV__ 1 +// R7-ARM:#define __ARM_FEATURE_DSP + +// RUN: %clang -target armv7 -mthumb -mcpu=cortex-r7 -x c -E -dM %s -o - | FileCheck --check-prefix=R7-THUMB %s +// R7-THUMB:#define __ARM_ARCH_EXT_IDIV__ 1 +// R7-THUMB:#define __ARM_FEATURE_DSP + // Test whether predefines are as expected when targeting cortex-m0. // RUN: %clang -target armv7 -mthumb -mcpu=cortex-m0 -x c -E -dM %s -o - | FileCheck --check-prefix=M0-THUMB %s +// RUN: %clang -target armv7 -mthumb -mcpu=cortex-m0plus -x c -E -dM %s -o - | FileCheck --check-prefix=M0-THUMB %s +// RUN: %clang -target armv7 -mthumb -mcpu=cortex-m1 -x c -E -dM %s -o - | FileCheck --check-prefix=M0-THUMB %s +// RUN: %clang -target armv7 -mthumb -mcpu=sc000 -x c -E -dM %s -o - | FileCheck --check-prefix=M0-THUMB %s // M0-THUMB-NOT:#define __ARM_ARCH_EXT_IDIV__ // M0-THUMB-NOT:#define __ARM_FEATURE_DSP // Test whether predefines are as expected when targeting cortex-m3. // RUN: %clang -target armv7 -mthumb -mcpu=cortex-m3 -x c -E -dM %s -o - | FileCheck --check-prefix=M3-THUMB %s +// RUN: %clang -target armv7 -mthumb -mcpu=sc300 -x c -E -dM %s -o - | FileCheck --check-prefix=M3-THUMB %s // M3-THUMB:#define __ARM_ARCH_EXT_IDIV__ 1 // M3-THUMB-NOT:#define __ARM_FEATURE_DSP @@ -303,3 +334,8 @@ // KRAIT-THUMB:#define __ARM_ARCH_EXT_IDIV__ 1 // KRAIT-THUMB:#define __ARM_FEATURE_DSP // KRAIT-THUMB:#define __ARM_VFPV4__ 1 + +// RUN: %clang -target armv8.1a-none-none-eabi -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-V81A %s +// CHECK-V81A: __ARM_ARCH 8 +// CHECK-V81A: __ARM_ARCH_8_1A__ 1 +// CHECK-V81A: #define __ARM_ARCH_PROFILE 'A' diff --git a/test/Preprocessor/has_attribute.c b/test/Preprocessor/has_attribute.c index 0ef5b4857a38..1a3c2a0e18c0 100644 --- a/test/Preprocessor/has_attribute.c +++ b/test/Preprocessor/has_attribute.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple arm-unknown-linux -E %s -o - | FileCheck %s +// RUN: %clang_cc1 -triple arm-unknown-linux -verify -E %s -o - | FileCheck %s // CHECK: always_inline #if __has_attribute(always_inline) @@ -53,3 +53,6 @@ int has_no_volatile_attribute(); #if !__has_attribute(uuid) int does_not_have_uuid #endif + +#if __has_cpp_attribute(selectany) // expected-error {{token is not a valid binary operator in a preprocessor subexpression}} +#endif diff --git a/test/Preprocessor/has_include.c b/test/Preprocessor/has_include.c index 131e51919f76..ad7329390ef6 100644 --- a/test/Preprocessor/has_include.c +++ b/test/Preprocessor/has_include.c @@ -163,6 +163,18 @@ __has_include #if __has_include #endif +// expected-error@+1 {{missing '(' after '__has_include'}} +#if __has_include'x' +#endif + +// expected-error@+1 {{expected "FILENAME" or <FILENAME>}} +#if __has_include('x' +#endif + +// expected-error@+1 {{expected "FILENAME" or <FILENAME}} expected-error@+1 {{expected end of line in preprocessor expression}} +#if __has_include('x') +#endif + // expected-error@+1 {{missing ')' after '__has_include'}} // expected-error@+1 {{expected value in expression}} // expected-note@+1 {{to match this '('}} #if __has_include(<stdint.h> #endif diff --git a/test/Preprocessor/init.c b/test/Preprocessor/init.c index 1502e78b4dcd..91ec4d77b5cc 100644 --- a/test/Preprocessor/init.c +++ b/test/Preprocessor/init.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -E -dM -x assembler-with-cpp < /dev/null | FileCheck -check-prefix ASM %s +/PtrDiffType / RUN: %clang_cc1 -E -dM -x assembler-with-cpp < /dev/null | FileCheck -check-prefix ASM %s // // ASM:#define __ASSEMBLER__ 1 // @@ -241,6 +241,7 @@ // AARCH64:#define __ARM_ARCH 8 // AARCH64:#define __ARM_ARCH_ISA_A64 1 // AARCH64-NOT:#define __ARM_BIG_ENDIAN 1 +// AARCH64:#define __BIGGEST_ALIGNMENT__ 16 // AARCH64:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // AARCH64:#define __CHAR16_TYPE__ unsigned short // AARCH64:#define __CHAR32_TYPE__ unsigned int @@ -258,7 +259,7 @@ // AARCH64:#define __DBL_MIN_10_EXP__ (-307) // AARCH64:#define __DBL_MIN_EXP__ (-1021) // AARCH64:#define __DBL_MIN__ 2.2250738585072014e-308 -// AARCH64:#define __DECIMAL_DIG__ 36 +// AARCH64:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // AARCH64:#define __FLT_DENORM_MIN__ 1.40129846e-45F // AARCH64:#define __FLT_DIG__ 6 // AARCH64:#define __FLT_EPSILON__ 1.19209290e-7F @@ -431,6 +432,7 @@ // AARCH64-BE:#define __ARM_ARCH 8 // AARCH64-BE:#define __ARM_ARCH_ISA_A64 1 // AARCH64-BE:#define __ARM_BIG_ENDIAN 1 +// AARCH64-BE:#define __BIGGEST_ALIGNMENT__ 16 // AARCH64-BE:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // AARCH64-BE:#define __CHAR16_TYPE__ unsigned short // AARCH64-BE:#define __CHAR32_TYPE__ unsigned int @@ -448,7 +450,7 @@ // AARCH64-BE:#define __DBL_MIN_10_EXP__ (-307) // AARCH64-BE:#define __DBL_MIN_EXP__ (-1021) // AARCH64-BE:#define __DBL_MIN__ 2.2250738585072014e-308 -// AARCH64-BE:#define __DECIMAL_DIG__ 36 +// AARCH64-BE:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // AARCH64-BE:#define __FLT_DENORM_MIN__ 1.40129846e-45F // AARCH64-BE:#define __FLT_DIG__ 6 // AARCH64-BE:#define __FLT_EPSILON__ 1.19209290e-7F @@ -621,6 +623,7 @@ // AARCH64-NETBSD:#define __ARM_ARCH 8 // AARCH64-NETBSD:#define __ARM_ARCH_ISA_A64 1 // AARCH64-NETBSD-NOT:#define __ARM_BIG_ENDIAN 1 +// AARCH64-NETBSD:#define __BIGGEST_ALIGNMENT__ 16 // AARCH64-NETBSD:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // AARCH64-NETBSD:#define __CHAR16_TYPE__ unsigned short // AARCH64-NETBSD:#define __CHAR32_TYPE__ unsigned int @@ -638,7 +641,7 @@ // AARCH64-NETBSD:#define __DBL_MIN_10_EXP__ (-307) // AARCH64-NETBSD:#define __DBL_MIN_EXP__ (-1021) // AARCH64-NETBSD:#define __DBL_MIN__ 2.2250738585072014e-308 -// AARCH64-NETBSD:#define __DECIMAL_DIG__ 36 +// AARCH64-NETBSD:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // AARCH64-NETBSD:#define __ELF__ 1 // AARCH64-NETBSD:#define __FLT_DENORM_MIN__ 1.40129846e-45F // AARCH64-NETBSD:#define __FLT_DIG__ 6 @@ -812,6 +815,7 @@ // AARCH64-FREEBSD:#define __ARM_ARCH 8 // AARCH64-FREEBSD:#define __ARM_ARCH_ISA_A64 1 // AARCH64-FREEBSD-NOT:#define __ARM_BIG_ENDIAN 1 +// AARCH64-FREEBSD:#define __BIGGEST_ALIGNMENT__ 16 // AARCH64-FREEBSD:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // AARCH64-FREEBSD:#define __CHAR16_TYPE__ unsigned short // AARCH64-FREEBSD:#define __CHAR32_TYPE__ unsigned int @@ -829,7 +833,7 @@ // AARCH64-FREEBSD:#define __DBL_MIN_10_EXP__ (-307) // AARCH64-FREEBSD:#define __DBL_MIN_EXP__ (-1021) // AARCH64-FREEBSD:#define __DBL_MIN__ 2.2250738585072014e-308 -// AARCH64-FREEBSD:#define __DECIMAL_DIG__ 36 +// AARCH64-FREEBSD:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // AARCH64-FREEBSD:#define __ELF__ 1 // AARCH64-FREEBSD:#define __FLT_DENORM_MIN__ 1.40129846e-45F // AARCH64-FREEBSD:#define __FLT_DIG__ 6 @@ -995,6 +999,197 @@ // AARCH64-FREEBSD:#define __WINT_WIDTH__ 32 // AARCH64-FREEBSD:#define __aarch64__ 1 +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=aarch64-apple-ios7.0 < /dev/null | FileCheck -check-prefix AARCH64-DARWIN %s +// +// AARCH64-DARWIN: #define _LP64 1 +// AARCH64-NOT: #define __AARCH64EB__ 1 +// AARCH64-DARWIN: #define __AARCH64EL__ 1 +// AARCH64-NOT: #define __AARCH_BIG_ENDIAN 1 +// AARCH64-DARWIN: #define __ARM_64BIT_STATE 1 +// AARCH64-DARWIN: #define __ARM_ARCH 8 +// AARCH64-DARWIN: #define __ARM_ARCH_ISA_A64 1 +// AARCH64-NOT: #define __ARM_BIG_ENDIAN 1 +// AARCH64-DARWIN: #define __BIGGEST_ALIGNMENT__ 8 +// AARCH64-DARWIN: #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +// AARCH64-DARWIN: #define __CHAR16_TYPE__ unsigned short +// AARCH64-DARWIN: #define __CHAR32_TYPE__ unsigned int +// AARCH64-DARWIN: #define __CHAR_BIT__ 8 +// AARCH64-DARWIN: #define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +// AARCH64-DARWIN: #define __DBL_DIG__ 15 +// AARCH64-DARWIN: #define __DBL_EPSILON__ 2.2204460492503131e-16 +// AARCH64-DARWIN: #define __DBL_HAS_DENORM__ 1 +// AARCH64-DARWIN: #define __DBL_HAS_INFINITY__ 1 +// AARCH64-DARWIN: #define __DBL_HAS_QUIET_NAN__ 1 +// AARCH64-DARWIN: #define __DBL_MANT_DIG__ 53 +// AARCH64-DARWIN: #define __DBL_MAX_10_EXP__ 308 +// AARCH64-DARWIN: #define __DBL_MAX_EXP__ 1024 +// AARCH64-DARWIN: #define __DBL_MAX__ 1.7976931348623157e+308 +// AARCH64-DARWIN: #define __DBL_MIN_10_EXP__ (-307) +// AARCH64-DARWIN: #define __DBL_MIN_EXP__ (-1021) +// AARCH64-DARWIN: #define __DBL_MIN__ 2.2250738585072014e-308 +// AARCH64-DARWIN: #define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ +// AARCH64-DARWIN: #define __FLT_DENORM_MIN__ 1.40129846e-45F +// AARCH64-DARWIN: #define __FLT_DIG__ 6 +// AARCH64-DARWIN: #define __FLT_EPSILON__ 1.19209290e-7F +// AARCH64-DARWIN: #define __FLT_EVAL_METHOD__ 0 +// AARCH64-DARWIN: #define __FLT_HAS_DENORM__ 1 +// AARCH64-DARWIN: #define __FLT_HAS_INFINITY__ 1 +// AARCH64-DARWIN: #define __FLT_HAS_QUIET_NAN__ 1 +// AARCH64-DARWIN: #define __FLT_MANT_DIG__ 24 +// AARCH64-DARWIN: #define __FLT_MAX_10_EXP__ 38 +// AARCH64-DARWIN: #define __FLT_MAX_EXP__ 128 +// AARCH64-DARWIN: #define __FLT_MAX__ 3.40282347e+38F +// AARCH64-DARWIN: #define __FLT_MIN_10_EXP__ (-37) +// AARCH64-DARWIN: #define __FLT_MIN_EXP__ (-125) +// AARCH64-DARWIN: #define __FLT_MIN__ 1.17549435e-38F +// AARCH64-DARWIN: #define __FLT_RADIX__ 2 +// AARCH64-DARWIN: #define __INT16_C_SUFFIX__ {{$}} +// AARCH64-DARWIN: #define __INT16_FMTd__ "hd" +// AARCH64-DARWIN: #define __INT16_FMTi__ "hi" +// AARCH64-DARWIN: #define __INT16_MAX__ 32767 +// AARCH64-DARWIN: #define __INT16_TYPE__ short +// AARCH64-DARWIN: #define __INT32_C_SUFFIX__ {{$}} +// AARCH64-DARWIN: #define __INT32_FMTd__ "d" +// AARCH64-DARWIN: #define __INT32_FMTi__ "i" +// AARCH64-DARWIN: #define __INT32_MAX__ 2147483647 +// AARCH64-DARWIN: #define __INT32_TYPE__ int +// AARCH64-DARWIN: #define __INT64_C_SUFFIX__ L +// AARCH64-DARWIN: #define __INT64_FMTd__ "lld" +// AARCH64-DARWIN: #define __INT64_FMTi__ "lli" +// AARCH64-DARWIN: #define __INT64_MAX__ 9223372036854775807L +// AARCH64-DARWIN: #define __INT64_TYPE__ long long int +// AARCH64-DARWIN: #define __INT8_C_SUFFIX__ {{$}} +// AARCH64-DARWIN: #define __INT8_FMTd__ "hhd" +// AARCH64-DARWIN: #define __INT8_FMTi__ "hhi" +// AARCH64-DARWIN: #define __INT8_MAX__ 127 +// AARCH64-DARWIN: #define __INT8_TYPE__ signed char +// AARCH64-DARWIN: #define __INTMAX_C_SUFFIX__ L +// AARCH64-DARWIN: #define __INTMAX_FMTd__ "ld" +// AARCH64-DARWIN: #define __INTMAX_FMTi__ "li" +// AARCH64-DARWIN: #define __INTMAX_MAX__ 9223372036854775807L +// AARCH64-DARWIN: #define __INTMAX_TYPE__ long int +// AARCH64-DARWIN: #define __INTMAX_WIDTH__ 64 +// AARCH64-DARWIN: #define __INTPTR_FMTd__ "ld" +// AARCH64-DARWIN: #define __INTPTR_FMTi__ "li" +// AARCH64-DARWIN: #define __INTPTR_MAX__ 9223372036854775807L +// AARCH64-DARWIN: #define __INTPTR_TYPE__ long int +// AARCH64-DARWIN: #define __INTPTR_WIDTH__ 64 +// AARCH64-DARWIN: #define __INT_FAST16_FMTd__ "hd" +// AARCH64-DARWIN: #define __INT_FAST16_FMTi__ "hi" +// AARCH64-DARWIN: #define __INT_FAST16_MAX__ 32767 +// AARCH64-DARWIN: #define __INT_FAST16_TYPE__ short +// AARCH64-DARWIN: #define __INT_FAST32_FMTd__ "d" +// AARCH64-DARWIN: #define __INT_FAST32_FMTi__ "i" +// AARCH64-DARWIN: #define __INT_FAST32_MAX__ 2147483647 +// AARCH64-DARWIN: #define __INT_FAST32_TYPE__ int +// AARCH64-DARWIN: #define __INT_FAST64_FMTd__ "ld" +// AARCH64-DARWIN: #define __INT_FAST64_FMTi__ "li" +// AARCH64-DARWIN: #define __INT_FAST64_MAX__ 9223372036854775807L +// AARCH64-DARWIN: #define __INT_FAST64_TYPE__ long int +// AARCH64-DARWIN: #define __INT_FAST8_FMTd__ "hhd" +// AARCH64-DARWIN: #define __INT_FAST8_FMTi__ "hhi" +// AARCH64-DARWIN: #define __INT_FAST8_MAX__ 127 +// AARCH64-DARWIN: #define __INT_FAST8_TYPE__ signed char +// AARCH64-DARWIN: #define __INT_LEAST16_FMTd__ "hd" +// AARCH64-DARWIN: #define __INT_LEAST16_FMTi__ "hi" +// AARCH64-DARWIN: #define __INT_LEAST16_MAX__ 32767 +// AARCH64-DARWIN: #define __INT_LEAST16_TYPE__ short +// AARCH64-DARWIN: #define __INT_LEAST32_FMTd__ "d" +// AARCH64-DARWIN: #define __INT_LEAST32_FMTi__ "i" +// AARCH64-DARWIN: #define __INT_LEAST32_MAX__ 2147483647 +// AARCH64-DARWIN: #define __INT_LEAST32_TYPE__ int +// AARCH64-DARWIN: #define __INT_LEAST64_FMTd__ "ld" +// AARCH64-DARWIN: #define __INT_LEAST64_FMTi__ "li" +// AARCH64-DARWIN: #define __INT_LEAST64_MAX__ 9223372036854775807L +// AARCH64-DARWIN: #define __INT_LEAST64_TYPE__ long int +// AARCH64-DARWIN: #define __INT_LEAST8_FMTd__ "hhd" +// AARCH64-DARWIN: #define __INT_LEAST8_FMTi__ "hhi" +// AARCH64-DARWIN: #define __INT_LEAST8_MAX__ 127 +// AARCH64-DARWIN: #define __INT_LEAST8_TYPE__ signed char +// AARCH64-DARWIN: #define __INT_MAX__ 2147483647 +// AARCH64-DARWIN: #define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L +// AARCH64-DARWIN: #define __LDBL_DIG__ 15 +// AARCH64-DARWIN: #define __LDBL_EPSILON__ 2.2204460492503131e-16L +// AARCH64-DARWIN: #define __LDBL_HAS_DENORM__ 1 +// AARCH64-DARWIN: #define __LDBL_HAS_INFINITY__ 1 +// AARCH64-DARWIN: #define __LDBL_HAS_QUIET_NAN__ 1 +// AARCH64-DARWIN: #define __LDBL_MANT_DIG__ 53 +// AARCH64-DARWIN: #define __LDBL_MAX_10_EXP__ 308 +// AARCH64-DARWIN: #define __LDBL_MAX_EXP__ 1024 +// AARCH64-DARWIN: #define __LDBL_MAX__ 1.7976931348623157e+308L +// AARCH64-DARWIN: #define __LDBL_MIN_10_EXP__ (-307) +// AARCH64-DARWIN: #define __LDBL_MIN_EXP__ (-1021) +// AARCH64-DARWIN: #define __LDBL_MIN__ 2.2250738585072014e-308L +// AARCH64-DARWIN: #define __LONG_LONG_MAX__ 9223372036854775807LL +// AARCH64-DARWIN: #define __LONG_MAX__ 9223372036854775807L +// AARCH64-DARWIN: #define __LP64__ 1 +// AARCH64-DARWIN: #define __POINTER_WIDTH__ 64 +// AARCH64-DARWIN: #define __PTRDIFF_TYPE__ long int +// AARCH64-DARWIN: #define __PTRDIFF_WIDTH__ 64 +// AARCH64-DARWIN: #define __SCHAR_MAX__ 127 +// AARCH64-DARWIN: #define __SHRT_MAX__ 32767 +// AARCH64-DARWIN: #define __SIG_ATOMIC_MAX__ 2147483647 +// AARCH64-DARWIN: #define __SIG_ATOMIC_WIDTH__ 32 +// AARCH64-DARWIN: #define __SIZEOF_DOUBLE__ 8 +// AARCH64-DARWIN: #define __SIZEOF_FLOAT__ 4 +// AARCH64-DARWIN: #define __SIZEOF_INT128__ 16 +// AARCH64-DARWIN: #define __SIZEOF_INT__ 4 +// AARCH64-DARWIN: #define __SIZEOF_LONG_DOUBLE__ 8 +// AARCH64-DARWIN: #define __SIZEOF_LONG_LONG__ 8 +// AARCH64-DARWIN: #define __SIZEOF_LONG__ 8 +// AARCH64-DARWIN: #define __SIZEOF_POINTER__ 8 +// AARCH64-DARWIN: #define __SIZEOF_PTRDIFF_T__ 8 +// AARCH64-DARWIN: #define __SIZEOF_SHORT__ 2 +// AARCH64-DARWIN: #define __SIZEOF_SIZE_T__ 8 +// AARCH64-DARWIN: #define __SIZEOF_WCHAR_T__ 4 +// AARCH64-DARWIN: #define __SIZEOF_WINT_T__ 4 +// AARCH64-DARWIN: #define __SIZE_MAX__ 18446744073709551615UL +// AARCH64-DARWIN: #define __SIZE_TYPE__ long unsigned int +// AARCH64-DARWIN: #define __SIZE_WIDTH__ 64 +// AARCH64-DARWIN: #define __UINT16_C_SUFFIX__ {{$}} +// AARCH64-DARWIN: #define __UINT16_MAX__ 65535 +// AARCH64-DARWIN: #define __UINT16_TYPE__ unsigned short +// AARCH64-DARWIN: #define __UINT32_C_SUFFIX__ U +// AARCH64-DARWIN: #define __UINT32_MAX__ 4294967295U +// AARCH64-DARWIN: #define __UINT32_TYPE__ unsigned int +// AARCH64-DARWIN: #define __UINT64_C_SUFFIX__ UL +// AARCH64-DARWIN: #define __UINT64_MAX__ 18446744073709551615UL +// AARCH64-DARWIN: #define __UINT64_TYPE__ long long unsigned int +// AARCH64-DARWIN: #define __UINT8_C_SUFFIX__ {{$}} +// AARCH64-DARWIN: #define __UINT8_MAX__ 255 +// AARCH64-DARWIN: #define __UINT8_TYPE__ unsigned char +// AARCH64-DARWIN: #define __UINTMAX_C_SUFFIX__ UL +// AARCH64-DARWIN: #define __UINTMAX_MAX__ 18446744073709551615UL +// AARCH64-DARWIN: #define __UINTMAX_TYPE__ long unsigned int +// AARCH64-DARWIN: #define __UINTMAX_WIDTH__ 64 +// AARCH64-DARWIN: #define __UINTPTR_MAX__ 18446744073709551615UL +// AARCH64-DARWIN: #define __UINTPTR_TYPE__ long unsigned int +// AARCH64-DARWIN: #define __UINTPTR_WIDTH__ 64 +// AARCH64-DARWIN: #define __UINT_FAST16_MAX__ 65535 +// AARCH64-DARWIN: #define __UINT_FAST16_TYPE__ unsigned short +// AARCH64-DARWIN: #define __UINT_FAST32_MAX__ 4294967295U +// AARCH64-DARWIN: #define __UINT_FAST32_TYPE__ unsigned int +// AARCH64-DARWIN: #define __UINT_FAST64_MAX__ 18446744073709551615UL +// AARCH64-DARWIN: #define __UINT_FAST64_TYPE__ long unsigned int +// AARCH64-DARWIN: #define __UINT_FAST8_MAX__ 255 +// AARCH64-DARWIN: #define __UINT_FAST8_TYPE__ unsigned char +// AARCH64-DARWIN: #define __UINT_LEAST16_MAX__ 65535 +// AARCH64-DARWIN: #define __UINT_LEAST16_TYPE__ unsigned short +// AARCH64-DARWIN: #define __UINT_LEAST32_MAX__ 4294967295U +// AARCH64-DARWIN: #define __UINT_LEAST32_TYPE__ unsigned int +// AARCH64-DARWIN: #define __UINT_LEAST64_MAX__ 18446744073709551615UL +// AARCH64-DARWIN: #define __UINT_LEAST64_TYPE__ long unsigned int +// AARCH64-DARWIN: #define __UINT_LEAST8_MAX__ 255 +// AARCH64-DARWIN: #define __UINT_LEAST8_TYPE__ unsigned char +// AARCH64-DARWIN: #define __USER_LABEL_PREFIX__ _ +// AARCH64-DARWIN: #define __WCHAR_MAX__ 2147483647 +// AARCH64-DARWIN: #define __WCHAR_TYPE__ int +// AARCH64-DARWIN-NOT: #define __WCHAR_UNSIGNED__ +// AARCH64-DARWIN: #define __WCHAR_WIDTH__ 32 +// AARCH64-DARWIN: #define __WINT_TYPE__ int +// AARCH64-DARWIN: #define __WINT_WIDTH__ 32 +// AARCH64-DARWIN: #define __aarch64__ 1 + // RUN: %clang_cc1 -E -dM -ffreestanding -triple=arm-none-none < /dev/null | FileCheck -check-prefix ARM %s // // ARM-NOT:#define _LP64 @@ -1003,6 +1198,7 @@ // ARM:#define __ARMEL__ 1 // ARM:#define __ARM_ARCH_6J__ 1 // ARM-NOT:#define __ARM_BIG_ENDIAN 1 +// ARM:#define __BIGGEST_ALIGNMENT__ 8 // ARM:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // ARM:#define __CHAR16_TYPE__ unsigned short // ARM:#define __CHAR32_TYPE__ unsigned int @@ -1020,7 +1216,7 @@ // ARM:#define __DBL_MIN_10_EXP__ (-307) // ARM:#define __DBL_MIN_EXP__ (-1021) // ARM:#define __DBL_MIN__ 2.2250738585072014e-308 -// ARM:#define __DECIMAL_DIG__ 17 +// ARM:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // ARM:#define __FLT_DENORM_MIN__ 1.40129846e-45F // ARM:#define __FLT_DIG__ 6 // ARM:#define __FLT_EPSILON__ 1.19209290e-7F @@ -1193,6 +1389,7 @@ // ARM-BE-NOT:#define __ARMEL__ 1 // ARM-BE:#define __ARM_ARCH_6J__ 1 // ARM-BE:#define __ARM_BIG_ENDIAN 1 +// ARM-BE:#define __BIGGEST_ALIGNMENT__ 8 // ARM-BE:#define __BIG_ENDIAN__ 1 // ARM-BE:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // ARM-BE:#define __CHAR16_TYPE__ unsigned short @@ -1211,7 +1408,7 @@ // ARM-BE:#define __DBL_MIN_10_EXP__ (-307) // ARM-BE:#define __DBL_MIN_EXP__ (-1021) // ARM-BE:#define __DBL_MIN__ 2.2250738585072014e-308 -// ARM-BE:#define __DECIMAL_DIG__ 17 +// ARM-BE:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // ARM-BE:#define __FLT_DENORM_MIN__ 1.40129846e-45F // ARM-BE:#define __FLT_DIG__ 6 // ARM-BE:#define __FLT_EPSILON__ 1.19209290e-7F @@ -1387,6 +1584,7 @@ // ARMEABISOFTFP:#define __ARM_EABI__ 1 // ARMEABISOFTFP:#define __ARM_PCS 1 // ARMEABISOFTFP-NOT:#define __ARM_PCS_VFP 1 +// ARMEABISOFTFP:#define __BIGGEST_ALIGNMENT__ 8 // ARMEABISOFTFP:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // ARMEABISOFTFP:#define __CHAR16_TYPE__ unsigned short // ARMEABISOFTFP:#define __CHAR32_TYPE__ unsigned int @@ -1404,7 +1602,7 @@ // ARMEABISOFTFP:#define __DBL_MIN_10_EXP__ (-307) // ARMEABISOFTFP:#define __DBL_MIN_EXP__ (-1021) // ARMEABISOFTFP:#define __DBL_MIN__ 2.2250738585072014e-308 -// ARMEABISOFTFP:#define __DECIMAL_DIG__ 17 +// ARMEABISOFTFP:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // ARMEABISOFTFP:#define __FLT_DENORM_MIN__ 1.40129846e-45F // ARMEABISOFTFP:#define __FLT_DIG__ 6 // ARMEABISOFTFP:#define __FLT_EPSILON__ 1.19209290e-7F @@ -1582,6 +1780,7 @@ // ARMEABIHARDFP:#define __ARM_EABI__ 1 // ARMEABIHARDFP:#define __ARM_PCS 1 // ARMEABIHARDFP:#define __ARM_PCS_VFP 1 +// ARMEABIHARDFP:#define __BIGGEST_ALIGNMENT__ 8 // ARMEABIHARDFP:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // ARMEABIHARDFP:#define __CHAR16_TYPE__ unsigned short // ARMEABIHARDFP:#define __CHAR32_TYPE__ unsigned int @@ -1599,7 +1798,7 @@ // ARMEABIHARDFP:#define __DBL_MIN_10_EXP__ (-307) // ARMEABIHARDFP:#define __DBL_MIN_EXP__ (-1021) // ARMEABIHARDFP:#define __DBL_MIN__ 2.2250738585072014e-308 -// ARMEABIHARDFP:#define __DECIMAL_DIG__ 17 +// ARMEABIHARDFP:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // ARMEABIHARDFP:#define __FLT_DENORM_MIN__ 1.40129846e-45F // ARMEABIHARDFP:#define __FLT_DIG__ 6 // ARMEABIHARDFP:#define __FLT_EPSILON__ 1.19209290e-7F @@ -1775,6 +1974,7 @@ // ARM-NETBSD:#define __ARM_DWARF_EH__ 1 // ARM-NETBSD:#define __ARM_EABI__ 1 // ARM-NETBSD-NOT:#define __ARM_BIG_ENDIAN 1 +// ARM-NETBSD:#define __BIGGEST_ALIGNMENT__ 8 // ARM-NETBSD:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // ARM-NETBSD:#define __CHAR16_TYPE__ unsigned short // ARM-NETBSD:#define __CHAR32_TYPE__ unsigned int @@ -1792,7 +1992,7 @@ // ARM-NETBSD:#define __DBL_MIN_10_EXP__ (-307) // ARM-NETBSD:#define __DBL_MIN_EXP__ (-1021) // ARM-NETBSD:#define __DBL_MIN__ 2.2250738585072014e-308 -// ARM-NETBSD:#define __DECIMAL_DIG__ 17 +// ARM-NETBSD:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // ARM-NETBSD:#define __FLT_DENORM_MIN__ 1.40129846e-45F // ARM-NETBSD:#define __FLT_DIG__ 6 // ARM-NETBSD:#define __FLT_EPSILON__ 1.19209290e-7F @@ -1965,6 +2165,13 @@ // ARM-DARWIN-NO-EABI-NOT: #define __ARM_EABI__ 1 // ARM-DARWIN-EABI: #define __ARM_EABI__ 1 +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=armv7-bitrig-gnueabihf < /dev/null | FileCheck -check-prefix ARM-BITRIG %s +// ARM-BITRIG:#define __ARM_DWARF_EH__ 1 +// ARM-BITRIG:#define __SIZEOF_SIZE_T__ 4 +// ARM-BITRIG:#define __SIZE_MAX__ 4294967295U +// ARM-BITRIG:#define __SIZE_TYPE__ long unsigned int +// ARM-BITRIG:#define __SIZE_WIDTH__ 32 + // Check that -mhwdiv works properly for targets which don't have the hwdiv feature enabled by default. // RUN: %clang -target arm -mhwdiv=arm -x c -E -dM %s -o - | FileCheck --check-prefix=ARMHWDIV-ARM %s @@ -2021,6 +2228,7 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-none-none < /dev/null | FileCheck -check-prefix I386 %s // // I386-NOT:#define _LP64 +// I386:#define __BIGGEST_ALIGNMENT__ 16 // I386:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // I386:#define __CHAR16_TYPE__ unsigned short // I386:#define __CHAR32_TYPE__ unsigned int @@ -2038,7 +2246,7 @@ // I386:#define __DBL_MIN_10_EXP__ (-307) // I386:#define __DBL_MIN_EXP__ (-1021) // I386:#define __DBL_MIN__ 2.2250738585072014e-308 -// I386:#define __DECIMAL_DIG__ 21 +// I386:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // I386:#define __FLT_DENORM_MIN__ 1.40129846e-45F // I386:#define __FLT_DIG__ 6 // I386:#define __FLT_EPSILON__ 1.19209290e-7F @@ -2207,6 +2415,7 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-pc-linux-gnu -target-cpu pentium4 < /dev/null | FileCheck -check-prefix I386-LINUX %s // // I386-LINUX-NOT:#define _LP64 +// I386-LINUX:#define __BIGGEST_ALIGNMENT__ 16 // I386-LINUX:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // I386-LINUX:#define __CHAR16_TYPE__ unsigned short // I386-LINUX:#define __CHAR32_TYPE__ unsigned int @@ -2224,7 +2433,7 @@ // I386-LINUX:#define __DBL_MIN_10_EXP__ (-307) // I386-LINUX:#define __DBL_MIN_EXP__ (-1021) // I386-LINUX:#define __DBL_MIN__ 2.2250738585072014e-308 -// I386-LINUX:#define __DECIMAL_DIG__ 21 +// I386-LINUX:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // I386-LINUX:#define __FLT_DENORM_MIN__ 1.40129846e-45F // I386-LINUX:#define __FLT_DIG__ 6 // I386-LINUX:#define __FLT_EPSILON__ 1.19209290e-7F @@ -2393,6 +2602,7 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-netbsd < /dev/null | FileCheck -check-prefix I386-NETBSD %s // // I386-NETBSD-NOT:#define _LP64 +// I386-NETBSD:#define __BIGGEST_ALIGNMENT__ 16 // I386-NETBSD:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // I386-NETBSD:#define __CHAR16_TYPE__ unsigned short // I386-NETBSD:#define __CHAR32_TYPE__ unsigned int @@ -2410,7 +2620,7 @@ // I386-NETBSD:#define __DBL_MIN_10_EXP__ (-307) // I386-NETBSD:#define __DBL_MIN_EXP__ (-1021) // I386-NETBSD:#define __DBL_MIN__ 2.2250738585072014e-308 -// I386-NETBSD:#define __DECIMAL_DIG__ 21 +// I386-NETBSD:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // I386-NETBSD:#define __FLT_DENORM_MIN__ 1.40129846e-45F // I386-NETBSD:#define __FLT_DIG__ 6 // I386-NETBSD:#define __FLT_EPSILON__ 1.19209290e-7F @@ -2597,6 +2807,7 @@ // MIPS32BE:#define _MIPS_SZINT 32 // MIPS32BE:#define _MIPS_SZLONG 32 // MIPS32BE:#define _MIPS_SZPTR 32 +// MIPS32BE:#define __BIGGEST_ALIGNMENT__ 8 // MIPS32BE:#define __BIG_ENDIAN__ 1 // MIPS32BE:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // MIPS32BE:#define __CHAR16_TYPE__ unsigned short @@ -2616,7 +2827,7 @@ // MIPS32BE:#define __DBL_MIN_10_EXP__ (-307) // MIPS32BE:#define __DBL_MIN_EXP__ (-1021) // MIPS32BE:#define __DBL_MIN__ 2.2250738585072014e-308 -// MIPS32BE:#define __DECIMAL_DIG__ 17 +// MIPS32BE:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // MIPS32BE:#define __FLT_DENORM_MIN__ 1.40129846e-45F // MIPS32BE:#define __FLT_DIG__ 6 // MIPS32BE:#define __FLT_EPSILON__ 1.19209290e-7F @@ -2805,6 +3016,7 @@ // MIPS32EL:#define _MIPS_SZINT 32 // MIPS32EL:#define _MIPS_SZLONG 32 // MIPS32EL:#define _MIPS_SZPTR 32 +// MIPS32EL:#define __BIGGEST_ALIGNMENT__ 8 // MIPS32EL:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // MIPS32EL:#define __CHAR16_TYPE__ unsigned short // MIPS32EL:#define __CHAR32_TYPE__ unsigned int @@ -2823,7 +3035,7 @@ // MIPS32EL:#define __DBL_MIN_10_EXP__ (-307) // MIPS32EL:#define __DBL_MIN_EXP__ (-1021) // MIPS32EL:#define __DBL_MIN__ 2.2250738585072014e-308 -// MIPS32EL:#define __DECIMAL_DIG__ 17 +// MIPS32EL:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // MIPS32EL:#define __FLT_DENORM_MIN__ 1.40129846e-45F // MIPS32EL:#define __FLT_DIG__ 6 // MIPS32EL:#define __FLT_EPSILON__ 1.19209290e-7F @@ -3038,7 +3250,7 @@ // MIPSN32BE: #define __DBL_MIN_10_EXP__ (-307) // MIPSN32BE: #define __DBL_MIN_EXP__ (-1021) // MIPSN32BE: #define __DBL_MIN__ 2.2250738585072014e-308 -// MIPSN32BE: #define __DECIMAL_DIG__ 36 +// MIPSN32BE: #define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // MIPSN32BE: #define __FINITE_MATH_ONLY__ 0 // MIPSN32BE: #define __FLT_DENORM_MIN__ 1.40129846e-45F // MIPSN32BE: #define __FLT_DIG__ 6 @@ -3344,7 +3556,7 @@ // MIPSN32EL: #define __DBL_MIN_10_EXP__ (-307) // MIPSN32EL: #define __DBL_MIN_EXP__ (-1021) // MIPSN32EL: #define __DBL_MIN__ 2.2250738585072014e-308 -// MIPSN32EL: #define __DECIMAL_DIG__ 36 +// MIPSN32EL: #define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // MIPSN32EL: #define __FINITE_MATH_ONLY__ 0 // MIPSN32EL: #define __FLT_DENORM_MIN__ 1.40129846e-45F // MIPSN32EL: #define __FLT_DIG__ 6 @@ -3624,6 +3836,7 @@ // MIPS64BE:#define _MIPS_SZINT 32 // MIPS64BE:#define _MIPS_SZLONG 64 // MIPS64BE:#define _MIPS_SZPTR 64 +// MIPS64BE:#define __BIGGEST_ALIGNMENT__ 16 // MIPS64BE:#define __BIG_ENDIAN__ 1 // MIPS64BE:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // MIPS64BE:#define __CHAR16_TYPE__ unsigned short @@ -3643,7 +3856,7 @@ // MIPS64BE:#define __DBL_MIN_10_EXP__ (-307) // MIPS64BE:#define __DBL_MIN_EXP__ (-1021) // MIPS64BE:#define __DBL_MIN__ 2.2250738585072014e-308 -// MIPS64BE:#define __DECIMAL_DIG__ 36 +// MIPS64BE:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // MIPS64BE:#define __FLT_DENORM_MIN__ 1.40129846e-45F // MIPS64BE:#define __FLT_DIG__ 6 // MIPS64BE:#define __FLT_EPSILON__ 1.19209290e-7F @@ -3832,6 +4045,7 @@ // MIPS64EL:#define _MIPS_SZINT 32 // MIPS64EL:#define _MIPS_SZLONG 64 // MIPS64EL:#define _MIPS_SZPTR 64 +// MIPS64EL:#define __BIGGEST_ALIGNMENT__ 16 // MIPS64EL:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // MIPS64EL:#define __CHAR16_TYPE__ unsigned short // MIPS64EL:#define __CHAR32_TYPE__ unsigned int @@ -3850,7 +4064,7 @@ // MIPS64EL:#define __DBL_MIN_10_EXP__ (-307) // MIPS64EL:#define __DBL_MIN_EXP__ (-1021) // MIPS64EL:#define __DBL_MIN__ 2.2250738585072014e-308 -// MIPS64EL:#define __DECIMAL_DIG__ 36 +// MIPS64EL:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // MIPS64EL:#define __FLT_DENORM_MIN__ 1.40129846e-45F // MIPS64EL:#define __FLT_DIG__ 6 // MIPS64EL:#define __FLT_EPSILON__ 1.19209290e-7F @@ -4057,6 +4271,24 @@ // MIPS-ARCH-32R2:#define __mips_isa_rev 2 // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips-none-none \ +// RUN: -target-cpu mips32r3 < /dev/null \ +// RUN: | FileCheck -check-prefix MIPS-ARCH-32R3 %s +// +// MIPS-ARCH-32R3:#define _MIPS_ARCH "mips32r3" +// MIPS-ARCH-32R3:#define _MIPS_ARCH_MIPS32R3 1 +// MIPS-ARCH-32R3:#define _MIPS_ISA _MIPS_ISA_MIPS32 +// MIPS-ARCH-32R3:#define __mips_isa_rev 3 +// +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips-none-none \ +// RUN: -target-cpu mips32r5 < /dev/null \ +// RUN: | FileCheck -check-prefix MIPS-ARCH-32R5 %s +// +// MIPS-ARCH-32R5:#define _MIPS_ARCH "mips32r5" +// MIPS-ARCH-32R5:#define _MIPS_ARCH_MIPS32R5 1 +// MIPS-ARCH-32R5:#define _MIPS_ISA _MIPS_ISA_MIPS32 +// MIPS-ARCH-32R5:#define __mips_isa_rev 5 +// +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips-none-none \ // RUN: -target-cpu mips32r6 < /dev/null \ // RUN: | FileCheck -check-prefix MIPS-ARCH-32R6 %s // @@ -4093,6 +4325,24 @@ // MIPS-ARCH-64R2:#define __mips_isa_rev 2 // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips64-none-none \ +// RUN: -target-cpu mips64r3 < /dev/null \ +// RUN: | FileCheck -check-prefix MIPS-ARCH-64R3 %s +// +// MIPS-ARCH-64R3:#define _MIPS_ARCH "mips64r3" +// MIPS-ARCH-64R3:#define _MIPS_ARCH_MIPS64R3 1 +// MIPS-ARCH-64R3:#define _MIPS_ISA _MIPS_ISA_MIPS64 +// MIPS-ARCH-64R3:#define __mips_isa_rev 3 +// +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips64-none-none \ +// RUN: -target-cpu mips64r5 < /dev/null \ +// RUN: | FileCheck -check-prefix MIPS-ARCH-64R5 %s +// +// MIPS-ARCH-64R5:#define _MIPS_ARCH "mips64r5" +// MIPS-ARCH-64R5:#define _MIPS_ARCH_MIPS64R5 1 +// MIPS-ARCH-64R5:#define _MIPS_ISA _MIPS_ISA_MIPS64 +// MIPS-ARCH-64R5:#define __mips_isa_rev 5 +// +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips64-none-none \ // RUN: -target-cpu mips64r6 < /dev/null \ // RUN: | FileCheck -check-prefix MIPS-ARCH-64R6 %s // @@ -4166,11 +4416,16 @@ // RUN: | FileCheck -check-prefix MIPS-MSA %s // MIPS-MSA:#define __mips_msa 1 // -// RUN: %clang_cc1 -target-feature +nan2008 \ +// RUN: %clang_cc1 -target-cpu mips32r3 -target-feature +nan2008 \ // RUN: -E -dM -triple=mips-none-none < /dev/null \ // RUN: | FileCheck -check-prefix MIPS-NAN2008 %s // MIPS-NAN2008:#define __mips_nan2008 1 // +// RUN: %clang_cc1 -target-cpu mips32r3 -target-feature -nan2008 \ +// RUN: -E -dM -triple=mips-none-none < /dev/null \ +// RUN: | FileCheck -check-prefix NOMIPS-NAN2008 %s +// NOMIPS-NAN2008-NOT:#define __mips_nan2008 1 +// // RUN: %clang_cc1 -target-feature -fp64 \ // RUN: -E -dM -triple=mips-none-none < /dev/null \ // RUN: | FileCheck -check-prefix MIPS32-MFP32 %s @@ -4215,6 +4470,7 @@ // // MSP430:#define MSP430 1 // MSP430-NOT:#define _LP64 +// MSP430:#define __BIGGEST_ALIGNMENT__ 2 // MSP430:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // MSP430:#define __CHAR16_TYPE__ unsigned short // MSP430:#define __CHAR32_TYPE__ unsigned int @@ -4232,7 +4488,7 @@ // MSP430:#define __DBL_MIN_10_EXP__ (-307) // MSP430:#define __DBL_MIN_EXP__ (-1021) // MSP430:#define __DBL_MIN__ 2.2250738585072014e-308 -// MSP430:#define __DECIMAL_DIG__ 17 +// MSP430:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // MSP430:#define __FLT_DENORM_MIN__ 1.40129846e-45F // MSP430:#define __FLT_DIG__ 6 // MSP430:#define __FLT_EPSILON__ 1.19209290e-7F @@ -4398,6 +4654,7 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=nvptx-none-none < /dev/null | FileCheck -check-prefix NVPTX32 %s // // NVPTX32-NOT:#define _LP64 +// NVPTX32:#define __BIGGEST_ALIGNMENT__ 8 // NVPTX32:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // NVPTX32:#define __CHAR16_TYPE__ unsigned short // NVPTX32:#define __CHAR32_TYPE__ unsigned int @@ -4416,7 +4673,7 @@ // NVPTX32:#define __DBL_MIN_10_EXP__ (-307) // NVPTX32:#define __DBL_MIN_EXP__ (-1021) // NVPTX32:#define __DBL_MIN__ 2.2250738585072014e-308 -// NVPTX32:#define __DECIMAL_DIG__ 17 +// NVPTX32:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // NVPTX32:#define __FINITE_MATH_ONLY__ 0 // NVPTX32:#define __FLT_DENORM_MIN__ 1.40129846e-45F // NVPTX32:#define __FLT_DIG__ 6 @@ -4517,7 +4774,7 @@ // NVPTX32:#define __NVPTX__ 1 // NVPTX32:#define __POINTER_WIDTH__ 32 // NVPTX32:#define __PRAGMA_REDEFINE_EXTNAME 1 -// NVPTX32:#define __PTRDIFF_TYPE__ unsigned int +// NVPTX32:#define __PTRDIFF_TYPE__ int // NVPTX32:#define __PTRDIFF_WIDTH__ 32 // NVPTX32:#define __PTX__ 1 // NVPTX32:#define __SCHAR_MAX__ 127 @@ -4584,6 +4841,7 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=nvptx64-none-none < /dev/null | FileCheck -check-prefix NVPTX64 %s // // NVPTX64:#define _LP64 1 +// NVPTX64:#define __BIGGEST_ALIGNMENT__ 8 // NVPTX64:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // NVPTX64:#define __CHAR16_TYPE__ unsigned short // NVPTX64:#define __CHAR32_TYPE__ unsigned int @@ -4602,7 +4860,7 @@ // NVPTX64:#define __DBL_MIN_10_EXP__ (-307) // NVPTX64:#define __DBL_MIN_EXP__ (-1021) // NVPTX64:#define __DBL_MIN__ 2.2250738585072014e-308 -// NVPTX64:#define __DECIMAL_DIG__ 17 +// NVPTX64:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // NVPTX64:#define __FINITE_MATH_ONLY__ 0 // NVPTX64:#define __FLT_DENORM_MIN__ 1.40129846e-45F // NVPTX64:#define __FLT_DIG__ 6 @@ -4645,10 +4903,10 @@ // NVPTX64:#define __INTMAX_MAX__ 9223372036854775807LL // NVPTX64:#define __INTMAX_TYPE__ long long int // NVPTX64:#define __INTMAX_WIDTH__ 64 -// NVPTX64:#define __INTPTR_FMTd__ "lld" -// NVPTX64:#define __INTPTR_FMTi__ "lli" -// NVPTX64:#define __INTPTR_MAX__ 9223372036854775807LL -// NVPTX64:#define __INTPTR_TYPE__ long long int +// NVPTX64:#define __INTPTR_FMTd__ "ld" +// NVPTX64:#define __INTPTR_FMTi__ "li" +// NVPTX64:#define __INTPTR_MAX__ 9223372036854775807L +// NVPTX64:#define __INTPTR_TYPE__ long int // NVPTX64:#define __INTPTR_WIDTH__ 64 // NVPTX64:#define __INT_FAST16_FMTd__ "hd" // NVPTX64:#define __INT_FAST16_FMTi__ "hi" @@ -4703,7 +4961,7 @@ // NVPTX64:#define __NVPTX__ 1 // NVPTX64:#define __POINTER_WIDTH__ 64 // NVPTX64:#define __PRAGMA_REDEFINE_EXTNAME 1 -// NVPTX64:#define __PTRDIFF_TYPE__ long long unsigned int +// NVPTX64:#define __PTRDIFF_TYPE__ long int // NVPTX64:#define __PTRDIFF_WIDTH__ 64 // NVPTX64:#define __PTX__ 1 // NVPTX64:#define __SCHAR_MAX__ 127 @@ -4723,7 +4981,7 @@ // NVPTX64:#define __SIZEOF_WCHAR_T__ 4 // NVPTX64:#define __SIZEOF_WINT_T__ 4 // NVPTX64:#define __SIZE_MAX__ 18446744073709551615UL -// NVPTX64:#define __SIZE_TYPE__ long long unsigned int +// NVPTX64:#define __SIZE_TYPE__ long unsigned int // NVPTX64:#define __SIZE_WIDTH__ 64 // NVPTX64:#define __UINT16_C_SUFFIX__ {{$}} // NVPTX64:#define __UINT16_MAX__ 65535 @@ -4741,8 +4999,8 @@ // NVPTX64:#define __UINTMAX_MAX__ 18446744073709551615ULL // NVPTX64:#define __UINTMAX_TYPE__ long long unsigned int // NVPTX64:#define __UINTMAX_WIDTH__ 64 -// NVPTX64:#define __UINTPTR_MAX__ 18446744073709551615ULL -// NVPTX64:#define __UINTPTR_TYPE__ long long unsigned int +// NVPTX64:#define __UINTPTR_MAX__ 18446744073709551615UL +// NVPTX64:#define __UINTPTR_TYPE__ long unsigned int // NVPTX64:#define __UINTPTR_WIDTH__ 64 // NVPTX64:#define __UINT_FAST16_MAX__ 65535 // NVPTX64:#define __UINT_FAST16_TYPE__ unsigned short @@ -4775,6 +5033,7 @@ // PPC603E:#define _ARCH_PPCGR 1 // PPC603E:#define _BIG_ENDIAN 1 // PPC603E-NOT:#define _LP64 +// PPC603E:#define __BIGGEST_ALIGNMENT__ 8 // PPC603E:#define __BIG_ENDIAN__ 1 // PPC603E:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // PPC603E:#define __CHAR16_TYPE__ unsigned short @@ -4793,7 +5052,7 @@ // PPC603E:#define __DBL_MIN_10_EXP__ (-307) // PPC603E:#define __DBL_MIN_EXP__ (-1021) // PPC603E:#define __DBL_MIN__ 2.2250738585072014e-308 -// PPC603E:#define __DECIMAL_DIG__ 33 +// PPC603E:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // PPC603E:#define __FLT_DENORM_MIN__ 1.40129846e-45F // PPC603E:#define __FLT_DIG__ 6 // PPC603E:#define __FLT_EPSILON__ 1.19209290e-7F @@ -4972,6 +5231,7 @@ // PPC64:#define _ARCH_PWR7 1 // PPC64:#define _BIG_ENDIAN 1 // PPC64:#define _LP64 1 +// PPC64:#define __BIGGEST_ALIGNMENT__ 8 // PPC64:#define __BIG_ENDIAN__ 1 // PPC64:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // PPC64:#define __CHAR16_TYPE__ unsigned short @@ -4991,7 +5251,7 @@ // PPC64:#define __DBL_MIN_10_EXP__ (-307) // PPC64:#define __DBL_MIN_EXP__ (-1021) // PPC64:#define __DBL_MIN__ 2.2250738585072014e-308 -// PPC64:#define __DECIMAL_DIG__ 33 +// PPC64:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // PPC64:#define __FLT_DENORM_MIN__ 1.40129846e-45F // PPC64:#define __FLT_DIG__ 6 // PPC64:#define __FLT_EPSILON__ 1.19209290e-7F @@ -5174,6 +5434,7 @@ // PPC64LE:#define _CALL_ELF 2 // PPC64LE:#define _LITTLE_ENDIAN 1 // PPC64LE:#define _LP64 1 +// PPC64LE:#define __BIGGEST_ALIGNMENT__ 8 // PPC64LE:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // PPC64LE:#define __CHAR16_TYPE__ unsigned short // PPC64LE:#define __CHAR32_TYPE__ unsigned int @@ -5192,7 +5453,7 @@ // PPC64LE:#define __DBL_MIN_10_EXP__ (-307) // PPC64LE:#define __DBL_MIN_EXP__ (-1021) // PPC64LE:#define __DBL_MIN__ 2.2250738585072014e-308 -// PPC64LE:#define __DECIMAL_DIG__ 33 +// PPC64LE:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // PPC64LE:#define __FLT_DENORM_MIN__ 1.40129846e-45F // PPC64LE:#define __FLT_DIG__ 6 // PPC64LE:#define __FLT_EPSILON__ 1.19209290e-7F @@ -5555,6 +5816,7 @@ // PPC64-LINUX:#define _ARCH_PPC64 1 // PPC64-LINUX:#define _BIG_ENDIAN 1 // PPC64-LINUX:#define _LP64 1 +// PPC64-LINUX:#define __BIGGEST_ALIGNMENT__ 8 // PPC64-LINUX:#define __BIG_ENDIAN__ 1 // PPC64-LINUX:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // PPC64-LINUX:#define __CHAR16_TYPE__ unsigned short @@ -5574,7 +5836,7 @@ // PPC64-LINUX:#define __DBL_MIN_10_EXP__ (-307) // PPC64-LINUX:#define __DBL_MIN_EXP__ (-1021) // PPC64-LINUX:#define __DBL_MIN__ 2.2250738585072014e-308 -// PPC64-LINUX:#define __DECIMAL_DIG__ 33 +// PPC64-LINUX:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // PPC64-LINUX:#define __FLT_DENORM_MIN__ 1.40129846e-45F // PPC64-LINUX:#define __FLT_DIG__ 6 // PPC64-LINUX:#define __FLT_EPSILON__ 1.19209290e-7F @@ -5747,6 +6009,7 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-unknown-linux-gnu < /dev/null | FileCheck -check-prefix PPC64-ELFv1 %s // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-unknown-linux-gnu -target-abi elfv1 < /dev/null | FileCheck -check-prefix PPC64-ELFv1 %s +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-unknown-linux-gnu -target-abi elfv1-qpx < /dev/null | FileCheck -check-prefix PPC64-ELFv1 %s // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-unknown-linux-gnu -target-abi elfv2 < /dev/null | FileCheck -check-prefix PPC64-ELFv2 %s // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64le-unknown-linux-gnu < /dev/null | FileCheck -check-prefix PPC64-ELFv2 %s // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64le-unknown-linux-gnu -target-abi elfv1 < /dev/null | FileCheck -check-prefix PPC64-ELFv1 %s @@ -5759,6 +6022,7 @@ // PPC:#define _ARCH_PPC 1 // PPC:#define _BIG_ENDIAN 1 // PPC-NOT:#define _LP64 +// PPC:#define __BIGGEST_ALIGNMENT__ 8 // PPC:#define __BIG_ENDIAN__ 1 // PPC:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // PPC:#define __CHAR16_TYPE__ unsigned short @@ -5778,7 +6042,7 @@ // PPC:#define __DBL_MIN_10_EXP__ (-307) // PPC:#define __DBL_MIN_EXP__ (-1021) // PPC:#define __DBL_MIN__ 2.2250738585072014e-308 -// PPC:#define __DECIMAL_DIG__ 33 +// PPC:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // PPC:#define __FLT_DENORM_MIN__ 1.40129846e-45F // PPC:#define __FLT_DIG__ 6 // PPC:#define __FLT_EPSILON__ 1.19209290e-7F @@ -5949,6 +6213,7 @@ // PPC-LINUX:#define _ARCH_PPC 1 // PPC-LINUX:#define _BIG_ENDIAN 1 // PPC-LINUX-NOT:#define _LP64 +// PPC-LINUX:#define __BIGGEST_ALIGNMENT__ 8 // PPC-LINUX:#define __BIG_ENDIAN__ 1 // PPC-LINUX:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // PPC-LINUX:#define __CHAR16_TYPE__ unsigned short @@ -5968,7 +6233,7 @@ // PPC-LINUX:#define __DBL_MIN_10_EXP__ (-307) // PPC-LINUX:#define __DBL_MIN_EXP__ (-1021) // PPC-LINUX:#define __DBL_MIN__ 2.2250738585072014e-308 -// PPC-LINUX:#define __DECIMAL_DIG__ 33 +// PPC-LINUX:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // PPC-LINUX:#define __FLT_DENORM_MIN__ 1.40129846e-45F // PPC-LINUX:#define __FLT_DIG__ 6 // PPC-LINUX:#define __FLT_EPSILON__ 1.19209290e-7F @@ -6140,6 +6405,7 @@ // // PPC-DARWIN:#define _ARCH_PPC 1 // PPC-DARWIN:#define _BIG_ENDIAN 1 +// PPC-DARWIN:#define __BIGGEST_ALIGNMENT__ 16 // PPC-DARWIN:#define __BIG_ENDIAN__ 1 // PPC-DARWIN:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // PPC-DARWIN:#define __CHAR16_TYPE__ unsigned short @@ -6158,7 +6424,7 @@ // PPC-DARWIN:#define __DBL_MIN_10_EXP__ (-307) // PPC-DARWIN:#define __DBL_MIN_EXP__ (-1021) // PPC-DARWIN:#define __DBL_MIN__ 2.2250738585072014e-308 -// PPC-DARWIN:#define __DECIMAL_DIG__ 33 +// PPC-DARWIN:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // PPC-DARWIN:#define __FLT_DENORM_MIN__ 1.40129846e-45F // PPC-DARWIN:#define __FLT_DIG__ 6 // PPC-DARWIN:#define __FLT_EPSILON__ 1.19209290e-7F @@ -6331,8 +6597,12 @@ // PPC-DARWIN:#define __powerpc__ 1 // PPC-DARWIN:#define __ppc__ 1 // +// RUN: %clang_cc1 -x cl -E -dM -ffreestanding -triple=amdgcn < /dev/null | FileCheck -check-prefix AMDGCN %s +// AMDGCN:#define cl_khr_fp64 1 + // RUN: %clang_cc1 -E -dM -ffreestanding -triple=s390x-none-none -fno-signed-char < /dev/null | FileCheck -check-prefix S390X %s // +// S390X:#define __BIGGEST_ALIGNMENT__ 8 // S390X:#define __CHAR16_TYPE__ unsigned short // S390X:#define __CHAR32_TYPE__ unsigned int // S390X:#define __CHAR_BIT__ 8 @@ -6350,7 +6620,7 @@ // S390X:#define __DBL_MIN_10_EXP__ (-307) // S390X:#define __DBL_MIN_EXP__ (-1021) // S390X:#define __DBL_MIN__ 2.2250738585072014e-308 -// S390X:#define __DECIMAL_DIG__ 36 +// S390X:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // S390X:#define __FLT_DENORM_MIN__ 1.40129846e-45F // S390X:#define __FLT_DIG__ 6 // S390X:#define __FLT_EPSILON__ 1.19209290e-7F @@ -6376,21 +6646,21 @@ // S390X:#define __INT32_FMTi__ "i" // S390X:#define __INT32_MAX__ 2147483647 // S390X:#define __INT32_TYPE__ int -// S390X:#define __INT64_C_SUFFIX__ LL -// S390X:#define __INT64_FMTd__ "lld" -// S390X:#define __INT64_FMTi__ "lli" -// S390X:#define __INT64_MAX__ 9223372036854775807LL -// S390X:#define __INT64_TYPE__ long long int +// S390X:#define __INT64_C_SUFFIX__ L +// S390X:#define __INT64_FMTd__ "ld" +// S390X:#define __INT64_FMTi__ "li" +// S390X:#define __INT64_MAX__ 9223372036854775807L +// S390X:#define __INT64_TYPE__ long int // S390X:#define __INT8_C_SUFFIX__ {{$}} // S390X:#define __INT8_FMTd__ "hhd" // S390X:#define __INT8_FMTi__ "hhi" // S390X:#define __INT8_MAX__ 127 // S390X:#define __INT8_TYPE__ signed char -// S390X:#define __INTMAX_C_SUFFIX__ LL -// S390X:#define __INTMAX_FMTd__ "lld" -// S390X:#define __INTMAX_FMTi__ "lli" -// S390X:#define __INTMAX_MAX__ 9223372036854775807LL -// S390X:#define __INTMAX_TYPE__ long long int +// S390X:#define __INTMAX_C_SUFFIX__ L +// S390X:#define __INTMAX_FMTd__ "ld" +// S390X:#define __INTMAX_FMTi__ "li" +// S390X:#define __INTMAX_MAX__ 9223372036854775807L +// S390X:#define __INTMAX_TYPE__ long int // S390X:#define __INTMAX_WIDTH__ 64 // S390X:#define __INTPTR_FMTd__ "ld" // S390X:#define __INTPTR_FMTi__ "li" @@ -6473,15 +6743,15 @@ // S390X:#define __UINT32_C_SUFFIX__ U // S390X:#define __UINT32_MAX__ 4294967295U // S390X:#define __UINT32_TYPE__ unsigned int -// S390X:#define __UINT64_C_SUFFIX__ ULL -// S390X:#define __UINT64_MAX__ 18446744073709551615ULL -// S390X:#define __UINT64_TYPE__ long long unsigned int +// S390X:#define __UINT64_C_SUFFIX__ UL +// S390X:#define __UINT64_MAX__ 18446744073709551615UL +// S390X:#define __UINT64_TYPE__ long unsigned int // S390X:#define __UINT8_C_SUFFIX__ {{$}} // S390X:#define __UINT8_MAX__ 255 // S390X:#define __UINT8_TYPE__ unsigned char -// S390X:#define __UINTMAX_C_SUFFIX__ ULL -// S390X:#define __UINTMAX_MAX__ 18446744073709551615ULL -// S390X:#define __UINTMAX_TYPE__ long long unsigned int +// S390X:#define __UINTMAX_C_SUFFIX__ UL +// S390X:#define __UINTMAX_MAX__ 18446744073709551615UL +// S390X:#define __UINTMAX_TYPE__ long unsigned int // S390X:#define __UINTMAX_WIDTH__ 64 // S390X:#define __UINTPTR_MAX__ 18446744073709551615UL // S390X:#define __UINTPTR_TYPE__ long unsigned int @@ -6514,6 +6784,7 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=sparc-none-none < /dev/null | FileCheck -check-prefix SPARC %s // // SPARC-NOT:#define _LP64 +// SPARC:#define __BIGGEST_ALIGNMENT__ 8 // SPARC:#define __BIG_ENDIAN__ 1 // SPARC:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // SPARC:#define __CHAR16_TYPE__ unsigned short @@ -6532,7 +6803,7 @@ // SPARC:#define __DBL_MIN_10_EXP__ (-307) // SPARC:#define __DBL_MIN_EXP__ (-1021) // SPARC:#define __DBL_MIN__ 2.2250738585072014e-308 -// SPARC:#define __DECIMAL_DIG__ 17 +// SPARC:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // SPARC:#define __FLT_DENORM_MIN__ 1.40129846e-45F // SPARC:#define __FLT_DIG__ 6 // SPARC:#define __FLT_EPSILON__ 1.19209290e-7F @@ -6701,6 +6972,7 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=tce-none-none < /dev/null | FileCheck -check-prefix TCE %s // // TCE-NOT:#define _LP64 +// TCE:#define __BIGGEST_ALIGNMENT__ 4 // TCE:#define __BIG_ENDIAN__ 1 // TCE:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // TCE:#define __CHAR16_TYPE__ unsigned short @@ -6719,7 +6991,7 @@ // TCE:#define __DBL_MIN_10_EXP__ (-37) // TCE:#define __DBL_MIN_EXP__ (-125) // TCE:#define __DBL_MIN__ 1.17549435e-38 -// TCE:#define __DECIMAL_DIG__ -1 +// TCE:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // TCE:#define __FLT_DENORM_MIN__ 1.40129846e-45F // TCE:#define __FLT_DIG__ 6 // TCE:#define __FLT_EPSILON__ 1.19209290e-7F @@ -6868,6 +7140,7 @@ // // X86_64:#define _LP64 1 // X86_64-NOT:#define _LP32 1 +// X86_64:#define __BIGGEST_ALIGNMENT__ 16 // X86_64:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // X86_64:#define __CHAR16_TYPE__ unsigned short // X86_64:#define __CHAR32_TYPE__ unsigned int @@ -6885,7 +7158,7 @@ // X86_64:#define __DBL_MIN_10_EXP__ (-307) // X86_64:#define __DBL_MIN_EXP__ (-1021) // X86_64:#define __DBL_MIN__ 2.2250738585072014e-308 -// X86_64:#define __DECIMAL_DIG__ 21 +// X86_64:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // X86_64:#define __FLT_DENORM_MIN__ 1.40129846e-45F // X86_64:#define __FLT_DIG__ 6 // X86_64:#define __FLT_EPSILON__ 1.19209290e-7F @@ -7069,6 +7342,7 @@ // // X32:#define _ILP32 1 // X32-NOT:#define _LP64 1 +// X32:#define __BIGGEST_ALIGNMENT__ 16 // X32:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // X32:#define __CHAR16_TYPE__ unsigned short // X32:#define __CHAR32_TYPE__ unsigned int @@ -7086,7 +7360,7 @@ // X32:#define __DBL_MIN_10_EXP__ (-307) // X32:#define __DBL_MIN_EXP__ (-1021) // X32:#define __DBL_MIN__ 2.2250738585072014e-308 -// X32:#define __DECIMAL_DIG__ 21 +// X32:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // X32:#define __FLT_DENORM_MIN__ 1.40129846e-45F // X32:#define __FLT_DIG__ 6 // X32:#define __FLT_EPSILON__ 1.19209290e-7F @@ -7259,9 +7533,315 @@ // X32:#define __x86_64 1 // X32:#define __x86_64__ 1 // +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-unknown-cloudabi < /dev/null | FileCheck -check-prefix X86_64-CLOUDABI %s +// +// X86_64-CLOUDABI:#define _LP64 1 +// X86_64-CLOUDABI:#define __ATOMIC_ACQUIRE 2 +// X86_64-CLOUDABI:#define __ATOMIC_ACQ_REL 4 +// X86_64-CLOUDABI:#define __ATOMIC_CONSUME 1 +// X86_64-CLOUDABI:#define __ATOMIC_RELAXED 0 +// X86_64-CLOUDABI:#define __ATOMIC_RELEASE 3 +// X86_64-CLOUDABI:#define __ATOMIC_SEQ_CST 5 +// X86_64-CLOUDABI:#define __BIGGEST_ALIGNMENT__ 16 +// X86_64-CLOUDABI:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +// X86_64-CLOUDABI:#define __CHAR16_TYPE__ unsigned short +// X86_64-CLOUDABI:#define __CHAR32_TYPE__ unsigned int +// X86_64-CLOUDABI:#define __CHAR_BIT__ 8 +// X86_64-CLOUDABI:#define __CONSTANT_CFSTRINGS__ 1 +// X86_64-CLOUDABI:#define __CloudABI__ 1 +// X86_64-CLOUDABI:#define __DBL_DECIMAL_DIG__ 17 +// X86_64-CLOUDABI:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +// X86_64-CLOUDABI:#define __DBL_DIG__ 15 +// X86_64-CLOUDABI:#define __DBL_EPSILON__ 2.2204460492503131e-16 +// X86_64-CLOUDABI:#define __DBL_HAS_DENORM__ 1 +// X86_64-CLOUDABI:#define __DBL_HAS_INFINITY__ 1 +// X86_64-CLOUDABI:#define __DBL_HAS_QUIET_NAN__ 1 +// X86_64-CLOUDABI:#define __DBL_MANT_DIG__ 53 +// X86_64-CLOUDABI:#define __DBL_MAX_10_EXP__ 308 +// X86_64-CLOUDABI:#define __DBL_MAX_EXP__ 1024 +// X86_64-CLOUDABI:#define __DBL_MAX__ 1.7976931348623157e+308 +// X86_64-CLOUDABI:#define __DBL_MIN_10_EXP__ (-307) +// X86_64-CLOUDABI:#define __DBL_MIN_EXP__ (-1021) +// X86_64-CLOUDABI:#define __DBL_MIN__ 2.2250738585072014e-308 +// X86_64-CLOUDABI:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ +// X86_64-CLOUDABI:#define __ELF__ 1 +// X86_64-CLOUDABI:#define __FINITE_MATH_ONLY__ 0 +// X86_64-CLOUDABI:#define __FLT_DECIMAL_DIG__ 9 +// X86_64-CLOUDABI:#define __FLT_DENORM_MIN__ 1.40129846e-45F +// X86_64-CLOUDABI:#define __FLT_DIG__ 6 +// X86_64-CLOUDABI:#define __FLT_EPSILON__ 1.19209290e-7F +// X86_64-CLOUDABI:#define __FLT_EVAL_METHOD__ 0 +// X86_64-CLOUDABI:#define __FLT_HAS_DENORM__ 1 +// X86_64-CLOUDABI:#define __FLT_HAS_INFINITY__ 1 +// X86_64-CLOUDABI:#define __FLT_HAS_QUIET_NAN__ 1 +// X86_64-CLOUDABI:#define __FLT_MANT_DIG__ 24 +// X86_64-CLOUDABI:#define __FLT_MAX_10_EXP__ 38 +// X86_64-CLOUDABI:#define __FLT_MAX_EXP__ 128 +// X86_64-CLOUDABI:#define __FLT_MAX__ 3.40282347e+38F +// X86_64-CLOUDABI:#define __FLT_MIN_10_EXP__ (-37) +// X86_64-CLOUDABI:#define __FLT_MIN_EXP__ (-125) +// X86_64-CLOUDABI:#define __FLT_MIN__ 1.17549435e-38F +// X86_64-CLOUDABI:#define __FLT_RADIX__ 2 +// X86_64-CLOUDABI:#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +// X86_64-CLOUDABI:#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +// X86_64-CLOUDABI:#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +// X86_64-CLOUDABI:#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +// X86_64-CLOUDABI:#define __GCC_ATOMIC_INT_LOCK_FREE 2 +// X86_64-CLOUDABI:#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +// X86_64-CLOUDABI:#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +// X86_64-CLOUDABI:#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +// X86_64-CLOUDABI:#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +// X86_64-CLOUDABI:#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +// X86_64-CLOUDABI:#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +// X86_64-CLOUDABI:#define __GNUC_MINOR__ 2 +// X86_64-CLOUDABI:#define __GNUC_PATCHLEVEL__ 1 +// X86_64-CLOUDABI:#define __GNUC_STDC_INLINE__ 1 +// X86_64-CLOUDABI:#define __GNUC__ 4 +// X86_64-CLOUDABI:#define __GXX_ABI_VERSION 1002 +// X86_64-CLOUDABI:#define __GXX_RTTI 1 +// X86_64-CLOUDABI:#define __INT16_C_SUFFIX__ +// X86_64-CLOUDABI:#define __INT16_FMTd__ "hd" +// X86_64-CLOUDABI:#define __INT16_FMTi__ "hi" +// X86_64-CLOUDABI:#define __INT16_MAX__ 32767 +// X86_64-CLOUDABI:#define __INT16_TYPE__ short +// X86_64-CLOUDABI:#define __INT32_C_SUFFIX__ +// X86_64-CLOUDABI:#define __INT32_FMTd__ "d" +// X86_64-CLOUDABI:#define __INT32_FMTi__ "i" +// X86_64-CLOUDABI:#define __INT32_MAX__ 2147483647 +// X86_64-CLOUDABI:#define __INT32_TYPE__ int +// X86_64-CLOUDABI:#define __INT64_C_SUFFIX__ L +// X86_64-CLOUDABI:#define __INT64_FMTd__ "ld" +// X86_64-CLOUDABI:#define __INT64_FMTi__ "li" +// X86_64-CLOUDABI:#define __INT64_MAX__ 9223372036854775807L +// X86_64-CLOUDABI:#define __INT64_TYPE__ long int +// X86_64-CLOUDABI:#define __INT8_C_SUFFIX__ +// X86_64-CLOUDABI:#define __INT8_FMTd__ "hhd" +// X86_64-CLOUDABI:#define __INT8_FMTi__ "hhi" +// X86_64-CLOUDABI:#define __INT8_MAX__ 127 +// X86_64-CLOUDABI:#define __INT8_TYPE__ signed char +// X86_64-CLOUDABI:#define __INTMAX_C_SUFFIX__ L +// X86_64-CLOUDABI:#define __INTMAX_FMTd__ "ld" +// X86_64-CLOUDABI:#define __INTMAX_FMTi__ "li" +// X86_64-CLOUDABI:#define __INTMAX_MAX__ 9223372036854775807L +// X86_64-CLOUDABI:#define __INTMAX_TYPE__ long int +// X86_64-CLOUDABI:#define __INTMAX_WIDTH__ 64 +// X86_64-CLOUDABI:#define __INTPTR_FMTd__ "ld" +// X86_64-CLOUDABI:#define __INTPTR_FMTi__ "li" +// X86_64-CLOUDABI:#define __INTPTR_MAX__ 9223372036854775807L +// X86_64-CLOUDABI:#define __INTPTR_TYPE__ long int +// X86_64-CLOUDABI:#define __INTPTR_WIDTH__ 64 +// X86_64-CLOUDABI:#define __INT_FAST16_FMTd__ "hd" +// X86_64-CLOUDABI:#define __INT_FAST16_FMTi__ "hi" +// X86_64-CLOUDABI:#define __INT_FAST16_MAX__ 32767 +// X86_64-CLOUDABI:#define __INT_FAST16_TYPE__ short +// X86_64-CLOUDABI:#define __INT_FAST32_FMTd__ "d" +// X86_64-CLOUDABI:#define __INT_FAST32_FMTi__ "i" +// X86_64-CLOUDABI:#define __INT_FAST32_MAX__ 2147483647 +// X86_64-CLOUDABI:#define __INT_FAST32_TYPE__ int +// X86_64-CLOUDABI:#define __INT_FAST64_FMTd__ "ld" +// X86_64-CLOUDABI:#define __INT_FAST64_FMTi__ "li" +// X86_64-CLOUDABI:#define __INT_FAST64_MAX__ 9223372036854775807L +// X86_64-CLOUDABI:#define __INT_FAST64_TYPE__ long int +// X86_64-CLOUDABI:#define __INT_FAST8_FMTd__ "hhd" +// X86_64-CLOUDABI:#define __INT_FAST8_FMTi__ "hhi" +// X86_64-CLOUDABI:#define __INT_FAST8_MAX__ 127 +// X86_64-CLOUDABI:#define __INT_FAST8_TYPE__ signed char +// X86_64-CLOUDABI:#define __INT_LEAST16_FMTd__ "hd" +// X86_64-CLOUDABI:#define __INT_LEAST16_FMTi__ "hi" +// X86_64-CLOUDABI:#define __INT_LEAST16_MAX__ 32767 +// X86_64-CLOUDABI:#define __INT_LEAST16_TYPE__ short +// X86_64-CLOUDABI:#define __INT_LEAST32_FMTd__ "d" +// X86_64-CLOUDABI:#define __INT_LEAST32_FMTi__ "i" +// X86_64-CLOUDABI:#define __INT_LEAST32_MAX__ 2147483647 +// X86_64-CLOUDABI:#define __INT_LEAST32_TYPE__ int +// X86_64-CLOUDABI:#define __INT_LEAST64_FMTd__ "ld" +// X86_64-CLOUDABI:#define __INT_LEAST64_FMTi__ "li" +// X86_64-CLOUDABI:#define __INT_LEAST64_MAX__ 9223372036854775807L +// X86_64-CLOUDABI:#define __INT_LEAST64_TYPE__ long int +// X86_64-CLOUDABI:#define __INT_LEAST8_FMTd__ "hhd" +// X86_64-CLOUDABI:#define __INT_LEAST8_FMTi__ "hhi" +// X86_64-CLOUDABI:#define __INT_LEAST8_MAX__ 127 +// X86_64-CLOUDABI:#define __INT_LEAST8_TYPE__ signed char +// X86_64-CLOUDABI:#define __INT_MAX__ 2147483647 +// X86_64-CLOUDABI:#define __LDBL_DECIMAL_DIG__ 21 +// X86_64-CLOUDABI:#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L +// X86_64-CLOUDABI:#define __LDBL_DIG__ 18 +// X86_64-CLOUDABI:#define __LDBL_EPSILON__ 1.08420217248550443401e-19L +// X86_64-CLOUDABI:#define __LDBL_HAS_DENORM__ 1 +// X86_64-CLOUDABI:#define __LDBL_HAS_INFINITY__ 1 +// X86_64-CLOUDABI:#define __LDBL_HAS_QUIET_NAN__ 1 +// X86_64-CLOUDABI:#define __LDBL_MANT_DIG__ 64 +// X86_64-CLOUDABI:#define __LDBL_MAX_10_EXP__ 4932 +// X86_64-CLOUDABI:#define __LDBL_MAX_EXP__ 16384 +// X86_64-CLOUDABI:#define __LDBL_MAX__ 1.18973149535723176502e+4932L +// X86_64-CLOUDABI:#define __LDBL_MIN_10_EXP__ (-4931) +// X86_64-CLOUDABI:#define __LDBL_MIN_EXP__ (-16381) +// X86_64-CLOUDABI:#define __LDBL_MIN__ 3.36210314311209350626e-4932L +// X86_64-CLOUDABI:#define __LITTLE_ENDIAN__ 1 +// X86_64-CLOUDABI:#define __LONG_LONG_MAX__ 9223372036854775807LL +// X86_64-CLOUDABI:#define __LONG_MAX__ 9223372036854775807L +// X86_64-CLOUDABI:#define __LP64__ 1 +// X86_64-CLOUDABI:#define __MMX__ 1 +// X86_64-CLOUDABI:#define __NO_INLINE__ 1 +// X86_64-CLOUDABI:#define __NO_MATH_INLINES 1 +// X86_64-CLOUDABI:#define __ORDER_BIG_ENDIAN__ 4321 +// X86_64-CLOUDABI:#define __ORDER_LITTLE_ENDIAN__ 1234 +// X86_64-CLOUDABI:#define __ORDER_PDP_ENDIAN__ 3412 +// X86_64-CLOUDABI:#define __POINTER_WIDTH__ 64 +// X86_64-CLOUDABI:#define __PRAGMA_REDEFINE_EXTNAME 1 +// X86_64-CLOUDABI:#define __PTRDIFF_FMTd__ "ld" +// X86_64-CLOUDABI:#define __PTRDIFF_FMTi__ "li" +// X86_64-CLOUDABI:#define __PTRDIFF_MAX__ 9223372036854775807L +// X86_64-CLOUDABI:#define __PTRDIFF_TYPE__ long int +// X86_64-CLOUDABI:#define __PTRDIFF_WIDTH__ 64 +// X86_64-CLOUDABI:#define __REGISTER_PREFIX__ +// X86_64-CLOUDABI:#define __SCHAR_MAX__ 127 +// X86_64-CLOUDABI:#define __SHRT_MAX__ 32767 +// X86_64-CLOUDABI:#define __SIG_ATOMIC_MAX__ 2147483647 +// X86_64-CLOUDABI:#define __SIG_ATOMIC_WIDTH__ 32 +// X86_64-CLOUDABI:#define __SIZEOF_DOUBLE__ 8 +// X86_64-CLOUDABI:#define __SIZEOF_FLOAT__ 4 +// X86_64-CLOUDABI:#define __SIZEOF_INT128__ 16 +// X86_64-CLOUDABI:#define __SIZEOF_INT__ 4 +// X86_64-CLOUDABI:#define __SIZEOF_LONG_DOUBLE__ 16 +// X86_64-CLOUDABI:#define __SIZEOF_LONG_LONG__ 8 +// X86_64-CLOUDABI:#define __SIZEOF_LONG__ 8 +// X86_64-CLOUDABI:#define __SIZEOF_POINTER__ 8 +// X86_64-CLOUDABI:#define __SIZEOF_PTRDIFF_T__ 8 +// X86_64-CLOUDABI:#define __SIZEOF_SHORT__ 2 +// X86_64-CLOUDABI:#define __SIZEOF_SIZE_T__ 8 +// X86_64-CLOUDABI:#define __SIZEOF_WCHAR_T__ 4 +// X86_64-CLOUDABI:#define __SIZEOF_WINT_T__ 4 +// X86_64-CLOUDABI:#define __SIZE_FMTX__ "lX" +// X86_64-CLOUDABI:#define __SIZE_FMTo__ "lo" +// X86_64-CLOUDABI:#define __SIZE_FMTu__ "lu" +// X86_64-CLOUDABI:#define __SIZE_FMTx__ "lx" +// X86_64-CLOUDABI:#define __SIZE_MAX__ 18446744073709551615UL +// X86_64-CLOUDABI:#define __SIZE_TYPE__ long unsigned int +// X86_64-CLOUDABI:#define __SIZE_WIDTH__ 64 +// X86_64-CLOUDABI:#define __SSE2_MATH__ 1 +// X86_64-CLOUDABI:#define __SSE2__ 1 +// X86_64-CLOUDABI:#define __SSE_MATH__ 1 +// X86_64-CLOUDABI:#define __SSE__ 1 +// X86_64-CLOUDABI:#define __STDC_HOSTED__ 0 +// X86_64-CLOUDABI:#define __STDC_ISO_10646__ 201206L +// X86_64-CLOUDABI:#define __STDC_UTF_16__ 1 +// X86_64-CLOUDABI:#define __STDC_UTF_32__ 1 +// X86_64-CLOUDABI:#define __STDC_VERSION__ 201112L +// X86_64-CLOUDABI:#define __STDC__ 1 +// X86_64-CLOUDABI:#define __UINT16_C_SUFFIX__ +// X86_64-CLOUDABI:#define __UINT16_FMTX__ "hX" +// X86_64-CLOUDABI:#define __UINT16_FMTo__ "ho" +// X86_64-CLOUDABI:#define __UINT16_FMTu__ "hu" +// X86_64-CLOUDABI:#define __UINT16_FMTx__ "hx" +// X86_64-CLOUDABI:#define __UINT16_MAX__ 65535 +// X86_64-CLOUDABI:#define __UINT16_TYPE__ unsigned short +// X86_64-CLOUDABI:#define __UINT32_C_SUFFIX__ U +// X86_64-CLOUDABI:#define __UINT32_FMTX__ "X" +// X86_64-CLOUDABI:#define __UINT32_FMTo__ "o" +// X86_64-CLOUDABI:#define __UINT32_FMTu__ "u" +// X86_64-CLOUDABI:#define __UINT32_FMTx__ "x" +// X86_64-CLOUDABI:#define __UINT32_MAX__ 4294967295U +// X86_64-CLOUDABI:#define __UINT32_TYPE__ unsigned int +// X86_64-CLOUDABI:#define __UINT64_C_SUFFIX__ UL +// X86_64-CLOUDABI:#define __UINT64_FMTX__ "lX" +// X86_64-CLOUDABI:#define __UINT64_FMTo__ "lo" +// X86_64-CLOUDABI:#define __UINT64_FMTu__ "lu" +// X86_64-CLOUDABI:#define __UINT64_FMTx__ "lx" +// X86_64-CLOUDABI:#define __UINT64_MAX__ 18446744073709551615UL +// X86_64-CLOUDABI:#define __UINT64_TYPE__ long unsigned int +// X86_64-CLOUDABI:#define __UINT8_C_SUFFIX__ +// X86_64-CLOUDABI:#define __UINT8_FMTX__ "hhX" +// X86_64-CLOUDABI:#define __UINT8_FMTo__ "hho" +// X86_64-CLOUDABI:#define __UINT8_FMTu__ "hhu" +// X86_64-CLOUDABI:#define __UINT8_FMTx__ "hhx" +// X86_64-CLOUDABI:#define __UINT8_MAX__ 255 +// X86_64-CLOUDABI:#define __UINT8_TYPE__ unsigned char +// X86_64-CLOUDABI:#define __UINTMAX_C_SUFFIX__ UL +// X86_64-CLOUDABI:#define __UINTMAX_FMTX__ "lX" +// X86_64-CLOUDABI:#define __UINTMAX_FMTo__ "lo" +// X86_64-CLOUDABI:#define __UINTMAX_FMTu__ "lu" +// X86_64-CLOUDABI:#define __UINTMAX_FMTx__ "lx" +// X86_64-CLOUDABI:#define __UINTMAX_MAX__ 18446744073709551615UL +// X86_64-CLOUDABI:#define __UINTMAX_TYPE__ long unsigned int +// X86_64-CLOUDABI:#define __UINTMAX_WIDTH__ 64 +// X86_64-CLOUDABI:#define __UINTPTR_FMTX__ "lX" +// X86_64-CLOUDABI:#define __UINTPTR_FMTo__ "lo" +// X86_64-CLOUDABI:#define __UINTPTR_FMTu__ "lu" +// X86_64-CLOUDABI:#define __UINTPTR_FMTx__ "lx" +// X86_64-CLOUDABI:#define __UINTPTR_MAX__ 18446744073709551615UL +// X86_64-CLOUDABI:#define __UINTPTR_TYPE__ long unsigned int +// X86_64-CLOUDABI:#define __UINTPTR_WIDTH__ 64 +// X86_64-CLOUDABI:#define __UINT_FAST16_FMTX__ "hX" +// X86_64-CLOUDABI:#define __UINT_FAST16_FMTo__ "ho" +// X86_64-CLOUDABI:#define __UINT_FAST16_FMTu__ "hu" +// X86_64-CLOUDABI:#define __UINT_FAST16_FMTx__ "hx" +// X86_64-CLOUDABI:#define __UINT_FAST16_MAX__ 65535 +// X86_64-CLOUDABI:#define __UINT_FAST16_TYPE__ unsigned short +// X86_64-CLOUDABI:#define __UINT_FAST32_FMTX__ "X" +// X86_64-CLOUDABI:#define __UINT_FAST32_FMTo__ "o" +// X86_64-CLOUDABI:#define __UINT_FAST32_FMTu__ "u" +// X86_64-CLOUDABI:#define __UINT_FAST32_FMTx__ "x" +// X86_64-CLOUDABI:#define __UINT_FAST32_MAX__ 4294967295U +// X86_64-CLOUDABI:#define __UINT_FAST32_TYPE__ unsigned int +// X86_64-CLOUDABI:#define __UINT_FAST64_FMTX__ "lX" +// X86_64-CLOUDABI:#define __UINT_FAST64_FMTo__ "lo" +// X86_64-CLOUDABI:#define __UINT_FAST64_FMTu__ "lu" +// X86_64-CLOUDABI:#define __UINT_FAST64_FMTx__ "lx" +// X86_64-CLOUDABI:#define __UINT_FAST64_MAX__ 18446744073709551615UL +// X86_64-CLOUDABI:#define __UINT_FAST64_TYPE__ long unsigned int +// X86_64-CLOUDABI:#define __UINT_FAST8_FMTX__ "hhX" +// X86_64-CLOUDABI:#define __UINT_FAST8_FMTo__ "hho" +// X86_64-CLOUDABI:#define __UINT_FAST8_FMTu__ "hhu" +// X86_64-CLOUDABI:#define __UINT_FAST8_FMTx__ "hhx" +// X86_64-CLOUDABI:#define __UINT_FAST8_MAX__ 255 +// X86_64-CLOUDABI:#define __UINT_FAST8_TYPE__ unsigned char +// X86_64-CLOUDABI:#define __UINT_LEAST16_FMTX__ "hX" +// X86_64-CLOUDABI:#define __UINT_LEAST16_FMTo__ "ho" +// X86_64-CLOUDABI:#define __UINT_LEAST16_FMTu__ "hu" +// X86_64-CLOUDABI:#define __UINT_LEAST16_FMTx__ "hx" +// X86_64-CLOUDABI:#define __UINT_LEAST16_MAX__ 65535 +// X86_64-CLOUDABI:#define __UINT_LEAST16_TYPE__ unsigned short +// X86_64-CLOUDABI:#define __UINT_LEAST32_FMTX__ "X" +// X86_64-CLOUDABI:#define __UINT_LEAST32_FMTo__ "o" +// X86_64-CLOUDABI:#define __UINT_LEAST32_FMTu__ "u" +// X86_64-CLOUDABI:#define __UINT_LEAST32_FMTx__ "x" +// X86_64-CLOUDABI:#define __UINT_LEAST32_MAX__ 4294967295U +// X86_64-CLOUDABI:#define __UINT_LEAST32_TYPE__ unsigned int +// X86_64-CLOUDABI:#define __UINT_LEAST64_FMTX__ "lX" +// X86_64-CLOUDABI:#define __UINT_LEAST64_FMTo__ "lo" +// X86_64-CLOUDABI:#define __UINT_LEAST64_FMTu__ "lu" +// X86_64-CLOUDABI:#define __UINT_LEAST64_FMTx__ "lx" +// X86_64-CLOUDABI:#define __UINT_LEAST64_MAX__ 18446744073709551615UL +// X86_64-CLOUDABI:#define __UINT_LEAST64_TYPE__ long unsigned int +// X86_64-CLOUDABI:#define __UINT_LEAST8_FMTX__ "hhX" +// X86_64-CLOUDABI:#define __UINT_LEAST8_FMTo__ "hho" +// X86_64-CLOUDABI:#define __UINT_LEAST8_FMTu__ "hhu" +// X86_64-CLOUDABI:#define __UINT_LEAST8_FMTx__ "hhx" +// X86_64-CLOUDABI:#define __UINT_LEAST8_MAX__ 255 +// X86_64-CLOUDABI:#define __UINT_LEAST8_TYPE__ unsigned char +// X86_64-CLOUDABI:#define __USER_LABEL_PREFIX__ +// X86_64-CLOUDABI:#define __VERSION__ "4.2.1 Compatible +// X86_64-CLOUDABI:#define __WCHAR_MAX__ 2147483647 +// X86_64-CLOUDABI:#define __WCHAR_TYPE__ int +// X86_64-CLOUDABI:#define __WCHAR_WIDTH__ 32 +// X86_64-CLOUDABI:#define __WINT_TYPE__ int +// X86_64-CLOUDABI:#define __WINT_WIDTH__ 32 +// X86_64-CLOUDABI:#define __amd64 1 +// X86_64-CLOUDABI:#define __amd64__ 1 +// X86_64-CLOUDABI:#define __clang__ 1 +// X86_64-CLOUDABI:#define __clang_major__ +// X86_64-CLOUDABI:#define __clang_minor__ +// X86_64-CLOUDABI:#define __clang_patchlevel__ +// X86_64-CLOUDABI:#define __clang_version__ +// X86_64-CLOUDABI:#define __llvm__ 1 +// X86_64-CLOUDABI:#define __x86_64 1 +// X86_64-CLOUDABI:#define __x86_64__ 1 +// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-pc-linux-gnu < /dev/null | FileCheck -check-prefix X86_64-LINUX %s // // X86_64-LINUX:#define _LP64 1 +// X86_64-LINUX:#define __BIGGEST_ALIGNMENT__ 16 // X86_64-LINUX:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // X86_64-LINUX:#define __CHAR16_TYPE__ unsigned short // X86_64-LINUX:#define __CHAR32_TYPE__ unsigned int @@ -7279,7 +7859,7 @@ // X86_64-LINUX:#define __DBL_MIN_10_EXP__ (-307) // X86_64-LINUX:#define __DBL_MIN_EXP__ (-1021) // X86_64-LINUX:#define __DBL_MIN__ 2.2250738585072014e-308 -// X86_64-LINUX:#define __DECIMAL_DIG__ 21 +// X86_64-LINUX:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // X86_64-LINUX:#define __FLT_DENORM_MIN__ 1.40129846e-45F // X86_64-LINUX:#define __FLT_DIG__ 6 // X86_64-LINUX:#define __FLT_EPSILON__ 1.19209290e-7F @@ -7453,13 +8033,17 @@ // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-unknown-freebsd9.1 < /dev/null | FileCheck -check-prefix X86_64-FREEBSD %s // +// X86_64-FREEBSD:#define __DBL_DECIMAL_DIG__ 17 +// X86_64-FREEBSD:#define __FLT_DECIMAL_DIG__ 9 // X86_64-FREEBSD:#define __FreeBSD__ 9 // X86_64-FREEBSD:#define __FreeBSD_cc_version 900001 +// X86_64-FREEBSD:#define __LDBL_DECIMAL_DIG__ 21 // X86_64-FREEBSD:#define __STDC_MB_MIGHT_NEQ_WC__ 1 // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-netbsd < /dev/null | FileCheck -check-prefix X86_64-NETBSD %s // // X86_64-NETBSD:#define _LP64 1 +// X86_64-NETBSD:#define __BIGGEST_ALIGNMENT__ 16 // X86_64-NETBSD:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // X86_64-NETBSD:#define __CHAR16_TYPE__ unsigned short // X86_64-NETBSD:#define __CHAR32_TYPE__ unsigned int @@ -7477,7 +8061,7 @@ // X86_64-NETBSD:#define __DBL_MIN_10_EXP__ (-307) // X86_64-NETBSD:#define __DBL_MIN_EXP__ (-1021) // X86_64-NETBSD:#define __DBL_MIN__ 2.2250738585072014e-308 -// X86_64-NETBSD:#define __DECIMAL_DIG__ 21 +// X86_64-NETBSD:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ // X86_64-NETBSD:#define __FLT_DENORM_MIN__ 1.40129846e-45F // X86_64-NETBSD:#define __FLT_DIG__ 6 // X86_64-NETBSD:#define __FLT_EPSILON__ 1.19209290e-7F @@ -7649,6 +8233,119 @@ // X86_64-NETBSD:#define __x86_64 1 // X86_64-NETBSD:#define __x86_64__ 1 // +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-scei-ps4 < /dev/null | FileCheck -check-prefix PS4 %s +// +// PS4:#define _LP64 1 +// PS4:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +// PS4:#define __CHAR16_TYPE__ unsigned short +// PS4:#define __CHAR32_TYPE__ unsigned int +// PS4:#define __CHAR_BIT__ 8 +// PS4:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +// PS4:#define __DBL_DIG__ 15 +// PS4:#define __DBL_EPSILON__ 2.2204460492503131e-16 +// PS4:#define __DBL_HAS_DENORM__ 1 +// PS4:#define __DBL_HAS_INFINITY__ 1 +// PS4:#define __DBL_HAS_QUIET_NAN__ 1 +// PS4:#define __DBL_MANT_DIG__ 53 +// PS4:#define __DBL_MAX_10_EXP__ 308 +// PS4:#define __DBL_MAX_EXP__ 1024 +// PS4:#define __DBL_MAX__ 1.7976931348623157e+308 +// PS4:#define __DBL_MIN_10_EXP__ (-307) +// PS4:#define __DBL_MIN_EXP__ (-1021) +// PS4:#define __DBL_MIN__ 2.2250738585072014e-308 +// PS4:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ +// PS4:#define __ELF__ 1 +// PS4:#define __FLT_DENORM_MIN__ 1.40129846e-45F +// PS4:#define __FLT_DIG__ 6 +// PS4:#define __FLT_EPSILON__ 1.19209290e-7F +// PS4:#define __FLT_EVAL_METHOD__ 0 +// PS4:#define __FLT_HAS_DENORM__ 1 +// PS4:#define __FLT_HAS_INFINITY__ 1 +// PS4:#define __FLT_HAS_QUIET_NAN__ 1 +// PS4:#define __FLT_MANT_DIG__ 24 +// PS4:#define __FLT_MAX_10_EXP__ 38 +// PS4:#define __FLT_MAX_EXP__ 128 +// PS4:#define __FLT_MAX__ 3.40282347e+38F +// PS4:#define __FLT_MIN_10_EXP__ (-37) +// PS4:#define __FLT_MIN_EXP__ (-125) +// PS4:#define __FLT_MIN__ 1.17549435e-38F +// PS4:#define __FLT_RADIX__ 2 +// PS4:#define __FreeBSD__ 9 +// PS4:#define __FreeBSD_cc_version 900001 +// PS4:#define __INT16_TYPE__ short +// PS4:#define __INT32_TYPE__ int +// PS4:#define __INT64_C_SUFFIX__ L +// PS4:#define __INT64_TYPE__ long int +// PS4:#define __INT8_TYPE__ signed char +// PS4:#define __INTMAX_MAX__ 9223372036854775807L +// PS4:#define __INTMAX_TYPE__ long int +// PS4:#define __INTMAX_WIDTH__ 64 +// PS4:#define __INTPTR_TYPE__ long int +// PS4:#define __INTPTR_WIDTH__ 64 +// PS4:#define __INT_MAX__ 2147483647 +// PS4:#define __KPRINTF_ATTRIBUTE__ 1 +// PS4:#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L +// PS4:#define __LDBL_DIG__ 18 +// PS4:#define __LDBL_EPSILON__ 1.08420217248550443401e-19L +// PS4:#define __LDBL_HAS_DENORM__ 1 +// PS4:#define __LDBL_HAS_INFINITY__ 1 +// PS4:#define __LDBL_HAS_QUIET_NAN__ 1 +// PS4:#define __LDBL_MANT_DIG__ 64 +// PS4:#define __LDBL_MAX_10_EXP__ 4932 +// PS4:#define __LDBL_MAX_EXP__ 16384 +// PS4:#define __LDBL_MAX__ 1.18973149535723176502e+4932L +// PS4:#define __LDBL_MIN_10_EXP__ (-4931) +// PS4:#define __LDBL_MIN_EXP__ (-16381) +// PS4:#define __LDBL_MIN__ 3.36210314311209350626e-4932L +// PS4:#define __LITTLE_ENDIAN__ 1 +// PS4:#define __LONG_LONG_MAX__ 9223372036854775807LL +// PS4:#define __LONG_MAX__ 9223372036854775807L +// PS4:#define __LP64__ 1 +// PS4:#define __MMX__ 1 +// PS4:#define __NO_MATH_INLINES 1 +// PS4:#define __POINTER_WIDTH__ 64 +// PS4:#define __PS4__ 1 +// PS4:#define __PTRDIFF_MAX__ 9223372036854775807L +// PS4:#define __PTRDIFF_TYPE__ long int +// PS4:#define __PTRDIFF_WIDTH__ 64 +// PS4:#define __REGISTER_PREFIX__ +// PS4:#define __SCHAR_MAX__ 127 +// PS4:#define __SHRT_MAX__ 32767 +// PS4:#define __SIG_ATOMIC_MAX__ 2147483647 +// PS4:#define __SIG_ATOMIC_WIDTH__ 32 +// PS4:#define __SIZEOF_DOUBLE__ 8 +// PS4:#define __SIZEOF_FLOAT__ 4 +// PS4:#define __SIZEOF_INT__ 4 +// PS4:#define __SIZEOF_LONG_DOUBLE__ 16 +// PS4:#define __SIZEOF_LONG_LONG__ 8 +// PS4:#define __SIZEOF_LONG__ 8 +// PS4:#define __SIZEOF_POINTER__ 8 +// PS4:#define __SIZEOF_PTRDIFF_T__ 8 +// PS4:#define __SIZEOF_SHORT__ 2 +// PS4:#define __SIZEOF_SIZE_T__ 8 +// PS4:#define __SIZEOF_WCHAR_T__ 2 +// PS4:#define __SIZEOF_WINT_T__ 4 +// PS4:#define __SIZE_TYPE__ long unsigned int +// PS4:#define __SIZE_WIDTH__ 64 +// PS4:#define __SSE2_MATH__ 1 +// PS4:#define __SSE2__ 1 +// PS4:#define __SSE_MATH__ 1 +// PS4:#define __SSE__ 1 +// PS4:#define __UINTMAX_TYPE__ long unsigned int +// PS4:#define __USER_LABEL_PREFIX__ +// PS4:#define __WCHAR_MAX__ 65535 +// PS4:#define __WCHAR_TYPE__ unsigned short +// PS4:#define __WCHAR_UNSIGNED__ 1 +// PS4:#define __WCHAR_WIDTH__ 16 +// PS4:#define __WINT_TYPE__ int +// PS4:#define __WINT_WIDTH__ 32 +// PS4:#define __amd64 1 +// PS4:#define __amd64__ 1 +// PS4:#define __unix 1 +// PS4:#define __unix__ 1 +// PS4:#define __x86_64 1 +// PS4:#define __x86_64__ 1 +// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=sparc64-none-none < /dev/null | FileCheck -check-prefix SPARCV9 %s // SPARCV9:#define __INT64_TYPE__ long int // SPARCV9:#define __INTMAX_C_SUFFIX__ L diff --git a/test/Preprocessor/macro_paste_msextensions.c b/test/Preprocessor/macro_paste_msextensions.c index afdcdbd493f0..aa5f41f9ee4f 100644 --- a/test/Preprocessor/macro_paste_msextensions.c +++ b/test/Preprocessor/macro_paste_msextensions.c @@ -32,3 +32,10 @@ nested(baz) rise of the dead tokens bar(q) // CHECK: abc(baz(q)) + + +#define str(x) #x +#define collapse_spaces(a, b, c, d) str(a ## - ## b ## - ## c ## d) +collapse_spaces(1a, b2, 3c, d4) + +// CHECK: "1a-b2-3cd4" diff --git a/test/Preprocessor/pr19649-signed-wchar_t.c b/test/Preprocessor/pr19649-signed-wchar_t.c new file mode 100644 index 000000000000..f76f43163cbc --- /dev/null +++ b/test/Preprocessor/pr19649-signed-wchar_t.c @@ -0,0 +1,6 @@ +// RUN: %clang_cc1 -triple powerpc64-unknown-linux-gnu -E -x c %s +// RUN: %clang_cc1 -triple powerpc64-unknown-linux-gnu -E -fno-signed-char -x c %s + +#if (L'\0' - 1 > 0) +# error "Unexpected expression evaluation result" +#endif diff --git a/test/Preprocessor/pr19649-unsigned-wchar_t.c b/test/Preprocessor/pr19649-unsigned-wchar_t.c new file mode 100644 index 000000000000..4bbe1b57ce46 --- /dev/null +++ b/test/Preprocessor/pr19649-unsigned-wchar_t.c @@ -0,0 +1,6 @@ +// RUN: %clang_cc1 -triple i386-pc-cygwin -E -x c %s +// RUN: %clang_cc1 -triple powerpc64-unknown-linux-gnu -E -fshort-wchar -x c %s + +#if (L'\0' - 1 < 0) +# error "Unexpected expression evaluation result" +#endif diff --git a/test/Preprocessor/pragma_microsoft.c b/test/Preprocessor/pragma_microsoft.c index e30069c1c5e7..b6921fa42fc7 100644 --- a/test/Preprocessor/pragma_microsoft.c +++ b/test/Preprocessor/pragma_microsoft.c @@ -1,4 +1,6 @@ // RUN: %clang_cc1 %s -fsyntax-only -verify -fms-extensions +// RUN: not %clang_cc1 %s -fms-extensions -E | FileCheck %s +// REQUIRES: non-ps4-sdk // rdar://6495941 @@ -6,27 +8,41 @@ #define BAR "2" #pragma comment(linker,"foo=" FOO) // expected-error {{pragma comment requires parenthesized identifier and optional string}} +// CHECK: #pragma comment(linker,"foo=" 1) #pragma comment(linker," bar=" BAR) +// CHECK: #pragma comment(linker," bar=" "2") #pragma comment( user, "Compiled on " __DATE__ " at " __TIME__ ) +// CHECK: {{#pragma comment\( user, \"Compiled on \".*\" at \".*\" \)}} #pragma comment(foo) // expected-error {{unknown kind of pragma comment}} +// CHECK: #pragma comment(foo) #pragma comment(compiler,) // expected-error {{expected string literal in pragma comment}} +// CHECK: #pragma comment(compiler,) #define foo compiler #pragma comment(foo) // macro expand kind. +// CHECK: #pragma comment(compiler) #pragma comment(foo) x // expected-error {{pragma comment requires}} +// CHECK: #pragma comment(compiler) x #pragma comment(user, "foo\abar\nbaz\tsome thing") +// CHECK: #pragma comment(user, "foo\abar\nbaz\tsome thing") #pragma detect_mismatch("test", "1") +// CHECK: #pragma detect_mismatch("test", "1") #pragma detect_mismatch() // expected-error {{expected string literal in pragma detect_mismatch}} +// CHECK: #pragma detect_mismatch() #pragma detect_mismatch("test") // expected-error {{pragma detect_mismatch is malformed; it requires two comma-separated string literals}} +// CHECK: #pragma detect_mismatch("test") #pragma detect_mismatch("test", 1) // expected-error {{expected string literal in pragma detect_mismatch}} +// CHECK: #pragma detect_mismatch("test", 1) #pragma detect_mismatch("test", BAR) +// CHECK: #pragma detect_mismatch("test", "2") // __pragma -__pragma(comment(linker," bar=" BAR)) +__pragma(comment(linker," bar=" BAR)) +// CHECK: #pragma comment(linker," bar=" "2") #define MACRO_WITH__PRAGMA { \ __pragma(warning(push)); \ @@ -38,11 +54,16 @@ __pragma(comment(linker," bar=" BAR)) void f() { __pragma() +// CHECK: #pragma // If we ever actually *support* __pragma(warning(disable: x)), // this warning should go away. MACRO_WITH__PRAGMA // expected-warning {{lower precedence}} \ // expected-note 2 {{place parentheses}} +// CHECK: #pragma warning(push) +// CHECK: #pragma warning(disable: 10000) +// CHECK: ; 1 + (2 > 3) ? 4 : 5; +// CHECK: #pragma warning(pop) } @@ -90,26 +111,49 @@ void g() {} // Test that we ignore pragma warning. #pragma warning(push) +// CHECK: #pragma warning(push) #pragma warning(push, 1) +// CHECK: #pragma warning(push, 1) #pragma warning(disable : 4705) +// CHECK: #pragma warning(disable: 4705) #pragma warning(disable : 123 456 789 ; error : 321) +// CHECK: #pragma warning(disable: 123 456 789) +// CHECK: #pragma warning(error: 321) #pragma warning(once : 321) +// CHECK: #pragma warning(once: 321) #pragma warning(suppress : 321) +// CHECK: #pragma warning(suppress: 321) #pragma warning(default : 321) +// CHECK: #pragma warning(default: 321) #pragma warning(pop) +// CHECK: #pragma warning(pop) +#pragma warning(1: 123) +// CHECK: #pragma warning(1: 123) +#pragma warning(2: 234 567) +// CHECK: #pragma warning(2: 234 567) +#pragma warning(3: 123; 4: 678) +// CHECK: #pragma warning(3: 123) +// CHECK: #pragma warning(4: 678) +#pragma warning(5: 123) // expected-warning {{expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4}} #pragma warning(push, 0) +// CHECK: #pragma warning(push, 0) // FIXME: We could probably support pushing warning level 0. #pragma warning(pop) +// CHECK: #pragma warning(pop) #pragma warning // expected-warning {{expected '('}} #pragma warning( // expected-warning {{expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4}} #pragma warning() // expected-warning {{expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4}} #pragma warning(push 4) // expected-warning {{expected ')'}} +// CHECK: #pragma warning(push) #pragma warning(push // expected-warning {{expected ')'}} +// CHECK: #pragma warning(push) #pragma warning(push, 5) // expected-warning {{requires a level between 0 and 4}} #pragma warning(pop, 1) // expected-warning {{expected ')'}} +// CHECK: #pragma warning(pop) #pragma warning(push, 1) asdf // expected-warning {{extra tokens at end of #pragma warning directive}} +// CHECK: #pragma warning(push, 1) #pragma warning(disable 4705) // expected-warning {{expected ':'}} #pragma warning(disable : 0) // expected-warning {{expected a warning number}} #pragma warning(default 321) // expected-warning {{expected ':'}} diff --git a/test/Preprocessor/pragma_ps4.c b/test/Preprocessor/pragma_ps4.c new file mode 100644 index 000000000000..63651b6a96fb --- /dev/null +++ b/test/Preprocessor/pragma_ps4.c @@ -0,0 +1,27 @@ +// RUN: %clang_cc1 %s -triple x86_64-scei-ps4 -fsyntax-only -verify -fms-extensions + +// On PS4, issue a diagnostic that pragma comments are ignored except: +// #pragma comment lib + +#pragma comment(lib) +#pragma comment(lib,"foo") +__pragma(comment(lib, "bar")) + +#pragma comment(linker) // expected-warning {{'#pragma comment linker' ignored}} +#pragma comment(linker,"foo") // expected-warning {{'#pragma comment linker' ignored}} +__pragma(comment(linker, " bar=" "2")) // expected-warning {{'#pragma comment linker' ignored}} + +#pragma comment(user) // expected-warning {{'#pragma comment user' ignored}} +#pragma comment(user, "Compiled on " __DATE__ " at " __TIME__ ) // expected-warning {{'#pragma comment user' ignored}} +__pragma(comment(user, "foo")) // expected-warning {{'#pragma comment user' ignored}} + +#pragma comment(compiler) // expected-warning {{'#pragma comment compiler' ignored}} +#pragma comment(compiler, "foo") // expected-warning {{'#pragma comment compiler' ignored}} +__pragma(comment(compiler, "foo")) // expected-warning {{'#pragma comment compiler' ignored}} + +#pragma comment(exestr) // expected-warning {{'#pragma comment exestr' ignored}} +#pragma comment(exestr, "foo") // expected-warning {{'#pragma comment exestr' ignored}} +__pragma(comment(exestr, "foo")) // expected-warning {{'#pragma comment exestr' ignored}} + +#pragma comment(foo) // expected-error {{unknown kind of pragma comment}} +__pragma(comment(foo)) // expected-error {{unknown kind of pragma comment}} diff --git a/test/Preprocessor/predefined-arch-macros.c b/test/Preprocessor/predefined-arch-macros.c index 5bdbdbc622b0..5126ef3d94cf 100644 --- a/test/Preprocessor/predefined-arch-macros.c +++ b/test/Preprocessor/predefined-arch-macros.c @@ -1669,3 +1669,82 @@ // // CHECK_PPC_POWER8_VECTOR_M64: #define __POWER8_VECTOR__ // +// RUN: %clang -mcrypto -E -dM %s -o - 2>&1 \ +// RUN: -target powerpc64-unknown-linux \ +// RUN: | FileCheck %s -check-prefix=CHECK_PPC_CRYPTO_M64 +// +// CHECK_PPC_CRYPTO_M64: #define __CRYPTO__ +// +// RUN: %clang -mcpu=pwr8 -E -dM %s -o - 2>&1 \ +// RUN: -target powerpc64-unknown-unknown \ +// RUN: | FileCheck %s -check-prefix=CHECK_PPC_GCC_ATOMICS +// RUN: %clang -E -dM %s -o - 2>&1 \ +// RUN: -target powerpc64le-unknown-linux \ +// RUN: | FileCheck %s -check-prefix=CHECK_PPC_GCC_ATOMICS +// +// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 +// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 +// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 +// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 +// +// End PPC/GCC/Linux tests ------------------ + +// Begin Sparc/GCC/Linux tests ---------------- +// +// RUN: %clang -E -dM %s -o - 2>&1 \ +// RUN: -target sparc-unknown-linux \ +// RUN: | FileCheck %s -check-prefix=CHECK_SPARC +// +// CHECK_SPARC: #define __BIG_ENDIAN__ 1 +// CHECK_SPARC: #define __sparc 1 +// CHECK_SPARC: #define __sparc__ 1 +// CHECK_SPARC: #define __sparcv8 1 + +// +// RUN: %clang -E -dM %s -o - 2>&1 \ +// RUN: -target sparcel-unknown-linux \ +// RUN: | FileCheck %s -check-prefix=CHECK_SPARCEL +// +// CHECK_SPARCEL: #define __LITTLE_ENDIAN__ 1 +// CHECK_SPARCEL: #define __sparc 1 +// CHECK_SPARCEL: #define __sparc__ 1 +// CHECK_SPARCEL: #define __sparcv8 1 +// +// RUN: %clang -E -dM %s -o - 2>&1 \ +// RUN: -target sparcv9-unknown-linux \ +// RUN: | FileCheck %s -check-prefix=CHECK_SPARCV9 +// +// CHECK_SPARCV9: #define __BIG_ENDIAN__ 1 +// CHECK_SPARCV9: #define __sparc 1 +// CHECK_SPARCV9: #define __sparc64__ 1 +// CHECK_SPARCV9: #define __sparc__ 1 +// CHECK_SPARCV9: #define __sparc_v9__ 1 +// CHECK_SPARCV9: #define __sparcv9 1 +// CHECK_SPARCV9: #define __sparcv9__ 1 + +// Begin SystemZ/GCC/Linux tests ---------------- +// +// RUN: %clang -march=z10 -E -dM %s -o - 2>&1 \ +// RUN: -target s390x-unknown-linux \ +// RUN: | FileCheck %s -check-prefix=CHECK_SYSTEMZ_Z10 +// +// CHECK_SYSTEMZ_Z10: #define __LONG_DOUBLE_128__ 1 +// CHECK_SYSTEMZ_Z10: #define __s390__ 1 +// CHECK_SYSTEMZ_Z10: #define __s390x__ 1 +// CHECK_SYSTEMZ_Z10: #define __zarch__ 1 +// +// RUN: %clang -march=zEC12 -E -dM %s -o - 2>&1 \ +// RUN: -target s390x-unknown-linux \ +// RUN: | FileCheck %s -check-prefix=CHECK_SYSTEMZ_ZEC12 +// +// CHECK_SYSTEMZ_ZEC12: #define __HTM__ 1 +// CHECK_SYSTEMZ_ZEC12: #define __LONG_DOUBLE_128__ 1 +// CHECK_SYSTEMZ_ZEC12: #define __s390__ 1 +// CHECK_SYSTEMZ_ZEC12: #define __s390x__ 1 +// CHECK_SYSTEMZ_ZEC12: #define __zarch__ 1 +// +// RUN: %clang -mhtm -E -dM %s -o - 2>&1 \ +// RUN: -target s390x-unknown-linux \ +// RUN: | FileCheck %s -check-prefix=CHECK_SYSTEMZ_HTM +// +// CHECK_SYSTEMZ_HTM: #define __HTM__ 1 diff --git a/test/Preprocessor/stdint.c b/test/Preprocessor/stdint.c index 9bc1aa7cc5e2..28ccfef9f487 100644 --- a/test/Preprocessor/stdint.c +++ b/test/Preprocessor/stdint.c @@ -851,8 +851,8 @@ // // RUN: %clang_cc1 -E -ffreestanding -triple=s390x-none-none %s | FileCheck -check-prefix S390X %s // -// S390X:typedef long long int int64_t; -// S390X:typedef long long unsigned int uint64_t; +// S390X:typedef long int int64_t; +// S390X:typedef long unsigned int uint64_t; // S390X:typedef int64_t int_least64_t; // S390X:typedef uint64_t uint_least64_t; // S390X:typedef int64_t int_fast64_t; @@ -882,8 +882,8 @@ // S390X:typedef int64_t intptr_t; // S390X:typedef uint64_t uintptr_t; // -// S390X:typedef long long int intmax_t; -// S390X:typedef long long unsigned int uintmax_t; +// S390X:typedef long int intmax_t; +// S390X:typedef long unsigned int uintmax_t; // // S390X:INT8_MAX_ 127 // S390X:INT8_MIN_ (-127 -1) @@ -916,23 +916,23 @@ // S390X:UINT_FAST32_MAX_ 4294967295U // // S390X:INT64_MAX_ 9223372036854775807L -// S390X:INT64_MIN_ (-9223372036854775807LL -1) +// S390X:INT64_MIN_ (-9223372036854775807L -1) // S390X:UINT64_MAX_ 18446744073709551615UL -// S390X:INT_LEAST64_MIN_ (-9223372036854775807LL -1) +// S390X:INT_LEAST64_MIN_ (-9223372036854775807L -1) // S390X:INT_LEAST64_MAX_ 9223372036854775807L // S390X:UINT_LEAST64_MAX_ 18446744073709551615UL -// S390X:INT_FAST64_MIN_ (-9223372036854775807LL -1) +// S390X:INT_FAST64_MIN_ (-9223372036854775807L -1) // S390X:INT_FAST64_MAX_ 9223372036854775807L // S390X:UINT_FAST64_MAX_ 18446744073709551615UL // -// S390X:INTPTR_MIN_ (-9223372036854775807LL -1) +// S390X:INTPTR_MIN_ (-9223372036854775807L -1) // S390X:INTPTR_MAX_ 9223372036854775807L // S390X:UINTPTR_MAX_ 18446744073709551615UL -// S390X:PTRDIFF_MIN_ (-9223372036854775807LL -1) +// S390X:PTRDIFF_MIN_ (-9223372036854775807L -1) // S390X:PTRDIFF_MAX_ 9223372036854775807L // S390X:SIZE_MAX_ 18446744073709551615UL // -// S390X:INTMAX_MIN_ (-9223372036854775807LL -1) +// S390X:INTMAX_MIN_ (-9223372036854775807L -1) // S390X:INTMAX_MAX_ 9223372036854775807L // S390X:UINTMAX_MAX_ 18446744073709551615UL // diff --git a/test/Preprocessor/x86_target_features.c b/test/Preprocessor/x86_target_features.c index 806eeec961d6..ac9e7309f452 100644 --- a/test/Preprocessor/x86_target_features.c +++ b/test/Preprocessor/x86_target_features.c @@ -9,6 +9,10 @@ // SSE4: #define __SSE__ 1 // SSE4: #define __SSSE3__ 1 +// RUN: %clang -target i386-unknown-unknown -march=core2 -msse4.1 -mno-sse4 -x c -E -dM -o - %s | FileCheck --check-prefix=NOSSE4 %s + +// NOSSE4-NOT: #define __SSE4_1__ 1 + // RUN: %clang -target i386-unknown-unknown -march=core2 -msse4 -mno-sse2 -x c -E -dM -o - %s | FileCheck --check-prefix=SSE %s // SSE-NOT: #define __SSE2_MATH__ 1 |