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