1f4a2713aSLionel Sambuc // This test verifies that the correct macros are predefined. 2f4a2713aSLionel Sambuc // 3f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -triple i686-pc-win32 -fms-extensions -fms-compatibility \ 4*0a6a1f1dSLionel Sambuc // RUN: -fms-compatibility-version=13.00 -o - | FileCheck %s --check-prefix=CHECK-MS 5f4a2713aSLionel Sambuc // CHECK-MS: #define _INTEGRAL_MAX_BITS 64 6f4a2713aSLionel Sambuc // CHECK-MS: #define _MSC_EXTENSIONS 1 7f4a2713aSLionel Sambuc // CHECK-MS: #define _MSC_VER 1300 8f4a2713aSLionel Sambuc // CHECK-MS: #define _M_IX86 600 9f4a2713aSLionel Sambuc // CHECK-MS: #define _M_IX86_FP 10f4a2713aSLionel Sambuc // CHECK-MS: #define _WIN32 1 11*0a6a1f1dSLionel Sambuc // CHECK-MS-NOT: #define __STRICT_ANSI__ 12*0a6a1f1dSLionel Sambuc // CHECK-MS-NOT: GCC 13*0a6a1f1dSLionel Sambuc // CHECK-MS-NOT: GNU 14*0a6a1f1dSLionel Sambuc // CHECK-MS-NOT: GXX 15*0a6a1f1dSLionel Sambuc // 16*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -triple x86_64-pc-win32 -fms-extensions -fms-compatibility \ 17*0a6a1f1dSLionel Sambuc // RUN: -fms-compatibility-version=13.00 -o - | FileCheck %s --check-prefix=CHECK-MS64 18*0a6a1f1dSLionel Sambuc // CHECK-MS64: #define _INTEGRAL_MAX_BITS 64 19*0a6a1f1dSLionel Sambuc // CHECK-MS64: #define _MSC_EXTENSIONS 1 20*0a6a1f1dSLionel Sambuc // CHECK-MS64: #define _MSC_VER 1300 21*0a6a1f1dSLionel Sambuc // CHECK-MS64: #define _M_AMD64 1 22*0a6a1f1dSLionel Sambuc // CHECK-MS64: #define _M_X64 1 23*0a6a1f1dSLionel Sambuc // CHECK-MS64: #define _WIN64 1 24*0a6a1f1dSLionel Sambuc // CHECK-MS64-NOT: #define __STRICT_ANSI__ 25*0a6a1f1dSLionel Sambuc // CHECK-MS64-NOT: GCC 26*0a6a1f1dSLionel Sambuc // CHECK-MS64-NOT: GNU 27*0a6a1f1dSLionel Sambuc // CHECK-MS64-NOT: GXX 28*0a6a1f1dSLionel Sambuc // 29*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -triple i686-pc-win32 -fms-compatibility \ 30*0a6a1f1dSLionel Sambuc // RUN: -o - | FileCheck %s --check-prefix=CHECK-MS-STDINT 31*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT16_MAX__ 32767 32*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT32_MAX__ 2147483647 33*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT64_MAX__ 9223372036854775807LL 34*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT8_MAX__ 127 35*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INTPTR_MAX__ 2147483647 36*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_FAST16_MAX__ 32767 37*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_FAST16_TYPE__ short 38*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_FAST32_MAX__ 2147483647 39*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_FAST32_TYPE__ int 40*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_FAST64_MAX__ 9223372036854775807LL 41*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_FAST64_TYPE__ long long int 42*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_FAST8_MAX__ 127 43*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_FAST8_TYPE__ signed char 44*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_LEAST16_MAX__ 32767 45*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_LEAST16_TYPE__ short 46*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_LEAST32_MAX__ 2147483647 47*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_LEAST32_TYPE__ int 48*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_LEAST64_MAX__ 9223372036854775807LL 49*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_LEAST64_TYPE__ long long int 50*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_LEAST8_MAX__ 127 51*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __INT_LEAST8_TYPE__ signed char 52*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT-NOT:#define __UINT16_C_SUFFIX__ U 53*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT16_MAX__ 65535 54*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT16_TYPE__ unsigned short 55*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT32_C_SUFFIX__ U 56*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT32_MAX__ 4294967295U 57*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT32_TYPE__ unsigned int 58*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT64_C_SUFFIX__ ULL 59*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT64_MAX__ 18446744073709551615ULL 60*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT64_TYPE__ long long unsigned int 61*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT-NOT:#define __UINT8_C_SUFFIX__ U 62*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT8_MAX__ 255 63*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT8_TYPE__ unsigned char 64*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINTMAX_MAX__ 18446744073709551615ULL 65*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINTPTR_MAX__ 4294967295U 66*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINTPTR_TYPE__ unsigned int 67*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINTPTR_WIDTH__ 32 68*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_FAST16_MAX__ 65535 69*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_FAST16_TYPE__ unsigned short 70*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_FAST32_MAX__ 4294967295U 71*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_FAST32_TYPE__ unsigned int 72*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_FAST64_MAX__ 18446744073709551615ULL 73*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_FAST64_TYPE__ long long unsigned int 74*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_FAST8_MAX__ 255 75*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_FAST8_TYPE__ unsigned char 76*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_LEAST16_MAX__ 65535 77*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_LEAST16_TYPE__ unsigned short 78*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_LEAST32_MAX__ 4294967295U 79*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_LEAST32_TYPE__ unsigned int 80*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_LEAST64_MAX__ 18446744073709551615ULL 81*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_LEAST64_TYPE__ long long unsigned int 82*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_LEAST8_MAX__ 255 83*0a6a1f1dSLionel Sambuc // CHECK-MS-STDINT:#define __UINT_LEAST8_TYPE__ unsigned char 84f4a2713aSLionel Sambuc // 85f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -ffast-math -o - \ 86f4a2713aSLionel Sambuc // RUN: | FileCheck %s --check-prefix=CHECK-FAST-MATH 87f4a2713aSLionel Sambuc // CHECK-FAST-MATH: #define __FAST_MATH__ 88f4a2713aSLionel Sambuc // CHECK-FAST-MATH: #define __FINITE_MATH_ONLY__ 1 89f4a2713aSLionel Sambuc // 90f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -ffinite-math-only -o - \ 91f4a2713aSLionel Sambuc // RUN: | FileCheck %s --check-prefix=CHECK-FINITE-MATH-ONLY 92f4a2713aSLionel Sambuc // CHECK-FINITE-MATH-ONLY: #define __FINITE_MATH_ONLY__ 1 93f4a2713aSLionel Sambuc // 94f4a2713aSLionel Sambuc // RUN: %clang %s -E -dM -fno-finite-math-only -o - \ 95f4a2713aSLionel Sambuc // RUN: | FileCheck %s --check-prefix=CHECK-NO-FINITE-MATH-ONLY 96f4a2713aSLionel Sambuc // CHECK-NO-FINITE-MATH-ONLY: #define __FINITE_MATH_ONLY__ 0 97f4a2713aSLionel Sambuc // 98f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -o - \ 99f4a2713aSLionel Sambuc // RUN: | FileCheck %s --check-prefix=CHECK-FINITE-MATH-FLAG-UNDEFINED 100f4a2713aSLionel Sambuc // CHECK-FINITE-MATH-FLAG-UNDEFINED: #define __FINITE_MATH_ONLY__ 0 101f4a2713aSLionel Sambuc // 102f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -o - -triple i686 -target-cpu i386 \ 103f4a2713aSLionel Sambuc // RUN: | FileCheck %s --check-prefix=CHECK-SYNC_CAS_I386 104f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_I386-NOT: __GCC_HAVE_SYNC_COMPARE_AND_SWAP 105f4a2713aSLionel Sambuc // 106f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -o - -triple i686 -target-cpu i486 \ 107f4a2713aSLionel Sambuc // RUN: | FileCheck %s --check-prefix=CHECK-SYNC_CAS_I486 108f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_I486: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 109f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_I486: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 110f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_I486: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 111f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_I486-NOT: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 112f4a2713aSLionel Sambuc // 113f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -o - -triple i686 -target-cpu i586 \ 114f4a2713aSLionel Sambuc // RUN: | FileCheck %s --check-prefix=CHECK-SYNC_CAS_I586 115f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_I586: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 116f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_I586: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 117f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_I586: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 118f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_I586: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 119f4a2713aSLionel Sambuc // 120f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -o - -triple armv6 -target-cpu arm1136j-s \ 121f4a2713aSLionel Sambuc // RUN: | FileCheck %s --check-prefix=CHECK-SYNC_CAS_ARM 122f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_ARM: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 123f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_ARM: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 124f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_ARM: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 125f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_ARM: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 126f4a2713aSLionel Sambuc // 127f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -o - -triple armv7 -target-cpu cortex-a8 \ 128f4a2713aSLionel Sambuc // RUN: | FileCheck %s --check-prefix=CHECK-SYNC_CAS_ARMv7 129f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_ARMv7: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 130f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_ARMv7: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 131f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_ARMv7: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 132f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_ARMv7: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 133f4a2713aSLionel Sambuc // 134f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -E -dM -o - -triple armv6 -target-cpu cortex-m0 \ 135f4a2713aSLionel Sambuc // RUN: | FileCheck %s --check-prefix=CHECK-SYNC_CAS_ARMv6 136f4a2713aSLionel Sambuc // CHECK-SYNC_CAS_ARMv6-NOT: __GCC_HAVE_SYNC_COMPARE_AND_SWAP 137