1 | // This test verifies that the correct macros are predefined. |
2 | // |
3 | // RUN: %clang_cc1 %s -E -dM -triple i686-pc-win32 -fms-compatibility \ |
4 | // RUN: -o - | FileCheck -match-full-lines %s --check-prefix=CHECK-MS-STDINT |
5 | // CHECK-MS-STDINT:#define __INT16_MAX__ 32767 |
6 | // CHECK-MS-STDINT:#define __INT32_MAX__ 2147483647 |
7 | // CHECK-MS-STDINT:#define __INT64_MAX__ 9223372036854775807LL |
8 | // CHECK-MS-STDINT:#define __INT8_MAX__ 127 |
9 | // CHECK-MS-STDINT:#define __INTPTR_MAX__ 2147483647 |
10 | // CHECK-MS-STDINT:#define __INT_FAST16_MAX__ 32767 |
11 | // CHECK-MS-STDINT:#define __INT_FAST16_TYPE__ short |
12 | // CHECK-MS-STDINT:#define __INT_FAST32_MAX__ 2147483647 |
13 | // CHECK-MS-STDINT:#define __INT_FAST32_TYPE__ int |
14 | // CHECK-MS-STDINT:#define __INT_FAST64_MAX__ 9223372036854775807LL |
15 | // CHECK-MS-STDINT:#define __INT_FAST64_TYPE__ long long int |
16 | // CHECK-MS-STDINT:#define __INT_FAST8_MAX__ 127 |
17 | // CHECK-MS-STDINT:#define __INT_FAST8_TYPE__ signed char |
18 | // CHECK-MS-STDINT:#define __INT_LEAST16_MAX__ 32767 |
19 | // CHECK-MS-STDINT:#define __INT_LEAST16_TYPE__ short |
20 | // CHECK-MS-STDINT:#define __INT_LEAST32_MAX__ 2147483647 |
21 | // CHECK-MS-STDINT:#define __INT_LEAST32_TYPE__ int |
22 | // CHECK-MS-STDINT:#define __INT_LEAST64_MAX__ 9223372036854775807LL |
23 | // CHECK-MS-STDINT:#define __INT_LEAST64_TYPE__ long long int |
24 | // CHECK-MS-STDINT:#define __INT_LEAST8_MAX__ 127 |
25 | // CHECK-MS-STDINT:#define __INT_LEAST8_TYPE__ signed char |
26 | // CHECK-MS-STDINT-NOT:#define __UINT16_C_SUFFIX__ U |
27 | // CHECK-MS-STDINT:#define __UINT16_MAX__ 65535 |
28 | // CHECK-MS-STDINT:#define __UINT16_TYPE__ unsigned short |
29 | // CHECK-MS-STDINT:#define __UINT32_C_SUFFIX__ U |
30 | // CHECK-MS-STDINT:#define __UINT32_MAX__ 4294967295U |
31 | // CHECK-MS-STDINT:#define __UINT32_TYPE__ unsigned int |
32 | // CHECK-MS-STDINT:#define __UINT64_C_SUFFIX__ ULL |
33 | // CHECK-MS-STDINT:#define __UINT64_MAX__ 18446744073709551615ULL |
34 | // CHECK-MS-STDINT:#define __UINT64_TYPE__ long long unsigned int |
35 | // CHECK-MS-STDINT-NOT:#define __UINT8_C_SUFFIX__ U |
36 | // CHECK-MS-STDINT:#define __UINT8_MAX__ 255 |
37 | // CHECK-MS-STDINT:#define __UINT8_TYPE__ unsigned char |
38 | // CHECK-MS-STDINT:#define __UINTMAX_MAX__ 18446744073709551615ULL |
39 | // CHECK-MS-STDINT:#define __UINTPTR_MAX__ 4294967295U |
40 | // CHECK-MS-STDINT:#define __UINTPTR_TYPE__ unsigned int |
41 | // CHECK-MS-STDINT:#define __UINTPTR_WIDTH__ 32 |
42 | // CHECK-MS-STDINT:#define __UINT_FAST16_MAX__ 65535 |
43 | // CHECK-MS-STDINT:#define __UINT_FAST16_TYPE__ unsigned short |
44 | // CHECK-MS-STDINT:#define __UINT_FAST32_MAX__ 4294967295U |
45 | // CHECK-MS-STDINT:#define __UINT_FAST32_TYPE__ unsigned int |
46 | // CHECK-MS-STDINT:#define __UINT_FAST64_MAX__ 18446744073709551615ULL |
47 | // CHECK-MS-STDINT:#define __UINT_FAST64_TYPE__ long long unsigned int |
48 | // CHECK-MS-STDINT:#define __UINT_FAST8_MAX__ 255 |
49 | // CHECK-MS-STDINT:#define __UINT_FAST8_TYPE__ unsigned char |
50 | // CHECK-MS-STDINT:#define __UINT_LEAST16_MAX__ 65535 |
51 | // CHECK-MS-STDINT:#define __UINT_LEAST16_TYPE__ unsigned short |
52 | // CHECK-MS-STDINT:#define __UINT_LEAST32_MAX__ 4294967295U |
53 | // CHECK-MS-STDINT:#define __UINT_LEAST32_TYPE__ unsigned int |
54 | // CHECK-MS-STDINT:#define __UINT_LEAST64_MAX__ 18446744073709551615ULL |
55 | // CHECK-MS-STDINT:#define __UINT_LEAST64_TYPE__ long long unsigned int |
56 | // CHECK-MS-STDINT:#define __UINT_LEAST8_MAX__ 255 |
57 | // CHECK-MS-STDINT:#define __UINT_LEAST8_TYPE__ unsigned char |
58 | // |
59 | // RUN: %clang_cc1 %s -E -dM -ffast-math -o - \ |
60 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-FAST-MATH |
61 | // CHECK-FAST-MATH: #define __FAST_MATH__ 1 |
62 | // CHECK-FAST-MATH: #define __FINITE_MATH_ONLY__ 1 |
63 | // |
64 | // RUN: %clang_cc1 %s -E -dM -ffinite-math-only -o - \ |
65 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-FINITE-MATH-ONLY |
66 | // CHECK-FINITE-MATH-ONLY: #define __FINITE_MATH_ONLY__ 1 |
67 | // |
68 | // RUN: %clang %s -E -dM -fno-finite-math-only -o - \ |
69 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-NO-FINITE-MATH-ONLY |
70 | // CHECK-NO-FINITE-MATH-ONLY: #define __FINITE_MATH_ONLY__ 0 |
71 | // |
72 | // RUN: %clang_cc1 %s -E -dM -o - \ |
73 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-FINITE-MATH-FLAG-UNDEFINED |
74 | // CHECK-FINITE-MATH-FLAG-UNDEFINED: #define __FINITE_MATH_ONLY__ 0 |
75 | // |
76 | // RUN: %clang_cc1 %s -E -dM -o - -triple i686 -target-cpu i386 \ |
77 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SYNC_CAS_I386 |
78 | // CHECK-SYNC_CAS_I386-NOT: __GCC_HAVE_SYNC_COMPARE_AND_SWAP |
79 | // |
80 | // RUN: %clang_cc1 %s -E -dM -o - -triple i686 -target-cpu i486 \ |
81 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SYNC_CAS_I486 |
82 | // CHECK-SYNC_CAS_I486: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 |
83 | // CHECK-SYNC_CAS_I486: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 |
84 | // CHECK-SYNC_CAS_I486: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 |
85 | // CHECK-SYNC_CAS_I486-NOT: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 |
86 | // |
87 | // RUN: %clang_cc1 %s -E -dM -o - -triple i686 -target-cpu i586 \ |
88 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SYNC_CAS_I586 |
89 | // CHECK-SYNC_CAS_I586: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 |
90 | // CHECK-SYNC_CAS_I586: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 |
91 | // CHECK-SYNC_CAS_I586: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 |
92 | // CHECK-SYNC_CAS_I586: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 |
93 | // |
94 | // RUN: %clang_cc1 %s -E -dM -o - -triple armv6 -target-cpu arm1136j-s \ |
95 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SYNC_CAS_ARM |
96 | // CHECK-SYNC_CAS_ARM: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 |
97 | // CHECK-SYNC_CAS_ARM: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 |
98 | // CHECK-SYNC_CAS_ARM: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 |
99 | // CHECK-SYNC_CAS_ARM: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 |
100 | // |
101 | // RUN: %clang_cc1 %s -E -dM -o - -triple armv7 -target-cpu cortex-a8 \ |
102 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SYNC_CAS_ARMv7 |
103 | // CHECK-SYNC_CAS_ARMv7: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 |
104 | // CHECK-SYNC_CAS_ARMv7: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 |
105 | // CHECK-SYNC_CAS_ARMv7: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 |
106 | // CHECK-SYNC_CAS_ARMv7: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 |
107 | // |
108 | // RUN: %clang_cc1 %s -E -dM -o - -triple armv6 -target-cpu cortex-m0 \ |
109 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SYNC_CAS_ARMv6 |
110 | // CHECK-SYNC_CAS_ARMv6-NOT: __GCC_HAVE_SYNC_COMPARE_AND_SWAP |
111 | // |
112 | // RUN: %clang_cc1 %s -E -dM -o - -triple mips -target-cpu mips2 \ |
113 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SYNC_CAS_MIPS \ |
114 | // RUN: --check-prefix=CHECK-SYNC_CAS_MIPS32 |
115 | // RUN: %clang_cc1 %s -E -dM -o - -triple mips64 -target-cpu mips3 \ |
116 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SYNC_CAS_MIPS \ |
117 | // RUN: --check-prefix=CHECK-SYNC_CAS_MIPS64 |
118 | // CHECK-SYNC_CAS_MIPS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 |
119 | // CHECK-SYNC_CAS_MIPS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 |
120 | // CHECK-SYNC_CAS_MIPS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 |
121 | // CHECK-SYNC_CAS_MIPS32-NOT: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 |
122 | // CHECK-SYNC_CAS_MIPS64: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 |
123 | |
124 | // RUN: %clang_cc1 %s -E -dM -o - -x cl \ |
125 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-CL10 |
126 | // RUN: %clang_cc1 %s -E -dM -o - -x cl -cl-std=CL1.1 \ |
127 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-CL11 |
128 | // RUN: %clang_cc1 %s -E -dM -o - -x cl -cl-std=CL1.2 \ |
129 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-CL12 |
130 | // RUN: %clang_cc1 %s -E -dM -o - -x cl -cl-std=CL2.0 \ |
131 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-CL20 |
132 | // RUN: %clang_cc1 %s -E -dM -o - -x cl -cl-fast-relaxed-math \ |
133 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-FRM |
134 | // RUN: %clang_cc1 %s -E -dM -o - -x cl -cl-std=c++ \ |
135 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-CLCPP10 |
136 | // CHECK-CL10: #define CL_VERSION_1_0 100 |
137 | // CHECK-CL10: #define CL_VERSION_1_1 110 |
138 | // CHECK-CL10: #define CL_VERSION_1_2 120 |
139 | // CHECK-CL10: #define CL_VERSION_2_0 200 |
140 | // CHECK-CL10: #define __OPENCL_C_VERSION__ 100 |
141 | // CHECK-CL10-NOT: #define __FAST_RELAXED_MATH__ 1 |
142 | // CHECK-CL11: #define CL_VERSION_1_0 100 |
143 | // CHECK-CL11: #define CL_VERSION_1_1 110 |
144 | // CHECK-CL11: #define CL_VERSION_1_2 120 |
145 | // CHECK-CL11: #define CL_VERSION_2_0 200 |
146 | // CHECK-CL11: #define __OPENCL_C_VERSION__ 110 |
147 | // CHECK-CL11-NOT: #define __FAST_RELAXED_MATH__ 1 |
148 | // CHECK-CL12: #define CL_VERSION_1_0 100 |
149 | // CHECK-CL12: #define CL_VERSION_1_1 110 |
150 | // CHECK-CL12: #define CL_VERSION_1_2 120 |
151 | // CHECK-CL12: #define CL_VERSION_2_0 200 |
152 | // CHECK-CL12: #define __OPENCL_C_VERSION__ 120 |
153 | // CHECK-CL12-NOT: #define __FAST_RELAXED_MATH__ 1 |
154 | // CHECK-CL20: #define CL_VERSION_1_0 100 |
155 | // CHECK-CL20: #define CL_VERSION_1_1 110 |
156 | // CHECK-CL20: #define CL_VERSION_1_2 120 |
157 | // CHECK-CL20: #define CL_VERSION_2_0 200 |
158 | // CHECK-CL20: #define __OPENCL_C_VERSION__ 200 |
159 | // CHECK-CL20-NOT: #define __FAST_RELAXED_MATH__ 1 |
160 | // CHECK-FRM: #define __FAST_RELAXED_MATH__ 1 |
161 | // CHECK-CLCPP10: #define __CL_CPP_VERSION_1_0__ 100 |
162 | // CHECK-CLCPP10: #define __OPENCL_CPP_VERSION__ 100 |
163 | // CHECK-CLCPP10-NOT: #define __FAST_RELAXED_MATH__ 1 |
164 | // CHECK-CLCPP10-NOT: #define __ENDIAN_LITTLE__ 1 |
165 | |
166 | // RUN: %clang_cc1 %s -E -dM -o - -x cl \ |
167 | // RUN: | FileCheck %s --check-prefix=MSCOPE |
168 | // MSCOPE:#define __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES 3 |
169 | // MSCOPE:#define __OPENCL_MEMORY_SCOPE_DEVICE 2 |
170 | // MSCOPE:#define __OPENCL_MEMORY_SCOPE_SUB_GROUP 4 |
171 | // MSCOPE:#define __OPENCL_MEMORY_SCOPE_WORK_GROUP 1 |
172 | // MSCOPE:#define __OPENCL_MEMORY_SCOPE_WORK_ITEM 0 |
173 | |
174 | // RUN: %clang_cc1 %s -E -dM -o - -x cl -triple spir-unknown-unknown \ |
175 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SPIR |
176 | // CHECK-SPIR: #define __IMAGE_SUPPORT__ 1 |
177 | |
178 | // RUN: %clang_cc1 %s -E -dM -o - -x hip -triple amdgcn-amd-amdhsa \ |
179 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-HIP |
180 | // CHECK-HIP-NOT: #define __CUDA_ARCH__ |
181 | // CHECK-HIP: #define __HIPCC__ 1 |
182 | // CHECK-HIP-NOT: #define __HIP_DEVICE_COMPILE__ 1 |
183 | // CHECK-HIP: #define __HIP__ 1 |
184 | |
185 | // RUN: %clang_cc1 %s -E -dM -o - -x hip -triple amdgcn-amd-amdhsa \ |
186 | // RUN: -fcuda-is-device \ |
187 | // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-HIP-DEV |
188 | // CHECK-HIP-DEV-NOT: #define __CUDA_ARCH__ |
189 | // CHECK-HIP-DEV: #define __HIPCC__ 1 |
190 | // CHECK-HIP-DEV: #define __HIP_DEVICE_COMPILE__ 1 |
191 | // CHECK-HIP-DEV: #define __HIP__ 1 |
192 | |