xref: /llvm-project/clang/test/Preprocessor/init.c (revision 33ad474c45e6d7a0de7bc75e15e27cf6cb9ff895)
1 // RUN: %clang_cc1 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix INTERFERENCE %s
2 //
3 // We purposefully do not test the values produced, only that the macros are
4 // predefined to some value.
5 // INTERFERENCE:#define __GCC_CONSTRUCTIVE_SIZE {{.+}}
6 // INTERFERENCE:#define __GCC_DESTRUCTIVE_SIZE {{.+}}
7 
8 // RUN: %clang_cc1 -E -dM -x assembler-with-cpp < /dev/null | FileCheck -match-full-lines -check-prefix ASM %s
9 //
10 // ASM:#define __ASSEMBLER__ 1
11 //
12 //
13 // RUN: %clang_cc1 -fblocks -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix BLOCKS %s
14 //
15 // BLOCKS:#define __BLOCKS__ 1
16 // BLOCKS:#define __block __attribute__((__blocks__(byref)))
17 //
18 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++26 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX26 %s
19 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++2c -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX26 %s
20 //
21 // CXX26:#define __GNUG__ 4
22 // CXX26:#define __GXX_EXPERIMENTAL_CXX0X__ 1
23 // CXX26:#define __GXX_RTTI 1
24 // CXX26:#define __GXX_WEAK__ 1
25 // CXX26:#define __cplusplus 202400L
26 // CXX26:#define __private_extern__ extern
27 //
28 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++23 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX2B %s
29 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++2b -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX2B %s
30 //
31 // CXX2B:#define __GNUG__ 4
32 // CXX2B:#define __GXX_EXPERIMENTAL_CXX0X__ 1
33 // CXX2B:#define __GXX_RTTI 1
34 // CXX2B:#define __GXX_WEAK__ 1
35 // CXX2B:#define __cplusplus 202302L
36 // CXX2B:#define __private_extern__ extern
37 //
38 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++20 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX2A %s
39 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++2a -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX2A %s
40 //
41 // CXX2A:#define __GNUG__ 4
42 // CXX2A:#define __GXX_EXPERIMENTAL_CXX0X__ 1
43 // CXX2A:#define __GXX_RTTI 1
44 // CXX2A:#define __GXX_WEAK__ 1
45 // CXX2A:#define __cplusplus 202002L
46 // CXX2A:#define __private_extern__ extern
47 //
48 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++17 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX1Z %s
49 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++1z -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX1Z %s
50 //
51 // CXX1Z:#define __GNUG__ 4
52 // CXX1Z:#define __GXX_EXPERIMENTAL_CXX0X__ 1
53 // CXX1Z:#define __GXX_RTTI 1
54 // CXX1Z:#define __GXX_WEAK__ 1
55 // CXX1Z:#define __cplusplus 201703L
56 // CXX1Z:#define __private_extern__ extern
57 //
58 //
59 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++14 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX1Y %s
60 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++1y -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX1Y %s
61 //
62 // CXX1Y:#define __GNUG__ 4
63 // CXX1Y:#define __GXX_EXPERIMENTAL_CXX0X__ 1
64 // CXX1Y:#define __GXX_RTTI 1
65 // CXX1Y:#define __GXX_WEAK__ 1
66 // CXX1Y:#define __cplusplus 201402L
67 // CXX1Y:#define __private_extern__ extern
68 //
69 //
70 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++11 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX11 %s
71 //
72 // CXX11:#define __GNUG__ 4
73 // CXX11:#define __GXX_EXPERIMENTAL_CXX0X__ 1
74 // CXX11:#define __GXX_RTTI 1
75 // CXX11:#define __GXX_WEAK__ 1
76 // CXX11:#define __cplusplus 201103L
77 // CXX11:#define __private_extern__ extern
78 //
79 //
80 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++98 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX98 %s
81 //
82 // CXX98:#define __GNUG__ 4
83 // CXX98:#define __GXX_RTTI 1
84 // CXX98:#define __GXX_WEAK__ 1
85 // CXX98:#define __cplusplus 199711L
86 // CXX98:#define __private_extern__ extern
87 //
88 //
89 // RUN: %clang_cc1 -fdeprecated-macro -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix DEPRECATED %s
90 //
91 // DEPRECATED:#define __DEPRECATED 1
92 //
93 //
94 // RUN: %clang_cc1 -std=c99 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix C99 %s
95 //
96 // C99:#define __STDC_VERSION__ 199901L
97 // C99:#define __STRICT_ANSI__ 1
98 // C99-NOT: __GXX_EXPERIMENTAL_CXX0X__
99 // C99-NOT: __GXX_RTTI
100 // C99-NOT: __GXX_WEAK__
101 // C99-NOT: __cplusplus
102 //
103 // RUN: %clang_cc1 -std=c17 -triple=x86_64-pc-win32 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix C17-FMT %s
104 // RUN: %clang_cc1 -std=c23 -triple=x86_64-pc-win32 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix C23-FMT %s
105 //
106 // C17-FMT-NOT: __SIZE_FMTB__
107 // C17-FMT-NOT: __SIZE_FMTb__
108 // C17-FMT-NOT: __UINT8_FMTB__
109 // C17-FMT-NOT: __UINT8_FMTb__
110 // C17-FMT-NOT: __UINT16_FMTB__
111 // C17-FMT-NOT: __UINT16_FMTb__
112 // C17-FMT-NOT: __UINT32_FMTB__
113 // C17-FMT-NOT: __UINT32_FMTb__
114 // C17-FMT-NOT: __UINT64_FMTB__
115 // C17-FMT-NOT: __UINT64_FMTb__
116 // C17-FMT-NOT: __UINTMAX_FMTB__
117 // C17-FMT-NOT: __UINTMAX_FMTb__
118 // C17-FMT-NOT: __UINTPTR_FMTB__
119 // C17-FMT-NOT: __UINTPTR_FMTb__
120 // C17-FMT-NOT: __UINT_FAST16_FMTB__
121 // C17-FMT-NOT: __UINT_FAST16_FMTb__
122 // C17-FMT-NOT: __UINT_FAST32_FMTB__
123 // C17-FMT-NOT: __UINT_FAST32_FMTb__
124 // C17-FMT-NOT: __UINT_FAST64_FMTB__
125 // C17-FMT-NOT: __UINT_FAST64_FMTb__
126 // C17-FMT-NOT: __UINT_FAST8_FMTB__
127 // C17-FMT-NOT: __UINT_FAST8_FMTb__
128 // C17-FMT-NOT: __UINT_LEAST16_FMTB__
129 // C17-FMT-NOT: __UINT_LEAST16_FMTb__
130 // C17-FMT-NOT: __UINT_LEAST32_FMTB__
131 // C17-FMT-NOT: __UINT_LEAST32_FMTb__
132 // C17-FMT-NOT: __UINT_LEAST64_FMTB__
133 // C17-FMT-NOT: __UINT_LEAST64_FMTb__
134 // C17-FMT-NOT: __UINT_LEAST8_FMTB__
135 // C17-FMT-NOT: __UINT_LEAST8_FMTb__
136 // C23-FMT: #define __SIZE_FMTB__ "llB"
137 // C23-FMT: #define __SIZE_FMTb__ "llb"
138 // C23-FMT: #define __UINT16_FMTB__ "hB"
139 // C23-FMT: #define __UINT16_FMTb__ "hb"
140 // C23-FMT: #define __UINT32_FMTB__ "B"
141 // C23-FMT: #define __UINT32_FMTb__ "b"
142 // C23-FMT: #define __UINT64_FMTB__ "llB"
143 // C23-FMT: #define __UINT64_FMTb__ "llb"
144 // C23-FMT: #define __UINT8_FMTB__ "hhB"
145 // C23-FMT: #define __UINT8_FMTb__ "hhb"
146 // C23-FMT: #define __UINTMAX_FMTB__ "llB"
147 // C23-FMT: #define __UINTMAX_FMTb__ "llb"
148 // C23-FMT: #define __UINTPTR_FMTB__ "llB"
149 // C23-FMT: #define __UINTPTR_FMTb__ "llb"
150 // C23-FMT: #define __UINT_FAST16_FMTB__ "hB"
151 // C23-FMT: #define __UINT_FAST16_FMTb__ "hb"
152 // C23-FMT: #define __UINT_FAST32_FMTB__ "B"
153 // C23-FMT: #define __UINT_FAST32_FMTb__ "b"
154 // C23-FMT: #define __UINT_FAST64_FMTB__ "llB"
155 // C23-FMT: #define __UINT_FAST64_FMTb__ "llb"
156 // C23-FMT: #define __UINT_FAST8_FMTB__ "hhB"
157 // C23-FMT: #define __UINT_FAST8_FMTb__ "hhb"
158 // C23-FMT: #define __UINT_LEAST16_FMTB__ "hB"
159 // C23-FMT: #define __UINT_LEAST16_FMTb__ "hb"
160 // C23-FMT: #define __UINT_LEAST32_FMTB__ "B"
161 // C23-FMT: #define __UINT_LEAST32_FMTb__ "b"
162 // C23-FMT: #define __UINT_LEAST64_FMTB__ "llB"
163 // C23-FMT: #define __UINT_LEAST64_FMTb__ "llb"
164 // C23-FMT: #define __UINT_LEAST8_FMTB__ "hhB"
165 // C23-FMT: #define __UINT_LEAST8_FMTb__ "hhb"
166 //
167 //
168 // RUN: %clang_cc1 -std=c11 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix C11 %s
169 // RUN: %clang_cc1 -std=c1x -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix C11 %s
170 // RUN: %clang_cc1 -std=iso9899:2011 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix C11 %s
171 // RUN: %clang_cc1 -std=iso9899:201x -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix C11 %s
172 //
173 // C11:#define __STDC_UTF_16__ 1
174 // C11:#define __STDC_UTF_32__ 1
175 // C11:#define __STDC_VERSION__ 201112L
176 // C11:#define __STRICT_ANSI__ 1
177 // C11-NOT: __GXX_EXPERIMENTAL_CXX0X__
178 // C11-NOT: __GXX_RTTI
179 // C11-NOT: __GXX_WEAK__
180 // C11-NOT: __cplusplus
181 //
182 //
183 // RUN: %clang_cc1 -fgnuc-version=4.2.1 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix COMMON %s
184 //
185 // COMMON:#define __CONSTANT_CFSTRINGS__ 1
186 // COMMON:#define __FINITE_MATH_ONLY__ 0
187 // COMMON:#define __GNUC_MINOR__ {{.*}}
188 // COMMON:#define __GNUC_PATCHLEVEL__ {{.*}}
189 // COMMON:#define __GNUC_STDC_INLINE__ 1
190 // COMMON:#define __GNUC__ {{.*}}
191 // COMMON:#define __GXX_ABI_VERSION {{.*}}
192 // COMMON:#define __ORDER_BIG_ENDIAN__ 4321
193 // COMMON:#define __ORDER_LITTLE_ENDIAN__ 1234
194 // COMMON:#define __ORDER_PDP_ENDIAN__ 3412
195 // COMMON:#define __STDC_HOSTED__ 1
196 // COMMON:#define __STDC__ 1
197 // COMMON:#define __VERSION__ {{.*}}
198 // COMMON:#define __clang__ 1
199 // COMMON:#define __clang_literal_encoding__ {{.*}}
200 // COMMON:#define __clang_major__ {{[0-9]+}}
201 // COMMON:#define __clang_minor__ {{[0-9]+}}
202 // COMMON:#define __clang_patchlevel__ {{[0-9]+}}
203 // COMMON:#define __clang_version__ {{.*}}
204 // COMMON:#define __clang_wide_literal_encoding__ {{.*}}
205 // COMMON:#define __llvm__ 1
206 //
207 // RUN: %clang_cc1 -E -dM -triple=x86_64-pc-win32 < /dev/null | FileCheck -match-full-lines -check-prefix C-DEFAULT %s
208 // RUN: %clang_cc1 -E -dM -triple=x86_64-pc-linux-gnu < /dev/null | FileCheck -match-full-lines -check-prefix C-DEFAULT %s
209 // RUN: %clang_cc1 -E -dM -triple=x86_64-apple-darwin < /dev/null | FileCheck -match-full-lines -check-prefix C-DEFAULT %s
210 // RUN: %clang_cc1 -E -dM -triple=armv7a-apple-darwin < /dev/null | FileCheck -match-full-lines -check-prefix C-DEFAULT %s
211 //
212 // C-DEFAULT:#define __STDC_VERSION__ 201710L
213 //
214 // RUN: %clang_cc1 -ffreestanding -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix FREESTANDING %s
215 // FREESTANDING:#define __STDC_HOSTED__ 0
216 //
217 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++26 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX26 %s
218 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++2c -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX26 %s
219 //
220 // GXX26:#define __GNUG__ 4
221 // GXX26:#define __GXX_WEAK__ 1
222 // GXX26:#define __cplusplus 202400L
223 // GXX26:#define __private_extern__ extern
224 //
225 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++23 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX2B %s
226 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++2b -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX2B %s
227 //
228 // GXX2B:#define __GNUG__ 4
229 // GXX2B:#define __GXX_WEAK__ 1
230 // GXX2B:#define __cplusplus 202302L
231 // GXX2B:#define __private_extern__ extern
232 //
233 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++20 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX2A %s
234 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++2a -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX2A %s
235 //
236 // GXX2A:#define __GNUG__ 4
237 // GXX2A:#define __GXX_WEAK__ 1
238 // GXX2A:#define __cplusplus 202002L
239 // GXX2A:#define __private_extern__ extern
240 //
241 //
242 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++17 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX1Z %s
243 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++1z -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX1Z %s
244 //
245 // GXX1Z:#define __GNUG__ 4
246 // GXX1Z:#define __GXX_WEAK__ 1
247 // GXX1Z:#define __cplusplus 201703L
248 // GXX1Z:#define __private_extern__ extern
249 //
250 //
251 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++14 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX1Y %s
252 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++1y -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX1Y %s
253 //
254 // GXX1Y:#define __GNUG__ 4
255 // GXX1Y:#define __GXX_WEAK__ 1
256 // GXX1Y:#define __cplusplus 201402L
257 // GXX1Y:#define __private_extern__ extern
258 //
259 //
260 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++11 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX11 %s
261 //
262 // GXX11:#define __GNUG__ 4
263 // GXX11:#define __GXX_WEAK__ 1
264 // GXX11:#define __cplusplus 201103L
265 // GXX11:#define __private_extern__ extern
266 //
267 //
268 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++98 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX98 %s
269 //
270 // GXX98:#define __GNUG__ 4
271 // GXX98:#define __GXX_WEAK__ 1
272 // GXX98:#define __cplusplus 199711L
273 // GXX98:#define __private_extern__ extern
274 //
275 //
276 // RUN: %clang_cc1 -std=iso9899:199409 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix C94 %s
277 //
278 // C94:#define __STDC_VERSION__ 199409L
279 //
280 //
281 // RUN: %clang_cc1 -fms-extensions -triple i686-pc-win32 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix MSEXT %s
282 //
283 // MSEXT-NOT:#define __STDC__
284 // MSEXT:#define _INTEGRAL_MAX_BITS 64
285 // MSEXT-NOT:#define _NATIVE_WCHAR_T_DEFINED 1
286 // MSEXT-NOT:#define _WCHAR_T_DEFINED 1
287 // MSEXT:#define _MSVC_EXECUTION_CHARACTER_SET 65001
288 // MSEXT:#define __STDC_NO_THREADS__ 1
289 //
290 //
291 // RUN: %clang_cc1 -x c++ -fms-extensions -triple i686-pc-win32 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix MSEXT-CXX %s
292 //
293 // MSEXT-CXX:#define _NATIVE_WCHAR_T_DEFINED 1
294 // MSEXT-CXX:#define _WCHAR_T_DEFINED 1
295 // MSEXT-CXX:#define __BOOL_DEFINED 1
296 //
297 //
298 // RUN: %clang_cc1 -x c++ -fno-wchar -fms-extensions -triple i686-pc-win32 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix MSEXT-CXX-NOWCHAR %s
299 //
300 // MSEXT-CXX-NOWCHAR-NOT:#define _NATIVE_WCHAR_T_DEFINED 1
301 // MSEXT-CXX-NOWCHAR-NOT:#define _WCHAR_T_DEFINED 1
302 // MSEXT-CXX-NOWCHAR:#define __BOOL_DEFINED 1
303 //
304 //
305 // RUN: %clang_cc1 -x objective-c -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix OBJC %s
306 // RUN: %clang_cc1 -x objective-c++ -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix OBJC %s
307 //
308 // OBJC:#define OBJC_NEW_PROPERTIES 1
309 // OBJC:#define __NEXT_RUNTIME__ 1
310 // OBJC:#define __OBJC__ 1
311 //
312 //
313 // RUN: %clang_cc1 -x objective-c -fobjc-gc -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix OBJCGC %s
314 //
315 // OBJCGC:#define __OBJC_GC__ 1
316 //
317 //
318 // RUN: %clang_cc1 -x objective-c -fobjc-exceptions -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix NONFRAGILE %s
319 //
320 // NONFRAGILE:#define OBJC_ZEROCOST_EXCEPTIONS 1
321 // NONFRAGILE:#define __OBJC2__ 1
322 //
323 //
324 // RUN: %clang_cc1 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix O0 %s
325 //
326 // O0:#define __NO_INLINE__ 1
327 // O0-NOT:#define __OPTIMIZE_SIZE__
328 // O0-NOT:#define __OPTIMIZE__
329 //
330 //
331 // RUN: %clang_cc1 -fno-inline -O3 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix NO_INLINE %s
332 //
333 // NO_INLINE:#define __NO_INLINE__ 1
334 // NO_INLINE-NOT:#define __OPTIMIZE_SIZE__
335 // NO_INLINE:#define __OPTIMIZE__ 1
336 //
337 //
338 // RUN: %clang_cc1 -O1 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix O1 %s
339 //
340 // O1-NOT:#define __OPTIMIZE_SIZE__
341 // O1:#define __OPTIMIZE__ 1
342 //
343 //
344 // RUN: %clang_cc1 -Og -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix Og %s
345 //
346 // Og-NOT:#define __OPTIMIZE_SIZE__
347 // Og:#define __OPTIMIZE__ 1
348 //
349 //
350 // RUN: %clang_cc1 -Os -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix Os %s
351 //
352 // Os:#define __OPTIMIZE_SIZE__ 1
353 // Os:#define __OPTIMIZE__ 1
354 //
355 //
356 // RUN: %clang_cc1 -Oz -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix Oz %s
357 //
358 // Oz:#define __OPTIMIZE_SIZE__ 1
359 // Oz:#define __OPTIMIZE__ 1
360 //
361 //
362 // RUN: %clang_cc1 -fpascal-strings -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix PASCAL %s
363 //
364 // PASCAL:#define __PASCAL_STRINGS__ 1
365 //
366 //
367 // RUN: %clang_cc1 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix SCHAR %s
368 //
369 // SCHAR:#define __STDC__ 1
370 // SCHAR-NOT:#define __UNSIGNED_CHAR__
371 // SCHAR:#define __clang__ 1
372 //
373 // RUN: %clang_cc1 -E -dM -fwchar-type=short -fno-signed-wchar < /dev/null | FileCheck -match-full-lines -check-prefix SHORTWCHAR %s
374 // wchar_t is u16 for targeting Win32.
375 // RUN: %clang_cc1 -E -dM -fwchar-type=short -fno-signed-wchar -triple=x86_64-w64-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix SHORTWCHAR %s
376 // RUN: %clang_cc1 -dM -fwchar-type=short -fno-signed-wchar -triple=x86_64-unknown-windows-cygnus -E /dev/null | FileCheck -match-full-lines -check-prefix SHORTWCHAR %s
377 //
378 // SHORTWCHAR: #define __SIZEOF_WCHAR_T__ 2
379 // SHORTWCHAR: #define __WCHAR_MAX__ 65535
380 // SHORTWCHAR: #define __WCHAR_TYPE__ unsigned short
381 // SHORTWCHAR: #define __WCHAR_WIDTH__ 16
382 //
383 // RUN: %clang_cc1 -E -dM -fwchar-type=int -triple=i686-unknown-unknown < /dev/null | FileCheck -match-full-lines -check-prefix SHORTWCHAR2 %s
384 // RUN: %clang_cc1 -E -dM -fwchar-type=int -triple=x86_64-unknown-unknown < /dev/null | FileCheck -match-full-lines -check-prefix SHORTWCHAR2 %s
385 //
386 // SHORTWCHAR2: #define __SIZEOF_WCHAR_T__ 4
387 // SHORTWCHAR2: #define __WCHAR_WIDTH__ 32
388 // Other definitions vary from platform to platform
389 
390 //
391 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=msp430-none-none < /dev/null | FileCheck -match-full-lines -check-prefix MSP430 %s
392 // RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=msp430-none-none < /dev/null | FileCheck -match-full-lines -check-prefix MSP430 -check-prefix MSP430-CXX %s
393 //
394 // MSP430:#define MSP430 1
395 // MSP430-NOT:#define _LP64
396 // MSP430:#define __BIGGEST_ALIGNMENT__ 2
397 // MSP430:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
398 // MSP430:#define __CHAR16_TYPE__ unsigned short
399 // MSP430:#define __CHAR32_TYPE__ unsigned int
400 // MSP430:#define __CHAR_BIT__ 8
401 // MSP430:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
402 // MSP430:#define __DBL_DIG__ 15
403 // MSP430:#define __DBL_EPSILON__ 2.2204460492503131e-16
404 // MSP430:#define __DBL_HAS_DENORM__ 1
405 // MSP430:#define __DBL_HAS_INFINITY__ 1
406 // MSP430:#define __DBL_HAS_QUIET_NAN__ 1
407 // MSP430:#define __DBL_MANT_DIG__ 53
408 // MSP430:#define __DBL_MAX_10_EXP__ 308
409 // MSP430:#define __DBL_MAX_EXP__ 1024
410 // MSP430:#define __DBL_MAX__ 1.7976931348623157e+308
411 // MSP430:#define __DBL_MIN_10_EXP__ (-307)
412 // MSP430:#define __DBL_MIN_EXP__ (-1021)
413 // MSP430:#define __DBL_MIN__ 2.2250738585072014e-308
414 // MSP430:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
415 // MSP430:#define __FLT_DENORM_MIN__ 1.40129846e-45F
416 // MSP430:#define __FLT_DIG__ 6
417 // MSP430:#define __FLT_EPSILON__ 1.19209290e-7F
418 // MSP430:#define __FLT_HAS_DENORM__ 1
419 // MSP430:#define __FLT_HAS_INFINITY__ 1
420 // MSP430:#define __FLT_HAS_QUIET_NAN__ 1
421 // MSP430:#define __FLT_MANT_DIG__ 24
422 // MSP430:#define __FLT_MAX_10_EXP__ 38
423 // MSP430:#define __FLT_MAX_EXP__ 128
424 // MSP430:#define __FLT_MAX__ 3.40282347e+38F
425 // MSP430:#define __FLT_MIN_10_EXP__ (-37)
426 // MSP430:#define __FLT_MIN_EXP__ (-125)
427 // MSP430:#define __FLT_MIN__ 1.17549435e-38F
428 // MSP430:#define __FLT_RADIX__ 2
429 // MSP430:#define __INT16_C(c) c
430 // MSP430:#define __INT16_C_SUFFIX__
431 // MSP430:#define __INT16_FMTd__ "hd"
432 // MSP430:#define __INT16_FMTi__ "hi"
433 // MSP430:#define __INT16_MAX__ 32767
434 // MSP430:#define __INT16_TYPE__ short
435 // MSP430:#define __INT32_C(c) c##L
436 // MSP430:#define __INT32_C_SUFFIX__ L
437 // MSP430:#define __INT32_FMTd__ "ld"
438 // MSP430:#define __INT32_FMTi__ "li"
439 // MSP430:#define __INT32_MAX__ 2147483647L
440 // MSP430:#define __INT32_TYPE__ long int
441 // MSP430:#define __INT64_C(c) c##LL
442 // MSP430:#define __INT64_C_SUFFIX__ LL
443 // MSP430:#define __INT64_FMTd__ "lld"
444 // MSP430:#define __INT64_FMTi__ "lli"
445 // MSP430:#define __INT64_MAX__ 9223372036854775807LL
446 // MSP430:#define __INT64_TYPE__ long long int
447 // MSP430:#define __INT8_C(c) c
448 // MSP430:#define __INT8_C_SUFFIX__
449 // MSP430:#define __INT8_FMTd__ "hhd"
450 // MSP430:#define __INT8_FMTi__ "hhi"
451 // MSP430:#define __INT8_MAX__ 127
452 // MSP430:#define __INT8_TYPE__ signed char
453 // MSP430:#define __INTMAX_C(c) c##LL
454 // MSP430:#define __INTMAX_C_SUFFIX__ LL
455 // MSP430:#define __INTMAX_FMTd__ "lld"
456 // MSP430:#define __INTMAX_FMTi__ "lli"
457 // MSP430:#define __INTMAX_MAX__ 9223372036854775807LL
458 // MSP430:#define __INTMAX_TYPE__ long long int
459 // MSP430:#define __INTMAX_WIDTH__ 64
460 // MSP430:#define __INTPTR_FMTd__ "d"
461 // MSP430:#define __INTPTR_FMTi__ "i"
462 // MSP430:#define __INTPTR_MAX__ 32767
463 // MSP430:#define __INTPTR_TYPE__ int
464 // MSP430:#define __INTPTR_WIDTH__ 16
465 // MSP430:#define __INT_FAST16_FMTd__ "hd"
466 // MSP430:#define __INT_FAST16_FMTi__ "hi"
467 // MSP430:#define __INT_FAST16_MAX__ 32767
468 // MSP430:#define __INT_FAST16_TYPE__ short
469 // MSP430:#define __INT_FAST32_FMTd__ "ld"
470 // MSP430:#define __INT_FAST32_FMTi__ "li"
471 // MSP430:#define __INT_FAST32_MAX__ 2147483647L
472 // MSP430:#define __INT_FAST32_TYPE__ long int
473 // MSP430:#define __INT_FAST64_FMTd__ "lld"
474 // MSP430:#define __INT_FAST64_FMTi__ "lli"
475 // MSP430:#define __INT_FAST64_MAX__ 9223372036854775807LL
476 // MSP430:#define __INT_FAST64_TYPE__ long long int
477 // MSP430:#define __INT_FAST8_FMTd__ "hhd"
478 // MSP430:#define __INT_FAST8_FMTi__ "hhi"
479 // MSP430:#define __INT_FAST8_MAX__ 127
480 // MSP430:#define __INT_FAST8_TYPE__ signed char
481 // MSP430:#define __INT_LEAST16_FMTd__ "hd"
482 // MSP430:#define __INT_LEAST16_FMTi__ "hi"
483 // MSP430:#define __INT_LEAST16_MAX__ 32767
484 // MSP430:#define __INT_LEAST16_TYPE__ short
485 // MSP430:#define __INT_LEAST32_FMTd__ "ld"
486 // MSP430:#define __INT_LEAST32_FMTi__ "li"
487 // MSP430:#define __INT_LEAST32_MAX__ 2147483647L
488 // MSP430:#define __INT_LEAST32_TYPE__ long int
489 // MSP430:#define __INT_LEAST64_FMTd__ "lld"
490 // MSP430:#define __INT_LEAST64_FMTi__ "lli"
491 // MSP430:#define __INT_LEAST64_MAX__ 9223372036854775807LL
492 // MSP430:#define __INT_LEAST64_TYPE__ long long int
493 // MSP430:#define __INT_LEAST8_FMTd__ "hhd"
494 // MSP430:#define __INT_LEAST8_FMTi__ "hhi"
495 // MSP430:#define __INT_LEAST8_MAX__ 127
496 // MSP430:#define __INT_LEAST8_TYPE__ signed char
497 // MSP430:#define __INT_MAX__ 32767
498 // MSP430:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
499 // MSP430:#define __LDBL_DIG__ 15
500 // MSP430:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
501 // MSP430:#define __LDBL_HAS_DENORM__ 1
502 // MSP430:#define __LDBL_HAS_INFINITY__ 1
503 // MSP430:#define __LDBL_HAS_QUIET_NAN__ 1
504 // MSP430:#define __LDBL_MANT_DIG__ 53
505 // MSP430:#define __LDBL_MAX_10_EXP__ 308
506 // MSP430:#define __LDBL_MAX_EXP__ 1024
507 // MSP430:#define __LDBL_MAX__ 1.7976931348623157e+308L
508 // MSP430:#define __LDBL_MIN_10_EXP__ (-307)
509 // MSP430:#define __LDBL_MIN_EXP__ (-1021)
510 // MSP430:#define __LDBL_MIN__ 2.2250738585072014e-308L
511 // MSP430:#define __LITTLE_ENDIAN__ 1
512 // MSP430:#define __LONG_LONG_MAX__ 9223372036854775807LL
513 // MSP430:#define __LONG_MAX__ 2147483647L
514 // MSP430-NOT:#define __LP64__
515 // MSP430:#define __MSP430__ 1
516 // MSP430:#define __POINTER_WIDTH__ 16
517 // MSP430:#define __PTRDIFF_TYPE__ int
518 // MSP430:#define __PTRDIFF_WIDTH__ 16
519 // MSP430:#define __SCHAR_MAX__ 127
520 // MSP430:#define __SHRT_MAX__ 32767
521 // MSP430:#define __SIG_ATOMIC_MAX__ 2147483647L
522 // MSP430:#define __SIG_ATOMIC_WIDTH__ 32
523 // MSP430:#define __SIZEOF_DOUBLE__ 8
524 // MSP430:#define __SIZEOF_FLOAT__ 4
525 // MSP430:#define __SIZEOF_INT__ 2
526 // MSP430:#define __SIZEOF_LONG_DOUBLE__ 8
527 // MSP430:#define __SIZEOF_LONG_LONG__ 8
528 // MSP430:#define __SIZEOF_LONG__ 4
529 // MSP430:#define __SIZEOF_POINTER__ 2
530 // MSP430:#define __SIZEOF_PTRDIFF_T__ 2
531 // MSP430:#define __SIZEOF_SHORT__ 2
532 // MSP430:#define __SIZEOF_SIZE_T__ 2
533 // MSP430:#define __SIZEOF_WCHAR_T__ 2
534 // MSP430:#define __SIZEOF_WINT_T__ 2
535 // MSP430:#define __SIZE_MAX__ 65535U
536 // MSP430:#define __SIZE_TYPE__ unsigned int
537 // MSP430:#define __SIZE_WIDTH__ 16
538 // MSP430-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 2U
539 // MSP430:#define __UINT16_C(c) c##U
540 // MSP430:#define __UINT16_C_SUFFIX__ U
541 // MSP430:#define __UINT16_MAX__ 65535U
542 // MSP430:#define __UINT16_TYPE__ unsigned short
543 // MSP430:#define __UINT32_C(c) c##UL
544 // MSP430:#define __UINT32_C_SUFFIX__ UL
545 // MSP430:#define __UINT32_MAX__ 4294967295UL
546 // MSP430:#define __UINT32_TYPE__ long unsigned int
547 // MSP430:#define __UINT64_C(c) c##ULL
548 // MSP430:#define __UINT64_C_SUFFIX__ ULL
549 // MSP430:#define __UINT64_MAX__ 18446744073709551615ULL
550 // MSP430:#define __UINT64_TYPE__ long long unsigned int
551 // MSP430:#define __UINT8_C(c) c
552 // MSP430:#define __UINT8_C_SUFFIX__
553 // MSP430:#define __UINT8_MAX__ 255
554 // MSP430:#define __UINT8_TYPE__ unsigned char
555 // MSP430:#define __UINTMAX_C(c) c##ULL
556 // MSP430:#define __UINTMAX_C_SUFFIX__ ULL
557 // MSP430:#define __UINTMAX_MAX__ 18446744073709551615ULL
558 // MSP430:#define __UINTMAX_TYPE__ long long unsigned int
559 // MSP430:#define __UINTMAX_WIDTH__ 64
560 // MSP430:#define __UINTPTR_MAX__ 65535U
561 // MSP430:#define __UINTPTR_TYPE__ unsigned int
562 // MSP430:#define __UINTPTR_WIDTH__ 16
563 // MSP430:#define __UINT_FAST16_MAX__ 65535U
564 // MSP430:#define __UINT_FAST16_TYPE__ unsigned short
565 // MSP430:#define __UINT_FAST32_MAX__ 4294967295UL
566 // MSP430:#define __UINT_FAST32_TYPE__ long unsigned int
567 // MSP430:#define __UINT_FAST64_MAX__ 18446744073709551615ULL
568 // MSP430:#define __UINT_FAST64_TYPE__ long long unsigned int
569 // MSP430:#define __UINT_FAST8_MAX__ 255
570 // MSP430:#define __UINT_FAST8_TYPE__ unsigned char
571 // MSP430:#define __UINT_LEAST16_MAX__ 65535U
572 // MSP430:#define __UINT_LEAST16_TYPE__ unsigned short
573 // MSP430:#define __UINT_LEAST32_MAX__ 4294967295UL
574 // MSP430:#define __UINT_LEAST32_TYPE__ long unsigned int
575 // MSP430:#define __UINT_LEAST64_MAX__ 18446744073709551615ULL
576 // MSP430:#define __UINT_LEAST64_TYPE__ long long unsigned int
577 // MSP430:#define __UINT_LEAST8_MAX__ 255
578 // MSP430:#define __UINT_LEAST8_TYPE__ unsigned char
579 // MSP430:#define __USER_LABEL_PREFIX__
580 // MSP430:#define __WCHAR_MAX__ 32767
581 // MSP430:#define __WCHAR_TYPE__ int
582 // MSP430:#define __WCHAR_WIDTH__ 16
583 // MSP430:#define __WINT_TYPE__ int
584 // MSP430:#define __WINT_WIDTH__ 16
585 // MSP430:#define __clang__ 1
586 //
587 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=nvptx-none-none < /dev/null | FileCheck -match-full-lines -check-prefix NVPTX32 %s
588 // RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=nvptx-none-none < /dev/null | FileCheck -match-full-lines -check-prefix NVPTX32 -check-prefix NVPTX32-CXX %s
589 //
590 // NVPTX32-NOT:#define _LP64
591 // NVPTX32:#define __BIGGEST_ALIGNMENT__ 8
592 // NVPTX32:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
593 // NVPTX32:#define __CHAR16_TYPE__ unsigned short
594 // NVPTX32:#define __CHAR32_TYPE__ unsigned int
595 // NVPTX32:#define __CHAR_BIT__ 8
596 // NVPTX32:#define __CONSTANT_CFSTRINGS__ 1
597 // NVPTX32:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
598 // NVPTX32:#define __DBL_DIG__ 15
599 // NVPTX32:#define __DBL_EPSILON__ 2.2204460492503131e-16
600 // NVPTX32:#define __DBL_HAS_DENORM__ 1
601 // NVPTX32:#define __DBL_HAS_INFINITY__ 1
602 // NVPTX32:#define __DBL_HAS_QUIET_NAN__ 1
603 // NVPTX32:#define __DBL_MANT_DIG__ 53
604 // NVPTX32:#define __DBL_MAX_10_EXP__ 308
605 // NVPTX32:#define __DBL_MAX_EXP__ 1024
606 // NVPTX32:#define __DBL_MAX__ 1.7976931348623157e+308
607 // NVPTX32:#define __DBL_MIN_10_EXP__ (-307)
608 // NVPTX32:#define __DBL_MIN_EXP__ (-1021)
609 // NVPTX32:#define __DBL_MIN__ 2.2250738585072014e-308
610 // NVPTX32:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
611 // NVPTX32:#define __FINITE_MATH_ONLY__ 0
612 // NVPTX32:#define __FLT_DENORM_MIN__ 1.40129846e-45F
613 // NVPTX32:#define __FLT_DIG__ 6
614 // NVPTX32:#define __FLT_EPSILON__ 1.19209290e-7F
615 // NVPTX32:#define __FLT_HAS_DENORM__ 1
616 // NVPTX32:#define __FLT_HAS_INFINITY__ 1
617 // NVPTX32:#define __FLT_HAS_QUIET_NAN__ 1
618 // NVPTX32:#define __FLT_MANT_DIG__ 24
619 // NVPTX32:#define __FLT_MAX_10_EXP__ 38
620 // NVPTX32:#define __FLT_MAX_EXP__ 128
621 // NVPTX32:#define __FLT_MAX__ 3.40282347e+38F
622 // NVPTX32:#define __FLT_MIN_10_EXP__ (-37)
623 // NVPTX32:#define __FLT_MIN_EXP__ (-125)
624 // NVPTX32:#define __FLT_MIN__ 1.17549435e-38F
625 // NVPTX32:#define __FLT_RADIX__ 2
626 // NVPTX32:#define __INT16_C(c) c
627 // NVPTX32:#define __INT16_C_SUFFIX__
628 // NVPTX32:#define __INT16_FMTd__ "hd"
629 // NVPTX32:#define __INT16_FMTi__ "hi"
630 // NVPTX32:#define __INT16_MAX__ 32767
631 // NVPTX32:#define __INT16_TYPE__ short
632 // NVPTX32:#define __INT32_C(c) c
633 // NVPTX32:#define __INT32_C_SUFFIX__
634 // NVPTX32:#define __INT32_FMTd__ "d"
635 // NVPTX32:#define __INT32_FMTi__ "i"
636 // NVPTX32:#define __INT32_MAX__ 2147483647
637 // NVPTX32:#define __INT32_TYPE__ int
638 // NVPTX32:#define __INT64_C(c) c##LL
639 // NVPTX32:#define __INT64_C_SUFFIX__ LL
640 // NVPTX32:#define __INT64_FMTd__ "lld"
641 // NVPTX32:#define __INT64_FMTi__ "lli"
642 // NVPTX32:#define __INT64_MAX__ 9223372036854775807LL
643 // NVPTX32:#define __INT64_TYPE__ long long int
644 // NVPTX32:#define __INT8_C(c) c
645 // NVPTX32:#define __INT8_C_SUFFIX__
646 // NVPTX32:#define __INT8_FMTd__ "hhd"
647 // NVPTX32:#define __INT8_FMTi__ "hhi"
648 // NVPTX32:#define __INT8_MAX__ 127
649 // NVPTX32:#define __INT8_TYPE__ signed char
650 // NVPTX32:#define __INTMAX_C(c) c##LL
651 // NVPTX32:#define __INTMAX_C_SUFFIX__ LL
652 // NVPTX32:#define __INTMAX_FMTd__ "lld"
653 // NVPTX32:#define __INTMAX_FMTi__ "lli"
654 // NVPTX32:#define __INTMAX_MAX__ 9223372036854775807LL
655 // NVPTX32:#define __INTMAX_TYPE__ long long int
656 // NVPTX32:#define __INTMAX_WIDTH__ 64
657 // NVPTX32:#define __INTPTR_FMTd__ "d"
658 // NVPTX32:#define __INTPTR_FMTi__ "i"
659 // NVPTX32:#define __INTPTR_MAX__ 2147483647
660 // NVPTX32:#define __INTPTR_TYPE__ int
661 // NVPTX32:#define __INTPTR_WIDTH__ 32
662 // NVPTX32:#define __INT_FAST16_FMTd__ "hd"
663 // NVPTX32:#define __INT_FAST16_FMTi__ "hi"
664 // NVPTX32:#define __INT_FAST16_MAX__ 32767
665 // NVPTX32:#define __INT_FAST16_TYPE__ short
666 // NVPTX32:#define __INT_FAST32_FMTd__ "d"
667 // NVPTX32:#define __INT_FAST32_FMTi__ "i"
668 // NVPTX32:#define __INT_FAST32_MAX__ 2147483647
669 // NVPTX32:#define __INT_FAST32_TYPE__ int
670 // NVPTX32:#define __INT_FAST64_FMTd__ "lld"
671 // NVPTX32:#define __INT_FAST64_FMTi__ "lli"
672 // NVPTX32:#define __INT_FAST64_MAX__ 9223372036854775807LL
673 // NVPTX32:#define __INT_FAST64_TYPE__ long long int
674 // NVPTX32:#define __INT_FAST8_FMTd__ "hhd"
675 // NVPTX32:#define __INT_FAST8_FMTi__ "hhi"
676 // NVPTX32:#define __INT_FAST8_MAX__ 127
677 // NVPTX32:#define __INT_FAST8_TYPE__ signed char
678 // NVPTX32:#define __INT_LEAST16_FMTd__ "hd"
679 // NVPTX32:#define __INT_LEAST16_FMTi__ "hi"
680 // NVPTX32:#define __INT_LEAST16_MAX__ 32767
681 // NVPTX32:#define __INT_LEAST16_TYPE__ short
682 // NVPTX32:#define __INT_LEAST32_FMTd__ "d"
683 // NVPTX32:#define __INT_LEAST32_FMTi__ "i"
684 // NVPTX32:#define __INT_LEAST32_MAX__ 2147483647
685 // NVPTX32:#define __INT_LEAST32_TYPE__ int
686 // NVPTX32:#define __INT_LEAST64_FMTd__ "lld"
687 // NVPTX32:#define __INT_LEAST64_FMTi__ "lli"
688 // NVPTX32:#define __INT_LEAST64_MAX__ 9223372036854775807LL
689 // NVPTX32:#define __INT_LEAST64_TYPE__ long long int
690 // NVPTX32:#define __INT_LEAST8_FMTd__ "hhd"
691 // NVPTX32:#define __INT_LEAST8_FMTi__ "hhi"
692 // NVPTX32:#define __INT_LEAST8_MAX__ 127
693 // NVPTX32:#define __INT_LEAST8_TYPE__ signed char
694 // NVPTX32:#define __INT_MAX__ 2147483647
695 // NVPTX32:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
696 // NVPTX32:#define __LDBL_DIG__ 15
697 // NVPTX32:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
698 // NVPTX32:#define __LDBL_HAS_DENORM__ 1
699 // NVPTX32:#define __LDBL_HAS_INFINITY__ 1
700 // NVPTX32:#define __LDBL_HAS_QUIET_NAN__ 1
701 // NVPTX32:#define __LDBL_MANT_DIG__ 53
702 // NVPTX32:#define __LDBL_MAX_10_EXP__ 308
703 // NVPTX32:#define __LDBL_MAX_EXP__ 1024
704 // NVPTX32:#define __LDBL_MAX__ 1.7976931348623157e+308L
705 // NVPTX32:#define __LDBL_MIN_10_EXP__ (-307)
706 // NVPTX32:#define __LDBL_MIN_EXP__ (-1021)
707 // NVPTX32:#define __LDBL_MIN__ 2.2250738585072014e-308L
708 // NVPTX32:#define __LITTLE_ENDIAN__ 1
709 // NVPTX32:#define __LONG_LONG_MAX__ 9223372036854775807LL
710 // NVPTX32:#define __LONG_MAX__ 2147483647L
711 // NVPTX32-NOT:#define __LP64__
712 // NVPTX32:#define __NVPTX__ 1
713 // NVPTX32:#define __POINTER_WIDTH__ 32
714 // NVPTX32:#define __PRAGMA_REDEFINE_EXTNAME 1
715 // NVPTX32:#define __PTRDIFF_TYPE__ int
716 // NVPTX32:#define __PTRDIFF_WIDTH__ 32
717 // NVPTX32:#define __PTX__ 1
718 // NVPTX32:#define __SCHAR_MAX__ 127
719 // NVPTX32:#define __SHRT_MAX__ 32767
720 // NVPTX32:#define __SIG_ATOMIC_MAX__ 2147483647
721 // NVPTX32:#define __SIG_ATOMIC_WIDTH__ 32
722 // NVPTX32:#define __SIZEOF_DOUBLE__ 8
723 // NVPTX32:#define __SIZEOF_FLOAT__ 4
724 // NVPTX32:#define __SIZEOF_INT__ 4
725 // NVPTX32:#define __SIZEOF_LONG_DOUBLE__ 8
726 // NVPTX32:#define __SIZEOF_LONG_LONG__ 8
727 // NVPTX32:#define __SIZEOF_LONG__ 4
728 // NVPTX32:#define __SIZEOF_POINTER__ 4
729 // NVPTX32:#define __SIZEOF_PTRDIFF_T__ 4
730 // NVPTX32:#define __SIZEOF_SHORT__ 2
731 // NVPTX32:#define __SIZEOF_SIZE_T__ 4
732 // NVPTX32:#define __SIZEOF_WCHAR_T__ 4
733 // NVPTX32:#define __SIZEOF_WINT_T__ 4
734 // NVPTX32:#define __SIZE_MAX__ 4294967295U
735 // NVPTX32:#define __SIZE_TYPE__ unsigned int
736 // NVPTX32:#define __SIZE_WIDTH__ 32
737 // NVPTX32-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8U
738 // NVPTX32:#define __UINT16_C(c) c
739 // NVPTX32:#define __UINT16_C_SUFFIX__
740 // NVPTX32:#define __UINT16_MAX__ 65535
741 // NVPTX32:#define __UINT16_TYPE__ unsigned short
742 // NVPTX32:#define __UINT32_C(c) c##U
743 // NVPTX32:#define __UINT32_C_SUFFIX__ U
744 // NVPTX32:#define __UINT32_MAX__ 4294967295U
745 // NVPTX32:#define __UINT32_TYPE__ unsigned int
746 // NVPTX32:#define __UINT64_C(c) c##ULL
747 // NVPTX32:#define __UINT64_C_SUFFIX__ ULL
748 // NVPTX32:#define __UINT64_MAX__ 18446744073709551615ULL
749 // NVPTX32:#define __UINT64_TYPE__ long long unsigned int
750 // NVPTX32:#define __UINT8_C(c) c
751 // NVPTX32:#define __UINT8_C_SUFFIX__
752 // NVPTX32:#define __UINT8_MAX__ 255
753 // NVPTX32:#define __UINT8_TYPE__ unsigned char
754 // NVPTX32:#define __UINTMAX_C(c) c##ULL
755 // NVPTX32:#define __UINTMAX_C_SUFFIX__ ULL
756 // NVPTX32:#define __UINTMAX_MAX__ 18446744073709551615ULL
757 // NVPTX32:#define __UINTMAX_TYPE__ long long unsigned int
758 // NVPTX32:#define __UINTMAX_WIDTH__ 64
759 // NVPTX32:#define __UINTPTR_MAX__ 4294967295U
760 // NVPTX32:#define __UINTPTR_TYPE__ unsigned int
761 // NVPTX32:#define __UINTPTR_WIDTH__ 32
762 // NVPTX32:#define __UINT_FAST16_MAX__ 65535
763 // NVPTX32:#define __UINT_FAST16_TYPE__ unsigned short
764 // NVPTX32:#define __UINT_FAST32_MAX__ 4294967295U
765 // NVPTX32:#define __UINT_FAST32_TYPE__ unsigned int
766 // NVPTX32:#define __UINT_FAST64_MAX__ 18446744073709551615ULL
767 // NVPTX32:#define __UINT_FAST64_TYPE__ long long unsigned int
768 // NVPTX32:#define __UINT_FAST8_MAX__ 255
769 // NVPTX32:#define __UINT_FAST8_TYPE__ unsigned char
770 // NVPTX32:#define __UINT_LEAST16_MAX__ 65535
771 // NVPTX32:#define __UINT_LEAST16_TYPE__ unsigned short
772 // NVPTX32:#define __UINT_LEAST32_MAX__ 4294967295U
773 // NVPTX32:#define __UINT_LEAST32_TYPE__ unsigned int
774 // NVPTX32:#define __UINT_LEAST64_MAX__ 18446744073709551615ULL
775 // NVPTX32:#define __UINT_LEAST64_TYPE__ long long unsigned int
776 // NVPTX32:#define __UINT_LEAST8_MAX__ 255
777 // NVPTX32:#define __UINT_LEAST8_TYPE__ unsigned char
778 // NVPTX32:#define __USER_LABEL_PREFIX__
779 // NVPTX32:#define __WCHAR_MAX__ 2147483647
780 // NVPTX32:#define __WCHAR_TYPE__ int
781 // NVPTX32:#define __WCHAR_WIDTH__ 32
782 // NVPTX32:#define __WINT_TYPE__ int
783 // NVPTX32:#define __WINT_WIDTH__ 32
784 //
785 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=nvptx64-none-none < /dev/null | FileCheck -match-full-lines -check-prefix NVPTX64 %s
786 // RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=nvptx64-none-none < /dev/null | FileCheck -match-full-lines -check-prefix NVPTX64 -check-prefix NVPTX64-CXX %s
787 //
788 // NVPTX64:#define _LP64 1
789 // NVPTX64:#define __BIGGEST_ALIGNMENT__ 8
790 // NVPTX64:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
791 // NVPTX64:#define __CHAR16_TYPE__ unsigned short
792 // NVPTX64:#define __CHAR32_TYPE__ unsigned int
793 // NVPTX64:#define __CHAR_BIT__ 8
794 // NVPTX64:#define __CONSTANT_CFSTRINGS__ 1
795 // NVPTX64:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
796 // NVPTX64:#define __DBL_DIG__ 15
797 // NVPTX64:#define __DBL_EPSILON__ 2.2204460492503131e-16
798 // NVPTX64:#define __DBL_HAS_DENORM__ 1
799 // NVPTX64:#define __DBL_HAS_INFINITY__ 1
800 // NVPTX64:#define __DBL_HAS_QUIET_NAN__ 1
801 // NVPTX64:#define __DBL_MANT_DIG__ 53
802 // NVPTX64:#define __DBL_MAX_10_EXP__ 308
803 // NVPTX64:#define __DBL_MAX_EXP__ 1024
804 // NVPTX64:#define __DBL_MAX__ 1.7976931348623157e+308
805 // NVPTX64:#define __DBL_MIN_10_EXP__ (-307)
806 // NVPTX64:#define __DBL_MIN_EXP__ (-1021)
807 // NVPTX64:#define __DBL_MIN__ 2.2250738585072014e-308
808 // NVPTX64:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
809 // NVPTX64:#define __FINITE_MATH_ONLY__ 0
810 // NVPTX64:#define __FLT_DENORM_MIN__ 1.40129846e-45F
811 // NVPTX64:#define __FLT_DIG__ 6
812 // NVPTX64:#define __FLT_EPSILON__ 1.19209290e-7F
813 // NVPTX64:#define __FLT_HAS_DENORM__ 1
814 // NVPTX64:#define __FLT_HAS_INFINITY__ 1
815 // NVPTX64:#define __FLT_HAS_QUIET_NAN__ 1
816 // NVPTX64:#define __FLT_MANT_DIG__ 24
817 // NVPTX64:#define __FLT_MAX_10_EXP__ 38
818 // NVPTX64:#define __FLT_MAX_EXP__ 128
819 // NVPTX64:#define __FLT_MAX__ 3.40282347e+38F
820 // NVPTX64:#define __FLT_MIN_10_EXP__ (-37)
821 // NVPTX64:#define __FLT_MIN_EXP__ (-125)
822 // NVPTX64:#define __FLT_MIN__ 1.17549435e-38F
823 // NVPTX64:#define __FLT_RADIX__ 2
824 // NVPTX64:#define __INT16_C(c) c
825 // NVPTX64:#define __INT16_C_SUFFIX__
826 // NVPTX64:#define __INT16_FMTd__ "hd"
827 // NVPTX64:#define __INT16_FMTi__ "hi"
828 // NVPTX64:#define __INT16_MAX__ 32767
829 // NVPTX64:#define __INT16_TYPE__ short
830 // NVPTX64:#define __INT32_C(c) c
831 // NVPTX64:#define __INT32_C_SUFFIX__
832 // NVPTX64:#define __INT32_FMTd__ "d"
833 // NVPTX64:#define __INT32_FMTi__ "i"
834 // NVPTX64:#define __INT32_MAX__ 2147483647
835 // NVPTX64:#define __INT32_TYPE__ int
836 // NVPTX64:#define __INT64_C(c) c##LL
837 // NVPTX64:#define __INT64_C_SUFFIX__ LL
838 // NVPTX64:#define __INT64_FMTd__ "lld"
839 // NVPTX64:#define __INT64_FMTi__ "lli"
840 // NVPTX64:#define __INT64_MAX__ 9223372036854775807LL
841 // NVPTX64:#define __INT64_TYPE__ long long int
842 // NVPTX64:#define __INT8_C(c) c
843 // NVPTX64:#define __INT8_C_SUFFIX__
844 // NVPTX64:#define __INT8_FMTd__ "hhd"
845 // NVPTX64:#define __INT8_FMTi__ "hhi"
846 // NVPTX64:#define __INT8_MAX__ 127
847 // NVPTX64:#define __INT8_TYPE__ signed char
848 // NVPTX64:#define __INTMAX_C(c) c##LL
849 // NVPTX64:#define __INTMAX_C_SUFFIX__ LL
850 // NVPTX64:#define __INTMAX_FMTd__ "lld"
851 // NVPTX64:#define __INTMAX_FMTi__ "lli"
852 // NVPTX64:#define __INTMAX_MAX__ 9223372036854775807LL
853 // NVPTX64:#define __INTMAX_TYPE__ long long int
854 // NVPTX64:#define __INTMAX_WIDTH__ 64
855 // NVPTX64:#define __INTPTR_FMTd__ "ld"
856 // NVPTX64:#define __INTPTR_FMTi__ "li"
857 // NVPTX64:#define __INTPTR_MAX__ 9223372036854775807L
858 // NVPTX64:#define __INTPTR_TYPE__ long int
859 // NVPTX64:#define __INTPTR_WIDTH__ 64
860 // NVPTX64:#define __INT_FAST16_FMTd__ "hd"
861 // NVPTX64:#define __INT_FAST16_FMTi__ "hi"
862 // NVPTX64:#define __INT_FAST16_MAX__ 32767
863 // NVPTX64:#define __INT_FAST16_TYPE__ short
864 // NVPTX64:#define __INT_FAST32_FMTd__ "d"
865 // NVPTX64:#define __INT_FAST32_FMTi__ "i"
866 // NVPTX64:#define __INT_FAST32_MAX__ 2147483647
867 // NVPTX64:#define __INT_FAST32_TYPE__ int
868 // NVPTX64:#define __INT_FAST64_FMTd__ "ld"
869 // NVPTX64:#define __INT_FAST64_FMTi__ "li"
870 // NVPTX64:#define __INT_FAST64_MAX__ 9223372036854775807L
871 // NVPTX64:#define __INT_FAST64_TYPE__ long int
872 // NVPTX64:#define __INT_FAST8_FMTd__ "hhd"
873 // NVPTX64:#define __INT_FAST8_FMTi__ "hhi"
874 // NVPTX64:#define __INT_FAST8_MAX__ 127
875 // NVPTX64:#define __INT_FAST8_TYPE__ signed char
876 // NVPTX64:#define __INT_LEAST16_FMTd__ "hd"
877 // NVPTX64:#define __INT_LEAST16_FMTi__ "hi"
878 // NVPTX64:#define __INT_LEAST16_MAX__ 32767
879 // NVPTX64:#define __INT_LEAST16_TYPE__ short
880 // NVPTX64:#define __INT_LEAST32_FMTd__ "d"
881 // NVPTX64:#define __INT_LEAST32_FMTi__ "i"
882 // NVPTX64:#define __INT_LEAST32_MAX__ 2147483647
883 // NVPTX64:#define __INT_LEAST32_TYPE__ int
884 // NVPTX64:#define __INT_LEAST64_FMTd__ "ld"
885 // NVPTX64:#define __INT_LEAST64_FMTi__ "li"
886 // NVPTX64:#define __INT_LEAST64_MAX__ 9223372036854775807L
887 // NVPTX64:#define __INT_LEAST64_TYPE__ long int
888 // NVPTX64:#define __INT_LEAST8_FMTd__ "hhd"
889 // NVPTX64:#define __INT_LEAST8_FMTi__ "hhi"
890 // NVPTX64:#define __INT_LEAST8_MAX__ 127
891 // NVPTX64:#define __INT_LEAST8_TYPE__ signed char
892 // NVPTX64:#define __INT_MAX__ 2147483647
893 // NVPTX64:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
894 // NVPTX64:#define __LDBL_DIG__ 15
895 // NVPTX64:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
896 // NVPTX64:#define __LDBL_HAS_DENORM__ 1
897 // NVPTX64:#define __LDBL_HAS_INFINITY__ 1
898 // NVPTX64:#define __LDBL_HAS_QUIET_NAN__ 1
899 // NVPTX64:#define __LDBL_MANT_DIG__ 53
900 // NVPTX64:#define __LDBL_MAX_10_EXP__ 308
901 // NVPTX64:#define __LDBL_MAX_EXP__ 1024
902 // NVPTX64:#define __LDBL_MAX__ 1.7976931348623157e+308L
903 // NVPTX64:#define __LDBL_MIN_10_EXP__ (-307)
904 // NVPTX64:#define __LDBL_MIN_EXP__ (-1021)
905 // NVPTX64:#define __LDBL_MIN__ 2.2250738585072014e-308L
906 // NVPTX64:#define __LITTLE_ENDIAN__ 1
907 // NVPTX64:#define __LONG_LONG_MAX__ 9223372036854775807LL
908 // NVPTX64:#define __LONG_MAX__ 9223372036854775807L
909 // NVPTX64:#define __LP64__ 1
910 // NVPTX64:#define __NVPTX__ 1
911 // NVPTX64:#define __POINTER_WIDTH__ 64
912 // NVPTX64:#define __PRAGMA_REDEFINE_EXTNAME 1
913 // NVPTX64:#define __PTRDIFF_TYPE__ long int
914 // NVPTX64:#define __PTRDIFF_WIDTH__ 64
915 // NVPTX64:#define __PTX__ 1
916 // NVPTX64:#define __SCHAR_MAX__ 127
917 // NVPTX64:#define __SHRT_MAX__ 32767
918 // NVPTX64:#define __SIG_ATOMIC_MAX__ 2147483647
919 // NVPTX64:#define __SIG_ATOMIC_WIDTH__ 32
920 // NVPTX64:#define __SIZEOF_DOUBLE__ 8
921 // NVPTX64:#define __SIZEOF_FLOAT__ 4
922 // NVPTX64:#define __SIZEOF_INT__ 4
923 // NVPTX64:#define __SIZEOF_LONG_DOUBLE__ 8
924 // NVPTX64:#define __SIZEOF_LONG_LONG__ 8
925 // NVPTX64:#define __SIZEOF_LONG__ 8
926 // NVPTX64:#define __SIZEOF_POINTER__ 8
927 // NVPTX64:#define __SIZEOF_PTRDIFF_T__ 8
928 // NVPTX64:#define __SIZEOF_SHORT__ 2
929 // NVPTX64:#define __SIZEOF_SIZE_T__ 8
930 // NVPTX64:#define __SIZEOF_WCHAR_T__ 4
931 // NVPTX64:#define __SIZEOF_WINT_T__ 4
932 // NVPTX64:#define __SIZE_MAX__ 18446744073709551615UL
933 // NVPTX64:#define __SIZE_TYPE__ long unsigned int
934 // NVPTX64:#define __SIZE_WIDTH__ 64
935 // NVPTX64-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8UL
936 // NVPTX64:#define __UINT16_C(c) c
937 // NVPTX64:#define __UINT16_C_SUFFIX__
938 // NVPTX64:#define __UINT16_MAX__ 65535
939 // NVPTX64:#define __UINT16_TYPE__ unsigned short
940 // NVPTX64:#define __UINT32_C(c) c##U
941 // NVPTX64:#define __UINT32_C_SUFFIX__ U
942 // NVPTX64:#define __UINT32_MAX__ 4294967295U
943 // NVPTX64:#define __UINT32_TYPE__ unsigned int
944 // NVPTX64:#define __UINT64_C(c) c##ULL
945 // NVPTX64:#define __UINT64_C_SUFFIX__ ULL
946 // NVPTX64:#define __UINT64_MAX__ 18446744073709551615ULL
947 // NVPTX64:#define __UINT64_TYPE__ long long unsigned int
948 // NVPTX64:#define __UINT8_C(c) c
949 // NVPTX64:#define __UINT8_C_SUFFIX__
950 // NVPTX64:#define __UINT8_MAX__ 255
951 // NVPTX64:#define __UINT8_TYPE__ unsigned char
952 // NVPTX64:#define __UINTMAX_C(c) c##ULL
953 // NVPTX64:#define __UINTMAX_C_SUFFIX__ ULL
954 // NVPTX64:#define __UINTMAX_MAX__ 18446744073709551615ULL
955 // NVPTX64:#define __UINTMAX_TYPE__ long long unsigned int
956 // NVPTX64:#define __UINTMAX_WIDTH__ 64
957 // NVPTX64:#define __UINTPTR_MAX__ 18446744073709551615UL
958 // NVPTX64:#define __UINTPTR_TYPE__ long unsigned int
959 // NVPTX64:#define __UINTPTR_WIDTH__ 64
960 // NVPTX64:#define __UINT_FAST16_MAX__ 65535
961 // NVPTX64:#define __UINT_FAST16_TYPE__ unsigned short
962 // NVPTX64:#define __UINT_FAST32_MAX__ 4294967295U
963 // NVPTX64:#define __UINT_FAST32_TYPE__ unsigned int
964 // NVPTX64:#define __UINT_FAST64_MAX__ 18446744073709551615UL
965 // NVPTX64:#define __UINT_FAST64_TYPE__ long unsigned int
966 // NVPTX64:#define __UINT_FAST8_MAX__ 255
967 // NVPTX64:#define __UINT_FAST8_TYPE__ unsigned char
968 // NVPTX64:#define __UINT_LEAST16_MAX__ 65535
969 // NVPTX64:#define __UINT_LEAST16_TYPE__ unsigned short
970 // NVPTX64:#define __UINT_LEAST32_MAX__ 4294967295U
971 // NVPTX64:#define __UINT_LEAST32_TYPE__ unsigned int
972 // NVPTX64:#define __UINT_LEAST64_MAX__ 18446744073709551615UL
973 // NVPTX64:#define __UINT_LEAST64_TYPE__ long unsigned int
974 // NVPTX64:#define __UINT_LEAST8_MAX__ 255
975 // NVPTX64:#define __UINT_LEAST8_TYPE__ unsigned char
976 // NVPTX64:#define __USER_LABEL_PREFIX__
977 // NVPTX64:#define __WCHAR_MAX__ 2147483647
978 // NVPTX64:#define __WCHAR_TYPE__ int
979 // NVPTX64:#define __WCHAR_WIDTH__ 32
980 // NVPTX64:#define __WINT_TYPE__ int
981 // NVPTX64:#define __WINT_WIDTH__ 32
982 //
983 
984 // RUN: %clang_cc1 -x cl -E -dM -ffreestanding -triple=amdgcn < /dev/null | FileCheck -match-full-lines -check-prefix AMDGCN --check-prefix AMDGPU %s
985 // RUN: %clang_cc1 -x cl -E -dM -ffreestanding -triple=r600 -target-cpu caicos < /dev/null | FileCheck -match-full-lines --check-prefix AMDGPU %s
986 //
987 // AMDGPU:#define __ENDIAN_LITTLE__ 1
988 // AMDGPU:#define cl_khr_byte_addressable_store 1
989 // AMDGCN:#define cl_khr_fp64 1
990 // AMDGPU:#define cl_khr_global_int32_base_atomics 1
991 // AMDGPU:#define cl_khr_global_int32_extended_atomics 1
992 // AMDGPU:#define cl_khr_local_int32_base_atomics 1
993 // AMDGPU:#define cl_khr_local_int32_extended_atomics 1
994 
995 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=sparc-none-none < /dev/null | FileCheck -match-full-lines -check-prefix SPARC -check-prefix SPARC-DEFAULT %s
996 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=sparc-rtems-elf < /dev/null | FileCheck -match-full-lines -check-prefix SPARC -check-prefix SPARC-DEFAULT %s
997 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=sparc-none-netbsd < /dev/null | FileCheck -match-full-lines -check-prefix SPARC -check-prefix SPARC-NETOPENBSD %s
998 // RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=sparc-none-none < /dev/null | FileCheck -match-full-lines -check-prefix SPARC -check-prefix SPARC-DEFAULT -check-prefix SPARC-DEFAULT-CXX %s
999 //
1000 // SPARC-NOT:#define _LP64
1001 // SPARC:#define __BIGGEST_ALIGNMENT__ 8
1002 // SPARC:#define __BIG_ENDIAN__ 1
1003 // SPARC:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__
1004 // SPARC:#define __CHAR16_TYPE__ unsigned short
1005 // SPARC:#define __CHAR32_TYPE__ unsigned int
1006 // SPARC:#define __CHAR_BIT__ 8
1007 // SPARC:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
1008 // SPARC:#define __DBL_DIG__ 15
1009 // SPARC:#define __DBL_EPSILON__ 2.2204460492503131e-16
1010 // SPARC:#define __DBL_HAS_DENORM__ 1
1011 // SPARC:#define __DBL_HAS_INFINITY__ 1
1012 // SPARC:#define __DBL_HAS_QUIET_NAN__ 1
1013 // SPARC:#define __DBL_MANT_DIG__ 53
1014 // SPARC:#define __DBL_MAX_10_EXP__ 308
1015 // SPARC:#define __DBL_MAX_EXP__ 1024
1016 // SPARC:#define __DBL_MAX__ 1.7976931348623157e+308
1017 // SPARC:#define __DBL_MIN_10_EXP__ (-307)
1018 // SPARC:#define __DBL_MIN_EXP__ (-1021)
1019 // SPARC:#define __DBL_MIN__ 2.2250738585072014e-308
1020 // SPARC:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
1021 // SPARC:#define __FLT_DENORM_MIN__ 1.40129846e-45F
1022 // SPARC:#define __FLT_DIG__ 6
1023 // SPARC:#define __FLT_EPSILON__ 1.19209290e-7F
1024 // SPARC:#define __FLT_HAS_DENORM__ 1
1025 // SPARC:#define __FLT_HAS_INFINITY__ 1
1026 // SPARC:#define __FLT_HAS_QUIET_NAN__ 1
1027 // SPARC:#define __FLT_MANT_DIG__ 24
1028 // SPARC:#define __FLT_MAX_10_EXP__ 38
1029 // SPARC:#define __FLT_MAX_EXP__ 128
1030 // SPARC:#define __FLT_MAX__ 3.40282347e+38F
1031 // SPARC:#define __FLT_MIN_10_EXP__ (-37)
1032 // SPARC:#define __FLT_MIN_EXP__ (-125)
1033 // SPARC:#define __FLT_MIN__ 1.17549435e-38F
1034 // SPARC:#define __FLT_RADIX__ 2
1035 // SPARC:#define __GCC_ATOMIC_LLONG_LOCK_FREE 1
1036 // SPARC:#define __INT16_C(c) c
1037 // SPARC:#define __INT16_C_SUFFIX__
1038 // SPARC:#define __INT16_FMTd__ "hd"
1039 // SPARC:#define __INT16_FMTi__ "hi"
1040 // SPARC:#define __INT16_MAX__ 32767
1041 // SPARC:#define __INT16_TYPE__ short
1042 // SPARC:#define __INT32_C(c) c
1043 // SPARC:#define __INT32_C_SUFFIX__
1044 // SPARC:#define __INT32_FMTd__ "d"
1045 // SPARC:#define __INT32_FMTi__ "i"
1046 // SPARC:#define __INT32_MAX__ 2147483647
1047 // SPARC:#define __INT32_TYPE__ int
1048 // SPARC:#define __INT64_C(c) c##LL
1049 // SPARC:#define __INT64_C_SUFFIX__ LL
1050 // SPARC:#define __INT64_FMTd__ "lld"
1051 // SPARC:#define __INT64_FMTi__ "lli"
1052 // SPARC:#define __INT64_MAX__ 9223372036854775807LL
1053 // SPARC:#define __INT64_TYPE__ long long int
1054 // SPARC:#define __INT8_C(c) c
1055 // SPARC:#define __INT8_C_SUFFIX__
1056 // SPARC:#define __INT8_FMTd__ "hhd"
1057 // SPARC:#define __INT8_FMTi__ "hhi"
1058 // SPARC:#define __INT8_MAX__ 127
1059 // SPARC:#define __INT8_TYPE__ signed char
1060 // SPARC:#define __INTMAX_C(c) c##LL
1061 // SPARC:#define __INTMAX_C_SUFFIX__ LL
1062 // SPARC:#define __INTMAX_FMTd__ "lld"
1063 // SPARC:#define __INTMAX_FMTi__ "lli"
1064 // SPARC:#define __INTMAX_MAX__ 9223372036854775807LL
1065 // SPARC:#define __INTMAX_TYPE__ long long int
1066 // SPARC:#define __INTMAX_WIDTH__ 64
1067 // SPARC-DEFAULT:#define __INTPTR_FMTd__ "d"
1068 // SPARC-DEFAULT:#define __INTPTR_FMTi__ "i"
1069 // SPARC-DEFAULT:#define __INTPTR_MAX__ 2147483647
1070 // SPARC-DEFAULT:#define __INTPTR_TYPE__ int
1071 // SPARC-NETOPENBSD:#define __INTPTR_FMTd__ "ld"
1072 // SPARC-NETOPENBSD:#define __INTPTR_FMTi__ "li"
1073 // SPARC-NETOPENBSD:#define __INTPTR_MAX__ 2147483647L
1074 // SPARC-NETOPENBSD:#define __INTPTR_TYPE__ long int
1075 // SPARC:#define __INTPTR_WIDTH__ 32
1076 // SPARC:#define __INT_FAST16_FMTd__ "hd"
1077 // SPARC:#define __INT_FAST16_FMTi__ "hi"
1078 // SPARC:#define __INT_FAST16_MAX__ 32767
1079 // SPARC:#define __INT_FAST16_TYPE__ short
1080 // SPARC:#define __INT_FAST32_FMTd__ "d"
1081 // SPARC:#define __INT_FAST32_FMTi__ "i"
1082 // SPARC:#define __INT_FAST32_MAX__ 2147483647
1083 // SPARC:#define __INT_FAST32_TYPE__ int
1084 // SPARC:#define __INT_FAST64_FMTd__ "lld"
1085 // SPARC:#define __INT_FAST64_FMTi__ "lli"
1086 // SPARC:#define __INT_FAST64_MAX__ 9223372036854775807LL
1087 // SPARC:#define __INT_FAST64_TYPE__ long long int
1088 // SPARC:#define __INT_FAST8_FMTd__ "hhd"
1089 // SPARC:#define __INT_FAST8_FMTi__ "hhi"
1090 // SPARC:#define __INT_FAST8_MAX__ 127
1091 // SPARC:#define __INT_FAST8_TYPE__ signed char
1092 // SPARC:#define __INT_LEAST16_FMTd__ "hd"
1093 // SPARC:#define __INT_LEAST16_FMTi__ "hi"
1094 // SPARC:#define __INT_LEAST16_MAX__ 32767
1095 // SPARC:#define __INT_LEAST16_TYPE__ short
1096 // SPARC:#define __INT_LEAST32_FMTd__ "d"
1097 // SPARC:#define __INT_LEAST32_FMTi__ "i"
1098 // SPARC:#define __INT_LEAST32_MAX__ 2147483647
1099 // SPARC:#define __INT_LEAST32_TYPE__ int
1100 // SPARC:#define __INT_LEAST64_FMTd__ "lld"
1101 // SPARC:#define __INT_LEAST64_FMTi__ "lli"
1102 // SPARC:#define __INT_LEAST64_MAX__ 9223372036854775807LL
1103 // SPARC:#define __INT_LEAST64_TYPE__ long long int
1104 // SPARC:#define __INT_LEAST8_FMTd__ "hhd"
1105 // SPARC:#define __INT_LEAST8_FMTi__ "hhi"
1106 // SPARC:#define __INT_LEAST8_MAX__ 127
1107 // SPARC:#define __INT_LEAST8_TYPE__ signed char
1108 // SPARC:#define __INT_MAX__ 2147483647
1109 // SPARC:#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
1110 // SPARC:#define __LDBL_DIG__ 15
1111 // SPARC:#define __LDBL_EPSILON__ 2.2204460492503131e-16L
1112 // SPARC:#define __LDBL_HAS_DENORM__ 1
1113 // SPARC:#define __LDBL_HAS_INFINITY__ 1
1114 // SPARC:#define __LDBL_HAS_QUIET_NAN__ 1
1115 // SPARC:#define __LDBL_MANT_DIG__ 53
1116 // SPARC:#define __LDBL_MAX_10_EXP__ 308
1117 // SPARC:#define __LDBL_MAX_EXP__ 1024
1118 // SPARC:#define __LDBL_MAX__ 1.7976931348623157e+308L
1119 // SPARC:#define __LDBL_MIN_10_EXP__ (-307)
1120 // SPARC:#define __LDBL_MIN_EXP__ (-1021)
1121 // SPARC:#define __LDBL_MIN__ 2.2250738585072014e-308L
1122 // SPARC:#define __LONG_LONG_MAX__ 9223372036854775807LL
1123 // SPARC:#define __LONG_MAX__ 2147483647L
1124 // SPARC-NOT:#define __LP64__
1125 // SPARC:#define __POINTER_WIDTH__ 32
1126 // SPARC-DEFAULT:#define __PTRDIFF_TYPE__ int
1127 // SPARC-NETOPENBSD:#define __PTRDIFF_TYPE__ long int
1128 // SPARC:#define __PTRDIFF_WIDTH__ 32
1129 // SPARC:#define __REGISTER_PREFIX__
1130 // SPARC:#define __SCHAR_MAX__ 127
1131 // SPARC:#define __SHRT_MAX__ 32767
1132 // SPARC:#define __SIG_ATOMIC_MAX__ 2147483647
1133 // SPARC:#define __SIG_ATOMIC_WIDTH__ 32
1134 // SPARC:#define __SIZEOF_DOUBLE__ 8
1135 // SPARC:#define __SIZEOF_FLOAT__ 4
1136 // SPARC:#define __SIZEOF_INT__ 4
1137 // SPARC:#define __SIZEOF_LONG_DOUBLE__ 8
1138 // SPARC:#define __SIZEOF_LONG_LONG__ 8
1139 // SPARC:#define __SIZEOF_LONG__ 4
1140 // SPARC:#define __SIZEOF_POINTER__ 4
1141 // SPARC:#define __SIZEOF_PTRDIFF_T__ 4
1142 // SPARC:#define __SIZEOF_SHORT__ 2
1143 // SPARC:#define __SIZEOF_SIZE_T__ 4
1144 // SPARC:#define __SIZEOF_WCHAR_T__ 4
1145 // SPARC:#define __SIZEOF_WINT_T__ 4
1146 // SPARC-DEFAULT:#define __SIZE_MAX__ 4294967295U
1147 // SPARC-DEFAULT:#define __SIZE_TYPE__ unsigned int
1148 // SPARC-NETOPENBSD:#define __SIZE_MAX__ 4294967295UL
1149 // SPARC-NETOPENBSD:#define __SIZE_TYPE__ long unsigned int
1150 // SPARC:#define __SIZE_WIDTH__ 32
1151 // SPARC-DEFAULT-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8U
1152 // SPARC:#define __UINT16_C(c) c
1153 // SPARC:#define __UINT16_C_SUFFIX__
1154 // SPARC:#define __UINT16_MAX__ 65535
1155 // SPARC:#define __UINT16_TYPE__ unsigned short
1156 // SPARC:#define __UINT32_C(c) c##U
1157 // SPARC:#define __UINT32_C_SUFFIX__ U
1158 // SPARC:#define __UINT32_MAX__ 4294967295U
1159 // SPARC:#define __UINT32_TYPE__ unsigned int
1160 // SPARC:#define __UINT64_C(c) c##ULL
1161 // SPARC:#define __UINT64_C_SUFFIX__ ULL
1162 // SPARC:#define __UINT64_MAX__ 18446744073709551615ULL
1163 // SPARC:#define __UINT64_TYPE__ long long unsigned int
1164 // SPARC:#define __UINT8_C(c) c
1165 // SPARC:#define __UINT8_C_SUFFIX__
1166 // SPARC:#define __UINT8_MAX__ 255
1167 // SPARC:#define __UINT8_TYPE__ unsigned char
1168 // SPARC:#define __UINTMAX_C(c) c##ULL
1169 // SPARC:#define __UINTMAX_C_SUFFIX__ ULL
1170 // SPARC:#define __UINTMAX_MAX__ 18446744073709551615ULL
1171 // SPARC:#define __UINTMAX_TYPE__ long long unsigned int
1172 // SPARC:#define __UINTMAX_WIDTH__ 64
1173 // SPARC-DEFAULT:#define __UINTPTR_MAX__ 4294967295U
1174 // SPARC-DEFAULT:#define __UINTPTR_TYPE__ unsigned int
1175 // SPARC-NETOPENBSD:#define __UINTPTR_MAX__ 4294967295UL
1176 // SPARC-NETOPENBSD:#define __UINTPTR_TYPE__ long unsigned int
1177 // SPARC:#define __UINTPTR_WIDTH__ 32
1178 // SPARC:#define __UINT_FAST16_MAX__ 65535
1179 // SPARC:#define __UINT_FAST16_TYPE__ unsigned short
1180 // SPARC:#define __UINT_FAST32_MAX__ 4294967295U
1181 // SPARC:#define __UINT_FAST32_TYPE__ unsigned int
1182 // SPARC:#define __UINT_FAST64_MAX__ 18446744073709551615ULL
1183 // SPARC:#define __UINT_FAST64_TYPE__ long long unsigned int
1184 // SPARC:#define __UINT_FAST8_MAX__ 255
1185 // SPARC:#define __UINT_FAST8_TYPE__ unsigned char
1186 // SPARC:#define __UINT_LEAST16_MAX__ 65535
1187 // SPARC:#define __UINT_LEAST16_TYPE__ unsigned short
1188 // SPARC:#define __UINT_LEAST32_MAX__ 4294967295U
1189 // SPARC:#define __UINT_LEAST32_TYPE__ unsigned int
1190 // SPARC:#define __UINT_LEAST64_MAX__ 18446744073709551615ULL
1191 // SPARC:#define __UINT_LEAST64_TYPE__ long long unsigned int
1192 // SPARC:#define __UINT_LEAST8_MAX__ 255
1193 // SPARC:#define __UINT_LEAST8_TYPE__ unsigned char
1194 // SPARC:#define __USER_LABEL_PREFIX__
1195 // SPARC:#define __VERSION__ "{{.*}}Clang{{.*}}
1196 // SPARC:#define __WCHAR_MAX__ 2147483647
1197 // SPARC:#define __WCHAR_TYPE__ int
1198 // SPARC:#define __WCHAR_WIDTH__ 32
1199 // SPARC:#define __WINT_TYPE__ int
1200 // SPARC:#define __WINT_WIDTH__ 32
1201 // SPARC:#define __sparc 1
1202 // SPARC:#define __sparc__ 1
1203 // SPARC:#define __sparcv8 1
1204 // SPARC:#define sparc 1
1205 
1206 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=tce-none-none < /dev/null | FileCheck -match-full-lines -check-prefix TCE %s
1207 // RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=tce-none-none < /dev/null | FileCheck -match-full-lines -check-prefix TCE -check-prefix TCE-CXX %s
1208 //
1209 // TCE-NOT:#define _LP64
1210 // TCE:#define __BIGGEST_ALIGNMENT__ 4
1211 // TCE:#define __BIG_ENDIAN__ 1
1212 // TCE:#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__
1213 // TCE:#define __CHAR16_TYPE__ unsigned short
1214 // TCE:#define __CHAR32_TYPE__ unsigned int
1215 // TCE:#define __CHAR_BIT__ 8
1216 // TCE:#define __DBL_DENORM_MIN__ 1.40129846e-45
1217 // TCE:#define __DBL_DIG__ 6
1218 // TCE:#define __DBL_EPSILON__ 1.19209290e-7
1219 // TCE:#define __DBL_HAS_DENORM__ 1
1220 // TCE:#define __DBL_HAS_INFINITY__ 1
1221 // TCE:#define __DBL_HAS_QUIET_NAN__ 1
1222 // TCE:#define __DBL_MANT_DIG__ 24
1223 // TCE:#define __DBL_MAX_10_EXP__ 38
1224 // TCE:#define __DBL_MAX_EXP__ 128
1225 // TCE:#define __DBL_MAX__ 3.40282347e+38
1226 // TCE:#define __DBL_MIN_10_EXP__ (-37)
1227 // TCE:#define __DBL_MIN_EXP__ (-125)
1228 // TCE:#define __DBL_MIN__ 1.17549435e-38
1229 // TCE:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
1230 // TCE:#define __FLT_DENORM_MIN__ 1.40129846e-45F
1231 // TCE:#define __FLT_DIG__ 6
1232 // TCE:#define __FLT_EPSILON__ 1.19209290e-7F
1233 // TCE:#define __FLT_HAS_DENORM__ 1
1234 // TCE:#define __FLT_HAS_INFINITY__ 1
1235 // TCE:#define __FLT_HAS_QUIET_NAN__ 1
1236 // TCE:#define __FLT_MANT_DIG__ 24
1237 // TCE:#define __FLT_MAX_10_EXP__ 38
1238 // TCE:#define __FLT_MAX_EXP__ 128
1239 // TCE:#define __FLT_MAX__ 3.40282347e+38F
1240 // TCE:#define __FLT_MIN_10_EXP__ (-37)
1241 // TCE:#define __FLT_MIN_EXP__ (-125)
1242 // TCE:#define __FLT_MIN__ 1.17549435e-38F
1243 // TCE:#define __FLT_RADIX__ 2
1244 // TCE:#define __INT16_C(c) c
1245 // TCE:#define __INT16_C_SUFFIX__
1246 // TCE:#define __INT16_FMTd__ "hd"
1247 // TCE:#define __INT16_FMTi__ "hi"
1248 // TCE:#define __INT16_MAX__ 32767
1249 // TCE:#define __INT16_TYPE__ short
1250 // TCE:#define __INT32_C(c) c
1251 // TCE:#define __INT32_C_SUFFIX__
1252 // TCE:#define __INT32_FMTd__ "d"
1253 // TCE:#define __INT32_FMTi__ "i"
1254 // TCE:#define __INT32_MAX__ 2147483647
1255 // TCE:#define __INT32_TYPE__ int
1256 // TCE:#define __INT8_C(c) c
1257 // TCE:#define __INT8_C_SUFFIX__
1258 // TCE:#define __INT8_FMTd__ "hhd"
1259 // TCE:#define __INT8_FMTi__ "hhi"
1260 // TCE:#define __INT8_MAX__ 127
1261 // TCE:#define __INT8_TYPE__ signed char
1262 // TCE:#define __INTMAX_C(c) c##L
1263 // TCE:#define __INTMAX_C_SUFFIX__ L
1264 // TCE:#define __INTMAX_FMTd__ "ld"
1265 // TCE:#define __INTMAX_FMTi__ "li"
1266 // TCE:#define __INTMAX_MAX__ 2147483647L
1267 // TCE:#define __INTMAX_TYPE__ long int
1268 // TCE:#define __INTMAX_WIDTH__ 32
1269 // TCE:#define __INTPTR_FMTd__ "d"
1270 // TCE:#define __INTPTR_FMTi__ "i"
1271 // TCE:#define __INTPTR_MAX__ 2147483647
1272 // TCE:#define __INTPTR_TYPE__ int
1273 // TCE:#define __INTPTR_WIDTH__ 32
1274 // TCE:#define __INT_FAST16_FMTd__ "hd"
1275 // TCE:#define __INT_FAST16_FMTi__ "hi"
1276 // TCE:#define __INT_FAST16_MAX__ 32767
1277 // TCE:#define __INT_FAST16_TYPE__ short
1278 // TCE:#define __INT_FAST32_FMTd__ "d"
1279 // TCE:#define __INT_FAST32_FMTi__ "i"
1280 // TCE:#define __INT_FAST32_MAX__ 2147483647
1281 // TCE:#define __INT_FAST32_TYPE__ int
1282 // TCE:#define __INT_FAST8_FMTd__ "hhd"
1283 // TCE:#define __INT_FAST8_FMTi__ "hhi"
1284 // TCE:#define __INT_FAST8_MAX__ 127
1285 // TCE:#define __INT_FAST8_TYPE__ signed char
1286 // TCE:#define __INT_LEAST16_FMTd__ "hd"
1287 // TCE:#define __INT_LEAST16_FMTi__ "hi"
1288 // TCE:#define __INT_LEAST16_MAX__ 32767
1289 // TCE:#define __INT_LEAST16_TYPE__ short
1290 // TCE:#define __INT_LEAST32_FMTd__ "d"
1291 // TCE:#define __INT_LEAST32_FMTi__ "i"
1292 // TCE:#define __INT_LEAST32_MAX__ 2147483647
1293 // TCE:#define __INT_LEAST32_TYPE__ int
1294 // TCE:#define __INT_LEAST8_FMTd__ "hhd"
1295 // TCE:#define __INT_LEAST8_FMTi__ "hhi"
1296 // TCE:#define __INT_LEAST8_MAX__ 127
1297 // TCE:#define __INT_LEAST8_TYPE__ signed char
1298 // TCE:#define __INT_MAX__ 2147483647
1299 // TCE:#define __LDBL_DENORM_MIN__ 1.40129846e-45L
1300 // TCE:#define __LDBL_DIG__ 6
1301 // TCE:#define __LDBL_EPSILON__ 1.19209290e-7L
1302 // TCE:#define __LDBL_HAS_DENORM__ 1
1303 // TCE:#define __LDBL_HAS_INFINITY__ 1
1304 // TCE:#define __LDBL_HAS_QUIET_NAN__ 1
1305 // TCE:#define __LDBL_MANT_DIG__ 24
1306 // TCE:#define __LDBL_MAX_10_EXP__ 38
1307 // TCE:#define __LDBL_MAX_EXP__ 128
1308 // TCE:#define __LDBL_MAX__ 3.40282347e+38L
1309 // TCE:#define __LDBL_MIN_10_EXP__ (-37)
1310 // TCE:#define __LDBL_MIN_EXP__ (-125)
1311 // TCE:#define __LDBL_MIN__ 1.17549435e-38L
1312 // TCE:#define __LONG_LONG_MAX__ 2147483647LL
1313 // TCE:#define __LONG_MAX__ 2147483647L
1314 // TCE-NOT:#define __LP64__
1315 // TCE:#define __POINTER_WIDTH__ 32
1316 // TCE:#define __PTRDIFF_TYPE__ int
1317 // TCE:#define __PTRDIFF_WIDTH__ 32
1318 // TCE:#define __SCHAR_MAX__ 127
1319 // TCE:#define __SHRT_MAX__ 32767
1320 // TCE:#define __SIG_ATOMIC_MAX__ 2147483647
1321 // TCE:#define __SIG_ATOMIC_WIDTH__ 32
1322 // TCE:#define __SIZEOF_DOUBLE__ 4
1323 // TCE:#define __SIZEOF_FLOAT__ 4
1324 // TCE:#define __SIZEOF_INT__ 4
1325 // TCE:#define __SIZEOF_LONG_DOUBLE__ 4
1326 // TCE:#define __SIZEOF_LONG_LONG__ 4
1327 // TCE:#define __SIZEOF_LONG__ 4
1328 // TCE:#define __SIZEOF_POINTER__ 4
1329 // TCE:#define __SIZEOF_PTRDIFF_T__ 4
1330 // TCE:#define __SIZEOF_SHORT__ 2
1331 // TCE:#define __SIZEOF_SIZE_T__ 4
1332 // TCE:#define __SIZEOF_WCHAR_T__ 4
1333 // TCE:#define __SIZEOF_WINT_T__ 4
1334 // TCE:#define __SIZE_MAX__ 4294967295U
1335 // TCE:#define __SIZE_TYPE__ unsigned int
1336 // TCE:#define __SIZE_WIDTH__ 32
1337 // TCE-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 4U
1338 // TCE:#define __TCE_V1__ 1
1339 // TCE:#define __TCE__ 1
1340 // TCE:#define __UINT16_C(c) c
1341 // TCE:#define __UINT16_C_SUFFIX__
1342 // TCE:#define __UINT16_MAX__ 65535
1343 // TCE:#define __UINT16_TYPE__ unsigned short
1344 // TCE:#define __UINT32_C(c) c##U
1345 // TCE:#define __UINT32_C_SUFFIX__ U
1346 // TCE:#define __UINT32_MAX__ 4294967295U
1347 // TCE:#define __UINT32_TYPE__ unsigned int
1348 // TCE:#define __UINT8_C(c) c
1349 // TCE:#define __UINT8_C_SUFFIX__
1350 // TCE:#define __UINT8_MAX__ 255
1351 // TCE:#define __UINT8_TYPE__ unsigned char
1352 // TCE:#define __UINTMAX_C(c) c##UL
1353 // TCE:#define __UINTMAX_C_SUFFIX__ UL
1354 // TCE:#define __UINTMAX_MAX__ 4294967295UL
1355 // TCE:#define __UINTMAX_TYPE__ long unsigned int
1356 // TCE:#define __UINTMAX_WIDTH__ 32
1357 // TCE:#define __UINTPTR_MAX__ 4294967295U
1358 // TCE:#define __UINTPTR_TYPE__ unsigned int
1359 // TCE:#define __UINTPTR_WIDTH__ 32
1360 // TCE:#define __UINT_FAST16_MAX__ 65535
1361 // TCE:#define __UINT_FAST16_TYPE__ unsigned short
1362 // TCE:#define __UINT_FAST32_MAX__ 4294967295U
1363 // TCE:#define __UINT_FAST32_TYPE__ unsigned int
1364 // TCE:#define __UINT_FAST8_MAX__ 255
1365 // TCE:#define __UINT_FAST8_TYPE__ unsigned char
1366 // TCE:#define __UINT_LEAST16_MAX__ 65535
1367 // TCE:#define __UINT_LEAST16_TYPE__ unsigned short
1368 // TCE:#define __UINT_LEAST32_MAX__ 4294967295U
1369 // TCE:#define __UINT_LEAST32_TYPE__ unsigned int
1370 // TCE:#define __UINT_LEAST8_MAX__ 255
1371 // TCE:#define __UINT_LEAST8_TYPE__ unsigned char
1372 // TCE:#define __USER_LABEL_PREFIX__
1373 // TCE:#define __WCHAR_MAX__ 2147483647
1374 // TCE:#define __WCHAR_TYPE__ int
1375 // TCE:#define __WCHAR_WIDTH__ 32
1376 // TCE:#define __WINT_TYPE__ int
1377 // TCE:#define __WINT_WIDTH__ 32
1378 // TCE:#define __tce 1
1379 // TCE:#define __tce__ 1
1380 // TCE:#define tce 1
1381 //
1382 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-scei-ps4 < /dev/null | FileCheck --match-full-lines --check-prefixes=PS4,PS4ONLY %s
1383 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-sie-ps5 < /dev/null | FileCheck --match-full-lines --check-prefixes=PS4,PS5ONLY %s
1384 //
1385 // PS4:#define _LP64 1
1386 // PS4:#define __BIGGEST_ALIGNMENT__ 32
1387 // PS4:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
1388 // PS4:#define __CHAR16_TYPE__ unsigned short
1389 // PS4:#define __CHAR32_TYPE__ unsigned int
1390 // PS4:#define __CHAR_BIT__ 8
1391 // PS4:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
1392 // PS4:#define __DBL_DIG__ 15
1393 // PS4:#define __DBL_EPSILON__ 2.2204460492503131e-16
1394 // PS4:#define __DBL_HAS_DENORM__ 1
1395 // PS4:#define __DBL_HAS_INFINITY__ 1
1396 // PS4:#define __DBL_HAS_QUIET_NAN__ 1
1397 // PS4:#define __DBL_MANT_DIG__ 53
1398 // PS4:#define __DBL_MAX_10_EXP__ 308
1399 // PS4:#define __DBL_MAX_EXP__ 1024
1400 // PS4:#define __DBL_MAX__ 1.7976931348623157e+308
1401 // PS4:#define __DBL_MIN_10_EXP__ (-307)
1402 // PS4:#define __DBL_MIN_EXP__ (-1021)
1403 // PS4:#define __DBL_MIN__ 2.2250738585072014e-308
1404 // PS4:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
1405 // PS4:#define __ELF__ 1
1406 // PS4:#define __FLT_DENORM_MIN__ 1.40129846e-45F
1407 // PS4:#define __FLT_DIG__ 6
1408 // PS4:#define __FLT_EPSILON__ 1.19209290e-7F
1409 // PS4:#define __FLT_HAS_DENORM__ 1
1410 // PS4:#define __FLT_HAS_INFINITY__ 1
1411 // PS4:#define __FLT_HAS_QUIET_NAN__ 1
1412 // PS4:#define __FLT_MANT_DIG__ 24
1413 // PS4:#define __FLT_MAX_10_EXP__ 38
1414 // PS4:#define __FLT_MAX_EXP__ 128
1415 // PS4:#define __FLT_MAX__ 3.40282347e+38F
1416 // PS4:#define __FLT_MIN_10_EXP__ (-37)
1417 // PS4:#define __FLT_MIN_EXP__ (-125)
1418 // PS4:#define __FLT_MIN__ 1.17549435e-38F
1419 // PS4:#define __FLT_RADIX__ 2
1420 // PS4:#define __FreeBSD__ 9
1421 // PS4:#define __FreeBSD_cc_version 900001
1422 // PS4:#define __INT16_TYPE__ short
1423 // PS4:#define __INT32_TYPE__ int
1424 // PS4:#define __INT64_C(c) c##L
1425 // PS4:#define __INT64_C_SUFFIX__ L
1426 // PS4:#define __INT64_TYPE__ long int
1427 // PS4:#define __INT8_TYPE__ signed char
1428 // PS4:#define __INTMAX_MAX__ 9223372036854775807L
1429 // PS4:#define __INTMAX_TYPE__ long int
1430 // PS4:#define __INTMAX_WIDTH__ 64
1431 // PS4:#define __INTPTR_TYPE__ long int
1432 // PS4:#define __INTPTR_WIDTH__ 64
1433 // PS4:#define __INT_MAX__ 2147483647
1434 // PS4:#define __KPRINTF_ATTRIBUTE__ 1
1435 // PS4:#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
1436 // PS4:#define __LDBL_DIG__ 18
1437 // PS4:#define __LDBL_EPSILON__ 1.08420217248550443401e-19L
1438 // PS4:#define __LDBL_HAS_DENORM__ 1
1439 // PS4:#define __LDBL_HAS_INFINITY__ 1
1440 // PS4:#define __LDBL_HAS_QUIET_NAN__ 1
1441 // PS4:#define __LDBL_MANT_DIG__ 64
1442 // PS4:#define __LDBL_MAX_10_EXP__ 4932
1443 // PS4:#define __LDBL_MAX_EXP__ 16384
1444 // PS4:#define __LDBL_MAX__ 1.18973149535723176502e+4932L
1445 // PS4:#define __LDBL_MIN_10_EXP__ (-4931)
1446 // PS4:#define __LDBL_MIN_EXP__ (-16381)
1447 // PS4:#define __LDBL_MIN__ 3.36210314311209350626e-4932L
1448 // PS4:#define __LITTLE_ENDIAN__ 1
1449 // PS4:#define __LONG_LONG_MAX__ 9223372036854775807LL
1450 // PS4:#define __LONG_MAX__ 9223372036854775807L
1451 // PS4:#define __LP64__ 1
1452 // PS4:#define __MMX__ 1
1453 // PS4:#define __NO_MATH_INLINES 1
1454 // PS4ONLY:#define __ORBIS__ 1
1455 // PS4:#define __POINTER_WIDTH__ 64
1456 // PS5ONLY:#define __PROSPERO__ 1
1457 // PS4:#define __PTRDIFF_MAX__ 9223372036854775807L
1458 // PS4:#define __PTRDIFF_TYPE__ long int
1459 // PS4:#define __PTRDIFF_WIDTH__ 64
1460 // PS4:#define __REGISTER_PREFIX__
1461 // PS4:#define __SCE__ 1
1462 // PS4:#define __SCHAR_MAX__ 127
1463 // PS4:#define __SHRT_MAX__ 32767
1464 // PS4:#define __SIG_ATOMIC_MAX__ 2147483647
1465 // PS4:#define __SIG_ATOMIC_WIDTH__ 32
1466 // PS4:#define __SIZEOF_DOUBLE__ 8
1467 // PS4:#define __SIZEOF_FLOAT__ 4
1468 // PS4:#define __SIZEOF_INT__ 4
1469 // PS4:#define __SIZEOF_LONG_DOUBLE__ 16
1470 // PS4:#define __SIZEOF_LONG_LONG__ 8
1471 // PS4:#define __SIZEOF_LONG__ 8
1472 // PS4:#define __SIZEOF_POINTER__ 8
1473 // PS4:#define __SIZEOF_PTRDIFF_T__ 8
1474 // PS4:#define __SIZEOF_SHORT__ 2
1475 // PS4:#define __SIZEOF_SIZE_T__ 8
1476 // PS4:#define __SIZEOF_WCHAR_T__ 2
1477 // PS4:#define __SIZEOF_WINT_T__ 4
1478 // PS4:#define __SIZE_TYPE__ long unsigned int
1479 // PS4:#define __SIZE_WIDTH__ 64
1480 // PS4:#define __SSE2_MATH__ 1
1481 // PS4:#define __SSE2__ 1
1482 // PS4:#define __SSE_MATH__ 1
1483 // PS4:#define __SSE__ 1
1484 // PS4ONLY:#define __STDC_VERSION__ 199901L
1485 // PS5ONLY:#define __STDC_VERSION__ 201710L
1486 // PS4:#define __UINTMAX_TYPE__ long unsigned int
1487 // PS4:#define __USER_LABEL_PREFIX__
1488 // PS4:#define __WCHAR_MAX__ 65535
1489 // PS4:#define __WCHAR_TYPE__ unsigned short
1490 // PS4:#define __WCHAR_UNSIGNED__ 1
1491 // PS4:#define __WCHAR_WIDTH__ 16
1492 // PS4:#define __WINT_TYPE__ int
1493 // PS4:#define __WINT_WIDTH__ 32
1494 // PS4:#define __amd64 1
1495 // PS4:#define __amd64__ 1
1496 // PS4:#define __unix 1
1497 // PS4:#define __unix__ 1
1498 // PS4:#define __x86_64 1
1499 // PS4:#define __x86_64__ 1
1500 // PS4:#define unix 1
1501 //
1502 // RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=x86_64-scei-ps4 < /dev/null | FileCheck --match-full-lines --check-prefix PS4-CXX %s
1503 // RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=x86_64-sie-ps5 < /dev/null | FileCheck --match-full-lines --check-prefix PS4-CXX %s
1504 // PS4-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 32UL
1505 //
1506 // RUN: %clang_cc1 -E -dM -triple=x86_64-pc-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix X86-64-DECLSPEC-GNU %s
1507 // X86-64-DECLSPEC-GNU: #define __declspec{{.*}} __attribute__{{.*}}
1508 //
1509 // RUN: %clang_cc1 -E -dM -fms-extensions -triple=x86_64-unknown-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix X86-64-DECLSPEC-MS %s
1510 // RUN: %clang_cc1 -E -dM -fdeclspec -triple=x86_64-unknown-mingw32 < /dev/null | FileCheck -match-full-lines -check-prefix X86-64-DECLSPEC-MS %s
1511 // X86-64-DECLSPEC-MS: #define __declspec{{.*}} __declspec{{.*}}
1512 //
1513 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=sparc64-none-none < /dev/null | FileCheck -match-full-lines -check-prefix SPARCV9 %s
1514 // SPARCV9:#define __BIGGEST_ALIGNMENT__ 16
1515 // SPARCV9:#define __INT64_TYPE__ long int
1516 // SPARCV9:#define __INTMAX_C(c) c##L
1517 // SPARCV9:#define __INTMAX_C_SUFFIX__ L
1518 // SPARCV9:#define __INTMAX_TYPE__ long int
1519 // SPARCV9:#define __INTPTR_TYPE__ long int
1520 // SPARCV9:#define __LONG_MAX__ 9223372036854775807L
1521 // SPARCV9:#define __LP64__ 1
1522 // SPARCV9:#define __SIZEOF_LONG__ 8
1523 // SPARCV9:#define __SIZEOF_POINTER__ 8
1524 // SPARCV9:#define __UINTPTR_TYPE__ long unsigned int
1525 //
1526 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=sparc64-none-openbsd < /dev/null | FileCheck -match-full-lines -check-prefix SPARC64-OBSD %s
1527 // SPARC64-OBSD:#define __INT64_TYPE__ long long int
1528 // SPARC64-OBSD:#define __INTMAX_C(c) c##LL
1529 // SPARC64-OBSD:#define __INTMAX_C_SUFFIX__ LL
1530 // SPARC64-OBSD:#define __INTMAX_TYPE__ long long int
1531 // SPARC64-OBSD:#define __UINTMAX_C(c) c##ULL
1532 // SPARC64-OBSD:#define __UINTMAX_C_SUFFIX__ ULL
1533 // SPARC64-OBSD:#define __UINTMAX_TYPE__ long long unsigned int
1534 //
1535 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-pc-kfreebsd-gnu < /dev/null | FileCheck -match-full-lines -check-prefix KFREEBSD-DEF %s
1536 // KFREEBSD-DEF:#define __FreeBSD_kernel__ 1
1537 // KFREEBSD-DEF:#define __GLIBC__ 1
1538 //
1539 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=i686-pc-kfreebsd-gnu < /dev/null | FileCheck -match-full-lines -check-prefix KFREEBSDI686-DEF %s
1540 // KFREEBSDI686-DEF:#define __FreeBSD_kernel__ 1
1541 // KFREEBSDI686-DEF:#define __GLIBC__ 1
1542 //
1543 // RUN: %clang_cc1 -x c++ -triple i686-pc-linux-gnu -fobjc-runtime=gcc -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GNUSOURCE %s
1544 // RUN: %clang_cc1 -x c++ -triple sparc-rtems-elf -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GNUSOURCE %s
1545 // GNUSOURCE:#define _GNU_SOURCE 1
1546 //
1547 // Check that the GNUstep Objective-C ABI defines exist and are clamped at the
1548 // highest supported version.
1549 // RUN: %clang_cc1 -x objective-c -triple i386-unknown-freebsd -fobjc-runtime=gnustep-1.9 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GNUSTEP1 %s
1550 // GNUSTEP1:#define __OBJC_GNUSTEP_RUNTIME_ABI__ 18
1551 // RUN: %clang_cc1 -x objective-c -triple i386-unknown-freebsd -fobjc-runtime=gnustep-2.5 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GNUSTEP2 %s
1552 // GNUSTEP2:#define __OBJC_GNUSTEP_RUNTIME_ABI__ 20
1553 //
1554 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++98 -fno-rtti -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix NORTTI %s
1555 // NORTTI: #define __GXX_ABI_VERSION {{.*}}
1556 // NORTTI-NOT:#define __GXX_RTTI
1557 // NORTTI:#define __STDC__ 1
1558 //
1559 // RUN: %clang_cc1 -triple arm-linux-androideabi -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix ANDROID %s
1560 // ANDROID-NOT:#define __ANDROID_API__
1561 // ANDROID-NOT:#define __ANDROID_MIN_SDK_VERSION__
1562 // ANDROID:#define __ANDROID__ 1
1563 // ANDROID-NOT:#define __gnu_linux__
1564 //
1565 // RUN: %clang_cc1 -x c++ -triple i686-linux-android -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix I386-ANDROID-CXX %s
1566 // I386-ANDROID-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8U
1567 //
1568 // RUN: %clang_cc1 -x c++ -triple x86_64-linux-android -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix X86_64-ANDROID-CXX %s
1569 // X86_64-ANDROID-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL
1570 //
1571 // RUN: %clang_cc1 -triple arm-linux-androideabi20 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix ANDROID20 %s
1572 // ANDROID20:#define __ANDROID_API__ __ANDROID_MIN_SDK_VERSION__
1573 // ANDROID20:#define __ANDROID_MIN_SDK_VERSION__ 20
1574 // ANDROID20:#define __ANDROID__ 1
1575 // ANDROID-NOT:#define __gnu_linux__
1576 //
1577 // RUN: %clang_cc1 -triple lanai-unknown-unknown -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix LANAI %s
1578 // LANAI: #define __lanai__ 1
1579 //
1580 // RUN: %clang_cc1 -triple=aarch64-unknown-haiku -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix HAIKU %s
1581 // RUN: %clang_cc1 -triple=arm-unknown-haiku -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix HAIKU %s
1582 // RUN: %clang_cc1 -triple=riscv64-unknown-haiku -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix HAIKU %s
1583 // RUN: %clang_cc1 -triple=x86_64-unknown-haiku -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix HAIKU %s
1584 // RUN: %clang_cc1 -triple=i386-unknown-haiku -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix HAIKU %s
1585 // HAIKU: #define __HAIKU__ 1
1586 //
1587 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=amd64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s
1588 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=aarch64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s
1589 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=arm-unknown-openbsd6.1-gnueabi < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s
1590 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s
1591 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s
1592 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s
1593 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64le-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s
1594 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s
1595 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=mips64el-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s
1596 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=sparc64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s
1597 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=riscv64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s
1598 // OPENBSD:#define __ELF__ 1
1599 // OPENBSD:#define __INT16_TYPE__ short
1600 // OPENBSD:#define __INT32_TYPE__ int
1601 // OPENBSD:#define __INT64_TYPE__ long long int
1602 // OPENBSD:#define __INT8_TYPE__ signed char
1603 // OPENBSD:#define __INTMAX_TYPE__ long long int
1604 // OPENBSD:#define __INTPTR_TYPE__ long int
1605 // OPENBSD:#define __OpenBSD__ 1
1606 // OPENBSD:#define __PTRDIFF_TYPE__ long int
1607 // OPENBSD:#define __SIZE_TYPE__ long unsigned int
1608 // OPENBSD:#define __UINT16_TYPE__ unsigned short
1609 // OPENBSD:#define __UINT32_TYPE__ unsigned int
1610 // OPENBSD:#define __UINT64_TYPE__ long long unsigned int
1611 // OPENBSD:#define __UINT8_TYPE__ unsigned char
1612 // OPENBSD:#define __UINTMAX_TYPE__ long long unsigned int
1613 // OPENBSD:#define __UINTPTR_TYPE__ long unsigned int
1614 // OPENBSD:#define __WCHAR_TYPE__ int
1615 // OPENBSD:#define __WINT_TYPE__ int
1616 //
1617 // RUN: %clang_cc1 -x c -std=c11 -E -dM -ffreestanding -triple=amd64-unknown-openbsd < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD-STDC %s
1618 // RUN: %clang_cc1 -x c -std=gnu11 -E -dM -ffreestanding -triple=amd64-unknown-openbsd < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD-STDC %s
1619 // RUN: %clang_cc1 -x c -std=c17 -E -dM -ffreestanding -triple=amd64-unknown-openbsd < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD-STDC %s
1620 // OPENBSD-STDC:#define __STDC_NO_THREADS__ 1
1621 //
1622 // RUN: %clang_cc1 -x c -std=c99 -E -dM -ffreestanding -triple=amd64-unknown-openbsd < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD-STDC-N %s
1623 // OPENBSD-STDC-N-NOT:#define __STDC_NO_THREADS__ 1
1624 //
1625 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=xcore-none-none < /dev/null | FileCheck -match-full-lines -check-prefix XCORE %s
1626 // XCORE:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
1627 // XCORE:#define __LITTLE_ENDIAN__ 1
1628 // XCORE:#define __XS1B__ 1
1629 // XCORE:#define __xcore__ 1
1630 //
1631 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=wasm32-unknown-unknown \
1632 // RUN:   < /dev/null \
1633 // RUN:   | FileCheck -match-full-lines -check-prefixes=WEBASSEMBLY,WEBASSEMBLY32 %s
1634 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=wasm64-unknown-unknown \
1635 // RUN:   < /dev/null \
1636 // RUN:   | FileCheck -match-full-lines -check-prefixes=WEBASSEMBLY,WEBASSEMBLY64 %s
1637 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=wasm32-emscripten \
1638 // RUN:   < /dev/null \
1639 // RUN:   | FileCheck -match-full-lines -check-prefixes=WEBASSEMBLY,WEBASSEMBLY32,EMSCRIPTEN %s
1640 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=wasm32-emscripten -pthread -target-feature +atomics -target-feature +bulk-memory \
1641 // RUN:   < /dev/null \
1642 // RUN:   | FileCheck -match-full-lines -check-prefixes=WEBASSEMBLY,WEBASSEMBLY32,EMSCRIPTEN,EMSCRIPTEN-THREADS %s
1643 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=wasm64-emscripten \
1644 // RUN:   < /dev/null \
1645 // RUN:   | FileCheck -match-full-lines -check-prefixes=WEBASSEMBLY,WEBASSEMBLY64,EMSCRIPTEN %s
1646 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=wasm32-wasi \
1647 // RUN:   < /dev/null \
1648 // RUN:   | FileCheck -match-full-lines -check-prefixes=WEBASSEMBLY,WEBASSEMBLY32,WEBASSEMBLY-WASI %s
1649 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=wasm64-wasi \
1650 // RUN:   < /dev/null \
1651 // RUN:   | FileCheck -match-full-lines -check-prefixes=WEBASSEMBLY,WEBASSEMBLY64,WEBASSEMBLY-WASI %s
1652 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=wasm32-unknown-unknown -x c++ \
1653 // RUN:   < /dev/null \
1654 // RUN:   | FileCheck -match-full-lines -check-prefixes=WEBASSEMBLY-CXX %s
1655 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=wasm32-unknown-unknown -x c++ -pthread -target-feature +atomics -target-feature +bulk-memory \
1656 // RUN:   < /dev/null \
1657 // RUN:   | FileCheck -match-full-lines -check-prefixes=WEBASSEMBLY-CXX-ATOMICS %s
1658 //
1659 // WEBASSEMBLY32:#define _ILP32 1
1660 // WEBASSEMBLY32-NOT:#define _LP64
1661 // WEBASSEMBLY64-NOT:#define _ILP32
1662 // WEBASSEMBLY64:#define _LP64 1
1663 // EMSCRIPTEN-THREADS:#define _REENTRANT 1
1664 // WEBASSEMBLY-NEXT:#define __ATOMIC_ACQUIRE 2
1665 // WEBASSEMBLY-NEXT:#define __ATOMIC_ACQ_REL 4
1666 // WEBASSEMBLY-NEXT:#define __ATOMIC_CONSUME 1
1667 // WEBASSEMBLY-NEXT:#define __ATOMIC_RELAXED 0
1668 // WEBASSEMBLY-NEXT:#define __ATOMIC_RELEASE 3
1669 // WEBASSEMBLY-NEXT:#define __ATOMIC_SEQ_CST 5
1670 // WEBASSEMBLY-NEXT:#define __BIGGEST_ALIGNMENT__ 16
1671 // WEBASSEMBLY-NEXT:#define __BITINT_MAXWIDTH__ 128
1672 // WEBASSEMBLY-NEXT:#define __BOOL_WIDTH__ 1
1673 // WEBASSEMBLY-NEXT:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
1674 // WEBASSEMBLY-NEXT:#define __CHAR16_TYPE__ unsigned short
1675 // WEBASSEMBLY-NEXT:#define __CHAR32_TYPE__ unsigned int
1676 // WEBASSEMBLY-NEXT:#define __CHAR_BIT__ 8
1677 // WEBASSEMBLY-NOT:#define __CHAR_UNSIGNED__
1678 // WEBASSEMBLY-NEXT:#define __CLANG_ATOMIC_BOOL_LOCK_FREE 2
1679 // WEBASSEMBLY-NEXT:#define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2
1680 // WEBASSEMBLY-NEXT:#define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2
1681 // WEBASSEMBLY-NEXT:#define __CLANG_ATOMIC_CHAR_LOCK_FREE 2
1682 // WEBASSEMBLY-NEXT:#define __CLANG_ATOMIC_INT_LOCK_FREE 2
1683 // WEBASSEMBLY-NEXT:#define __CLANG_ATOMIC_LLONG_LOCK_FREE 2
1684 // WEBASSEMBLY-NEXT:#define __CLANG_ATOMIC_LONG_LOCK_FREE 2
1685 // WEBASSEMBLY-NEXT:#define __CLANG_ATOMIC_POINTER_LOCK_FREE 2
1686 // WEBASSEMBLY-NEXT:#define __CLANG_ATOMIC_SHORT_LOCK_FREE 2
1687 // WEBASSEMBLY-NEXT:#define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2
1688 // WEBASSEMBLY-NEXT:#define __CONSTANT_CFSTRINGS__ 1
1689 // WEBASSEMBLY-NEXT:#define __DBL_DECIMAL_DIG__ 17
1690 // WEBASSEMBLY-NEXT:#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
1691 // WEBASSEMBLY-NEXT:#define __DBL_DIG__ 15
1692 // WEBASSEMBLY-NEXT:#define __DBL_EPSILON__ 2.2204460492503131e-16
1693 // WEBASSEMBLY-NEXT:#define __DBL_HAS_DENORM__ 1
1694 // WEBASSEMBLY-NEXT:#define __DBL_HAS_INFINITY__ 1
1695 // WEBASSEMBLY-NEXT:#define __DBL_HAS_QUIET_NAN__ 1
1696 // WEBASSEMBLY-NEXT:#define __DBL_MANT_DIG__ 53
1697 // WEBASSEMBLY-NEXT:#define __DBL_MAX_10_EXP__ 308
1698 // WEBASSEMBLY-NEXT:#define __DBL_MAX_EXP__ 1024
1699 // WEBASSEMBLY-NEXT:#define __DBL_MAX__ 1.7976931348623157e+308
1700 // WEBASSEMBLY-NEXT:#define __DBL_MIN_10_EXP__ (-307)
1701 // WEBASSEMBLY-NEXT:#define __DBL_MIN_EXP__ (-1021)
1702 // WEBASSEMBLY-NEXT:#define __DBL_MIN__ 2.2250738585072014e-308
1703 // WEBASSEMBLY-NEXT:#define __DBL_NORM_MAX__ 1.7976931348623157e+308
1704 // WEBASSEMBLY-NEXT:#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
1705 // WEBASSEMBLY-NOT:#define __ELF__
1706 // EMSCRIPTEN-THREADS-NEXT:#define __EMSCRIPTEN_PTHREADS__ 1
1707 // EMSCRIPTEN-NEXT:#define __EMSCRIPTEN__ 1
1708 // WEBASSEMBLY-NEXT:#define __FINITE_MATH_ONLY__ 0
1709 // WEBASSEMBLY-NEXT:#define __FLOAT128__ 1
1710 // WEBASSEMBLY-NOT:#define __FLT16_DECIMAL_DIG__
1711 // WEBASSEMBLY-NOT:#define __FLT16_DENORM_MIN__
1712 // WEBASSEMBLY-NOT:#define __FLT16_DIG__
1713 // WEBASSEMBLY-NOT:#define __FLT16_EPSILON__
1714 // WEBASSEMBLY-NOT:#define __FLT16_HAS_DENORM__
1715 // WEBASSEMBLY-NOT:#define __FLT16_HAS_INFINITY__
1716 // WEBASSEMBLY-NOT:#define __FLT16_HAS_QUIET_NAN__
1717 // WEBASSEMBLY-NOT:#define __FLT16_MANT_DIG__
1718 // WEBASSEMBLY-NOT:#define __FLT16_MAX_10_EXP__
1719 // WEBASSEMBLY-NOT:#define __FLT16_MAX_EXP__
1720 // WEBASSEMBLY-NOT:#define __FLT16_MAX__
1721 // WEBASSEMBLY-NOT:#define __FLT16_MIN_10_EXP__
1722 // WEBASSEMBLY-NOT:#define __FLT16_MIN_EXP__
1723 // WEBASSEMBLY-NOT:#define __FLT16_MIN__
1724 // WEBASSEMBLY-NOT:#define __FLT16_NORM_MAX__
1725 // WEBASSEMBLY-NEXT:#define __FLT_DECIMAL_DIG__ 9
1726 // WEBASSEMBLY-NEXT:#define __FLT_DENORM_MIN__ 1.40129846e-45F
1727 // WEBASSEMBLY-NEXT:#define __FLT_DIG__ 6
1728 // WEBASSEMBLY-NEXT:#define __FLT_EPSILON__ 1.19209290e-7F
1729 // WEBASSEMBLY-NEXT:#define __FLT_HAS_DENORM__ 1
1730 // WEBASSEMBLY-NEXT:#define __FLT_HAS_INFINITY__ 1
1731 // WEBASSEMBLY-NEXT:#define __FLT_HAS_QUIET_NAN__ 1
1732 // WEBASSEMBLY-NEXT:#define __FLT_MANT_DIG__ 24
1733 // WEBASSEMBLY-NEXT:#define __FLT_MAX_10_EXP__ 38
1734 // WEBASSEMBLY-NEXT:#define __FLT_MAX_EXP__ 128
1735 // WEBASSEMBLY-NEXT:#define __FLT_MAX__ 3.40282347e+38F
1736 // WEBASSEMBLY-NEXT:#define __FLT_MIN_10_EXP__ (-37)
1737 // WEBASSEMBLY-NEXT:#define __FLT_MIN_EXP__ (-125)
1738 // WEBASSEMBLY-NEXT:#define __FLT_MIN__ 1.17549435e-38F
1739 // WEBASSEMBLY-NEXT:#define __FLT_NORM_MAX__ 3.40282347e+38F
1740 // WEBASSEMBLY-NEXT:#define __FLT_RADIX__ 2
1741 // WEBASSEMBLY-NEXT:#define __FPCLASS_NEGINF 0x0004
1742 // WEBASSEMBLY-NEXT:#define __FPCLASS_NEGNORMAL 0x0008
1743 // WEBASSEMBLY-NEXT:#define __FPCLASS_NEGSUBNORMAL 0x0010
1744 // WEBASSEMBLY-NEXT:#define __FPCLASS_NEGZERO 0x0020
1745 // WEBASSEMBLY-NEXT:#define __FPCLASS_POSINF 0x0200
1746 // WEBASSEMBLY-NEXT:#define __FPCLASS_POSNORMAL 0x0100
1747 // WEBASSEMBLY-NEXT:#define __FPCLASS_POSSUBNORMAL 0x0080
1748 // WEBASSEMBLY-NEXT:#define __FPCLASS_POSZERO 0x0040
1749 // WEBASSEMBLY-NEXT:#define __FPCLASS_QNAN 0x0002
1750 // WEBASSEMBLY-NEXT:#define __FPCLASS_SNAN 0x0001
1751 // WEBASSEMBLY-NEXT:#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
1752 // WEBASSEMBLY-NEXT:#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
1753 // WEBASSEMBLY-NEXT:#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
1754 // WEBASSEMBLY-NEXT:#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
1755 // WEBASSEMBLY-NEXT:#define __GCC_ATOMIC_INT_LOCK_FREE 2
1756 // WEBASSEMBLY-NEXT:#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
1757 // WEBASSEMBLY-NEXT:#define __GCC_ATOMIC_LONG_LOCK_FREE 2
1758 // WEBASSEMBLY-NEXT:#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
1759 // WEBASSEMBLY-NEXT:#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
1760 // WEBASSEMBLY-NEXT:#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
1761 // WEBASSEMBLY-NEXT:#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
1762 // WEBASSEMBLY-NEXT:#define __GCC_CONSTRUCTIVE_SIZE {{.+}}
1763 // WEBASSEMBLY-NEXT:#define __GCC_DESTRUCTIVE_SIZE {{.+}}
1764 // WEBASSEMBLY-NEXT:#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
1765 // WEBASSEMBLY-NEXT:#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
1766 // WEBASSEMBLY-NEXT:#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
1767 // WEBASSEMBLY-NEXT:#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
1768 // WEBASSEMBLY-NEXT:#define __GNUC_MINOR__ {{.*}}
1769 // WEBASSEMBLY-NEXT:#define __GNUC_PATCHLEVEL__ {{.*}}
1770 // WEBASSEMBLY-NEXT:#define __GNUC_STDC_INLINE__ 1
1771 // WEBASSEMBLY-NEXT:#define __GNUC__ {{.*}}
1772 // WEBASSEMBLY-NEXT:#define __GXX_ABI_VERSION 1002
1773 // WEBASSEMBLY32-NEXT:#define __ILP32__ 1
1774 // WEBASSEMBLY64-NOT:#define __ILP32__
1775 // WEBASSEMBLY-NEXT:#define __INT16_C(c) c
1776 // WEBASSEMBLY-NEXT:#define __INT16_C_SUFFIX__
1777 // WEBASSEMBLY-NEXT:#define __INT16_FMTd__ "hd"
1778 // WEBASSEMBLY-NEXT:#define __INT16_FMTi__ "hi"
1779 // WEBASSEMBLY-NEXT:#define __INT16_MAX__ 32767
1780 // WEBASSEMBLY-NEXT:#define __INT16_TYPE__ short
1781 // WEBASSEMBLY-NEXT:#define __INT32_C(c) c
1782 // WEBASSEMBLY-NEXT:#define __INT32_C_SUFFIX__
1783 // WEBASSEMBLY-NEXT:#define __INT32_FMTd__ "d"
1784 // WEBASSEMBLY-NEXT:#define __INT32_FMTi__ "i"
1785 // WEBASSEMBLY-NEXT:#define __INT32_MAX__ 2147483647
1786 // WEBASSEMBLY-NEXT:#define __INT32_TYPE__ int
1787 // WEBASSEMBLY-NEXT:#define __INT64_C(c) c##LL
1788 // WEBASSEMBLY-NEXT:#define __INT64_C_SUFFIX__ LL
1789 // WEBASSEMBLY-NEXT:#define __INT64_FMTd__ "lld"
1790 // WEBASSEMBLY-NEXT:#define __INT64_FMTi__ "lli"
1791 // WEBASSEMBLY-NEXT:#define __INT64_MAX__ 9223372036854775807LL
1792 // WEBASSEMBLY-NEXT:#define __INT64_TYPE__ long long int
1793 // WEBASSEMBLY-NEXT:#define __INT8_C(c) c
1794 // WEBASSEMBLY-NEXT:#define __INT8_C_SUFFIX__
1795 // WEBASSEMBLY-NEXT:#define __INT8_FMTd__ "hhd"
1796 // WEBASSEMBLY-NEXT:#define __INT8_FMTi__ "hhi"
1797 // WEBASSEMBLY-NEXT:#define __INT8_MAX__ 127
1798 // WEBASSEMBLY-NEXT:#define __INT8_TYPE__ signed char
1799 // WEBASSEMBLY-NEXT:#define __INTMAX_C(c) c##LL
1800 // WEBASSEMBLY-NEXT:#define __INTMAX_C_SUFFIX__ LL
1801 // WEBASSEMBLY-NEXT:#define __INTMAX_FMTd__ "lld"
1802 // WEBASSEMBLY-NEXT:#define __INTMAX_FMTi__ "lli"
1803 // WEBASSEMBLY-NEXT:#define __INTMAX_MAX__ 9223372036854775807LL
1804 // WEBASSEMBLY-NEXT:#define __INTMAX_TYPE__ long long int
1805 // WEBASSEMBLY-NEXT:#define __INTMAX_WIDTH__ 64
1806 // WEBASSEMBLY-NEXT:#define __INTPTR_FMTd__ "ld"
1807 // WEBASSEMBLY-NEXT:#define __INTPTR_FMTi__ "li"
1808 // WEBASSEMBLY32-NEXT:#define __INTPTR_MAX__ 2147483647L
1809 // WEBASSEMBLY64-NEXT:#define __INTPTR_MAX__ 9223372036854775807L
1810 // WEBASSEMBLY-NEXT:#define __INTPTR_TYPE__ long int
1811 // WEBASSEMBLY32-NEXT:#define __INTPTR_WIDTH__ 32
1812 // WEBASSEMBLY64-NEXT:#define __INTPTR_WIDTH__ 64
1813 // WEBASSEMBLY-NEXT:#define __INT_FAST16_FMTd__ "hd"
1814 // WEBASSEMBLY-NEXT:#define __INT_FAST16_FMTi__ "hi"
1815 // WEBASSEMBLY-NEXT:#define __INT_FAST16_MAX__ 32767
1816 // WEBASSEMBLY-NEXT:#define __INT_FAST16_TYPE__ short
1817 // WEBASSEMBLY-NEXT:#define __INT_FAST16_WIDTH__ 16
1818 // WEBASSEMBLY-NEXT:#define __INT_FAST32_FMTd__ "d"
1819 // WEBASSEMBLY-NEXT:#define __INT_FAST32_FMTi__ "i"
1820 // WEBASSEMBLY-NEXT:#define __INT_FAST32_MAX__ 2147483647
1821 // WEBASSEMBLY-NEXT:#define __INT_FAST32_TYPE__ int
1822 // WEBASSEMBLY-NEXT:#define __INT_FAST32_WIDTH__ 32
1823 // WEBASSEMBLY-NEXT:#define __INT_FAST64_FMTd__ "lld"
1824 // WEBASSEMBLY-NEXT:#define __INT_FAST64_FMTi__ "lli"
1825 // WEBASSEMBLY-NEXT:#define __INT_FAST64_MAX__ 9223372036854775807LL
1826 // WEBASSEMBLY-NEXT:#define __INT_FAST64_TYPE__ long long int
1827 // WEBASSEMBLY-NEXT:#define __INT_FAST64_WIDTH__ 64
1828 // WEBASSEMBLY-NEXT:#define __INT_FAST8_FMTd__ "hhd"
1829 // WEBASSEMBLY-NEXT:#define __INT_FAST8_FMTi__ "hhi"
1830 // WEBASSEMBLY-NEXT:#define __INT_FAST8_MAX__ 127
1831 // WEBASSEMBLY-NEXT:#define __INT_FAST8_TYPE__ signed char
1832 // WEBASSEMBLY-NEXT:#define __INT_FAST8_WIDTH__ 8
1833 // WEBASSEMBLY-NEXT:#define __INT_LEAST16_FMTd__ "hd"
1834 // WEBASSEMBLY-NEXT:#define __INT_LEAST16_FMTi__ "hi"
1835 // WEBASSEMBLY-NEXT:#define __INT_LEAST16_MAX__ 32767
1836 // WEBASSEMBLY-NEXT:#define __INT_LEAST16_TYPE__ short
1837 // WEBASSEMBLY-NEXT:#define __INT_LEAST16_WIDTH__ 16
1838 // WEBASSEMBLY-NEXT:#define __INT_LEAST32_FMTd__ "d"
1839 // WEBASSEMBLY-NEXT:#define __INT_LEAST32_FMTi__ "i"
1840 // WEBASSEMBLY-NEXT:#define __INT_LEAST32_MAX__ 2147483647
1841 // WEBASSEMBLY-NEXT:#define __INT_LEAST32_TYPE__ int
1842 // WEBASSEMBLY-NEXT:#define __INT_LEAST32_WIDTH__ 32
1843 // WEBASSEMBLY-NEXT:#define __INT_LEAST64_FMTd__ "lld"
1844 // WEBASSEMBLY-NEXT:#define __INT_LEAST64_FMTi__ "lli"
1845 // WEBASSEMBLY-NEXT:#define __INT_LEAST64_MAX__ 9223372036854775807LL
1846 // WEBASSEMBLY-NEXT:#define __INT_LEAST64_TYPE__ long long int
1847 // WEBASSEMBLY-NEXT:#define __INT_LEAST64_WIDTH__ 64
1848 // WEBASSEMBLY-NEXT:#define __INT_LEAST8_FMTd__ "hhd"
1849 // WEBASSEMBLY-NEXT:#define __INT_LEAST8_FMTi__ "hhi"
1850 // WEBASSEMBLY-NEXT:#define __INT_LEAST8_MAX__ 127
1851 // WEBASSEMBLY-NEXT:#define __INT_LEAST8_TYPE__ signed char
1852 // WEBASSEMBLY-NEXT:#define __INT_LEAST8_WIDTH__ 8
1853 // WEBASSEMBLY-NEXT:#define __INT_MAX__ 2147483647
1854 // WEBASSEMBLY-NEXT:#define __INT_WIDTH__ 32
1855 // WEBASSEMBLY-NEXT:#define __LDBL_DECIMAL_DIG__ 36
1856 // WEBASSEMBLY-NEXT:#define __LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L
1857 // WEBASSEMBLY-NEXT:#define __LDBL_DIG__ 33
1858 // WEBASSEMBLY-NEXT:#define __LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L
1859 // WEBASSEMBLY-NEXT:#define __LDBL_HAS_DENORM__ 1
1860 // WEBASSEMBLY-NEXT:#define __LDBL_HAS_INFINITY__ 1
1861 // WEBASSEMBLY-NEXT:#define __LDBL_HAS_QUIET_NAN__ 1
1862 // WEBASSEMBLY-NEXT:#define __LDBL_MANT_DIG__ 113
1863 // WEBASSEMBLY-NEXT:#define __LDBL_MAX_10_EXP__ 4932
1864 // WEBASSEMBLY-NEXT:#define __LDBL_MAX_EXP__ 16384
1865 // WEBASSEMBLY-NEXT:#define __LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L
1866 // WEBASSEMBLY-NEXT:#define __LDBL_MIN_10_EXP__ (-4931)
1867 // WEBASSEMBLY-NEXT:#define __LDBL_MIN_EXP__ (-16381)
1868 // WEBASSEMBLY-NEXT:#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
1869 // WEBASSEMBLY-NEXT:#define __LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L
1870 // WEBASSEMBLY-NEXT:#define __LITTLE_ENDIAN__ 1
1871 // WEBASSEMBLY-NEXT:#define __LLONG_WIDTH__ 64
1872 // WEBASSEMBLY-NEXT:#define __LONG_LONG_MAX__ 9223372036854775807LL
1873 // WEBASSEMBLY32-NEXT:#define __LONG_MAX__ 2147483647L
1874 // WEBASSEMBLY32-NOT:#define __LP64__
1875 // WEBASSEMBLY32-NEXT:#define __LONG_WIDTH__ 32
1876 // WEBASSEMBLY64-NEXT:#define __LONG_MAX__ 9223372036854775807L
1877 // WEBASSEMBLY64-NEXT:#define __LONG_WIDTH__ 64
1878 // WEBASSEMBLY64-NEXT:#define __LP64__ 1
1879 // WEBASSEMBLY-NEXT:#define __MEMORY_SCOPE_DEVICE 1
1880 // WEBASSEMBLY-NEXT:#define __MEMORY_SCOPE_SINGLE 4
1881 // WEBASSEMBLY-NEXT:#define __MEMORY_SCOPE_SYSTEM 0
1882 // WEBASSEMBLY-NEXT:#define __MEMORY_SCOPE_WRKGRP 2
1883 // WEBASSEMBLY-NEXT:#define __MEMORY_SCOPE_WVFRNT 3
1884 // WEBASSEMBLY-NEXT:#define __NO_INLINE__ 1
1885 // WEBASSEMBLY-NEXT:#define __NO_MATH_ERRNO__ 1
1886 // WEBASSEMBLY-NEXT:#define __OBJC_BOOL_IS_BOOL 0
1887 // WEBASSEMBLY-NEXT:#define __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES 3
1888 // WEBASSEMBLY-NEXT:#define __OPENCL_MEMORY_SCOPE_DEVICE 2
1889 // WEBASSEMBLY-NEXT:#define __OPENCL_MEMORY_SCOPE_SUB_GROUP 4
1890 // WEBASSEMBLY-NEXT:#define __OPENCL_MEMORY_SCOPE_WORK_GROUP 1
1891 // WEBASSEMBLY-NEXT:#define __OPENCL_MEMORY_SCOPE_WORK_ITEM 0
1892 // WEBASSEMBLY-NEXT:#define __ORDER_BIG_ENDIAN__ 4321
1893 // WEBASSEMBLY-NEXT:#define __ORDER_LITTLE_ENDIAN__ 1234
1894 // WEBASSEMBLY-NEXT:#define __ORDER_PDP_ENDIAN__ 3412
1895 // WEBASSEMBLY32-NEXT:#define __POINTER_WIDTH__ 32
1896 // WEBASSEMBLY64-NEXT:#define __POINTER_WIDTH__ 64
1897 // WEBASSEMBLY-NEXT:#define __PRAGMA_REDEFINE_EXTNAME 1
1898 // WEBASSEMBLY-NEXT:#define __PTRDIFF_FMTd__ "ld"
1899 // WEBASSEMBLY-NEXT:#define __PTRDIFF_FMTi__ "li"
1900 // WEBASSEMBLY32-NEXT:#define __PTRDIFF_MAX__ 2147483647L
1901 // WEBASSEMBLY64-NEXT:#define __PTRDIFF_MAX__ 9223372036854775807L
1902 // WEBASSEMBLY-NEXT:#define __PTRDIFF_TYPE__ long int
1903 // WEBASSEMBLY32-NEXT:#define __PTRDIFF_WIDTH__ 32
1904 // WEBASSEMBLY64-NEXT:#define __PTRDIFF_WIDTH__ 64
1905 // WEBASSEMBLY-NOT:#define __REGISTER_PREFIX__
1906 // WEBASSEMBLY-NEXT:#define __SCHAR_MAX__ 127
1907 // WEBASSEMBLY-NEXT:#define __SHRT_MAX__ 32767
1908 // WEBASSEMBLY-NEXT:#define __SHRT_WIDTH__ 16
1909 // WEBASSEMBLY32-NEXT:#define __SIG_ATOMIC_MAX__ 2147483647L
1910 // WEBASSEMBLY32-NEXT:#define __SIG_ATOMIC_WIDTH__ 32
1911 // WEBASSEMBLY64-NEXT:#define __SIG_ATOMIC_MAX__ 9223372036854775807L
1912 // WEBASSEMBLY64-NEXT:#define __SIG_ATOMIC_WIDTH__ 64
1913 // WEBASSEMBLY-NEXT:#define __SIZEOF_DOUBLE__ 8
1914 // WEBASSEMBLY-NEXT:#define __SIZEOF_FLOAT__ 4
1915 // WEBASSEMBLY-NEXT:#define __SIZEOF_INT128__ 16
1916 // WEBASSEMBLY-NEXT:#define __SIZEOF_INT__ 4
1917 // WEBASSEMBLY-NEXT:#define __SIZEOF_LONG_DOUBLE__ 16
1918 // WEBASSEMBLY-NEXT:#define __SIZEOF_LONG_LONG__ 8
1919 // WEBASSEMBLY32-NEXT:#define __SIZEOF_LONG__ 4
1920 // WEBASSEMBLY32-NEXT:#define __SIZEOF_POINTER__ 4
1921 // WEBASSEMBLY32-NEXT:#define __SIZEOF_PTRDIFF_T__ 4
1922 // WEBASSEMBLY64-NEXT:#define __SIZEOF_LONG__ 8
1923 // WEBASSEMBLY64-NEXT:#define __SIZEOF_POINTER__ 8
1924 // WEBASSEMBLY64-NEXT:#define __SIZEOF_PTRDIFF_T__ 8
1925 // WEBASSEMBLY-NEXT:#define __SIZEOF_SHORT__ 2
1926 // WEBASSEMBLY32-NEXT:#define __SIZEOF_SIZE_T__ 4
1927 // WEBASSEMBLY64-NEXT:#define __SIZEOF_SIZE_T__ 8
1928 // WEBASSEMBLY-NEXT:#define __SIZEOF_WCHAR_T__ 4
1929 // WEBASSEMBLY-NEXT:#define __SIZEOF_WINT_T__ 4
1930 // WEBASSEMBLY-NEXT:#define __SIZE_FMTX__ "lX"
1931 // WEBASSEMBLY-NEXT:#define __SIZE_FMTo__ "lo"
1932 // WEBASSEMBLY-NEXT:#define __SIZE_FMTu__ "lu"
1933 // WEBASSEMBLY-NEXT:#define __SIZE_FMTx__ "lx"
1934 // WEBASSEMBLY32-NEXT:#define __SIZE_MAX__ 4294967295UL
1935 // WEBASSEMBLY64-NEXT:#define __SIZE_MAX__ 18446744073709551615UL
1936 // WEBASSEMBLY-NEXT:#define __SIZE_TYPE__ long unsigned int
1937 // WEBASSEMBLY32-NEXT:#define __SIZE_WIDTH__ 32
1938 // WEBASSEMBLY64-NEXT:#define __SIZE_WIDTH__ 64
1939 // WEBASSEMBLY-NEXT:#define __STDC_EMBED_EMPTY__ 2
1940 // WEBASSEMBLY-NEXT:#define __STDC_EMBED_FOUND__ 1
1941 // WEBASSEMBLY-NEXT:#define __STDC_EMBED_NOT_FOUND__ 0
1942 // WEBASSEMBLY-NEXT:#define __STDC_HOSTED__ 0
1943 // WEBASSEMBLY-NOT:#define __STDC_MB_MIGHT_NEQ_WC__
1944 // WEBASSEMBLY-NOT:#define __STDC_NO_ATOMICS__
1945 // WEBASSEMBLY-NOT:#define __STDC_NO_COMPLEX__
1946 // WEBASSEMBLY-NOT:#define __STDC_NO_VLA__
1947 // WEBASSEMBLY-NOT:#define __STDC_NO_THREADS__
1948 // WEBASSEMBLY-NEXT:#define __STDC_UTF_16__ 1
1949 // WEBASSEMBLY-NEXT:#define __STDC_UTF_32__ 1
1950 // WEBASSEMBLY-NEXT:#define __STDC_VERSION__ 201710L
1951 // WEBASSEMBLY-NEXT:#define __STDC__ 1
1952 // WEBASSEMBLY-NEXT:#define __UINT16_C(c) c
1953 // WEBASSEMBLY-NEXT:#define __UINT16_C_SUFFIX__
1954 // WEBASSEMBLY-NEXT:#define __UINT16_FMTX__ "hX"
1955 // WEBASSEMBLY-NEXT:#define __UINT16_FMTo__ "ho"
1956 // WEBASSEMBLY-NEXT:#define __UINT16_FMTu__ "hu"
1957 // WEBASSEMBLY-NEXT:#define __UINT16_FMTx__ "hx"
1958 // WEBASSEMBLY-NEXT:#define __UINT16_MAX__ 65535
1959 // WEBASSEMBLY-NEXT:#define __UINT16_TYPE__ unsigned short
1960 // WEBASSEMBLY-NEXT:#define __UINT32_C(c) c##U
1961 // WEBASSEMBLY-NEXT:#define __UINT32_C_SUFFIX__ U
1962 // WEBASSEMBLY-NEXT:#define __UINT32_FMTX__ "X"
1963 // WEBASSEMBLY-NEXT:#define __UINT32_FMTo__ "o"
1964 // WEBASSEMBLY-NEXT:#define __UINT32_FMTu__ "u"
1965 // WEBASSEMBLY-NEXT:#define __UINT32_FMTx__ "x"
1966 // WEBASSEMBLY-NEXT:#define __UINT32_MAX__ 4294967295U
1967 // WEBASSEMBLY-NEXT:#define __UINT32_TYPE__ unsigned int
1968 // WEBASSEMBLY-NEXT:#define __UINT64_C(c) c##ULL
1969 // WEBASSEMBLY-NEXT:#define __UINT64_C_SUFFIX__ ULL
1970 // WEBASSEMBLY-NEXT:#define __UINT64_FMTX__ "llX"
1971 // WEBASSEMBLY-NEXT:#define __UINT64_FMTo__ "llo"
1972 // WEBASSEMBLY-NEXT:#define __UINT64_FMTu__ "llu"
1973 // WEBASSEMBLY-NEXT:#define __UINT64_FMTx__ "llx"
1974 // WEBASSEMBLY-NEXT:#define __UINT64_MAX__ 18446744073709551615ULL
1975 // WEBASSEMBLY-NEXT:#define __UINT64_TYPE__ long long unsigned int
1976 // WEBASSEMBLY-NEXT:#define __UINT8_C(c) c
1977 // WEBASSEMBLY-NEXT:#define __UINT8_C_SUFFIX__
1978 // WEBASSEMBLY-NEXT:#define __UINT8_FMTX__ "hhX"
1979 // WEBASSEMBLY-NEXT:#define __UINT8_FMTo__ "hho"
1980 // WEBASSEMBLY-NEXT:#define __UINT8_FMTu__ "hhu"
1981 // WEBASSEMBLY-NEXT:#define __UINT8_FMTx__ "hhx"
1982 // WEBASSEMBLY-NEXT:#define __UINT8_MAX__ 255
1983 // WEBASSEMBLY-NEXT:#define __UINT8_TYPE__ unsigned char
1984 // WEBASSEMBLY-NEXT:#define __UINTMAX_C(c) c##ULL
1985 // WEBASSEMBLY-NEXT:#define __UINTMAX_C_SUFFIX__ ULL
1986 // WEBASSEMBLY-NEXT:#define __UINTMAX_FMTX__ "llX"
1987 // WEBASSEMBLY-NEXT:#define __UINTMAX_FMTo__ "llo"
1988 // WEBASSEMBLY-NEXT:#define __UINTMAX_FMTu__ "llu"
1989 // WEBASSEMBLY-NEXT:#define __UINTMAX_FMTx__ "llx"
1990 // WEBASSEMBLY-NEXT:#define __UINTMAX_MAX__ 18446744073709551615ULL
1991 // WEBASSEMBLY-NEXT:#define __UINTMAX_TYPE__ long long unsigned int
1992 // WEBASSEMBLY-NEXT:#define __UINTMAX_WIDTH__ 64
1993 // WEBASSEMBLY-NEXT:#define __UINTPTR_FMTX__ "lX"
1994 // WEBASSEMBLY-NEXT:#define __UINTPTR_FMTo__ "lo"
1995 // WEBASSEMBLY-NEXT:#define __UINTPTR_FMTu__ "lu"
1996 // WEBASSEMBLY-NEXT:#define __UINTPTR_FMTx__ "lx"
1997 // WEBASSEMBLY32-NEXT:#define __UINTPTR_MAX__ 4294967295UL
1998 // WEBASSEMBLY64-NEXT:#define __UINTPTR_MAX__ 18446744073709551615UL
1999 // WEBASSEMBLY-NEXT:#define __UINTPTR_TYPE__ long unsigned int
2000 // WEBASSEMBLY32-NEXT:#define __UINTPTR_WIDTH__ 32
2001 // WEBASSEMBLY64-NEXT:#define __UINTPTR_WIDTH__ 64
2002 // WEBASSEMBLY-NEXT:#define __UINT_FAST16_FMTX__ "hX"
2003 // WEBASSEMBLY-NEXT:#define __UINT_FAST16_FMTo__ "ho"
2004 // WEBASSEMBLY-NEXT:#define __UINT_FAST16_FMTu__ "hu"
2005 // WEBASSEMBLY-NEXT:#define __UINT_FAST16_FMTx__ "hx"
2006 // WEBASSEMBLY-NEXT:#define __UINT_FAST16_MAX__ 65535
2007 // WEBASSEMBLY-NEXT:#define __UINT_FAST16_TYPE__ unsigned short
2008 // WEBASSEMBLY-NEXT:#define __UINT_FAST32_FMTX__ "X"
2009 // WEBASSEMBLY-NEXT:#define __UINT_FAST32_FMTo__ "o"
2010 // WEBASSEMBLY-NEXT:#define __UINT_FAST32_FMTu__ "u"
2011 // WEBASSEMBLY-NEXT:#define __UINT_FAST32_FMTx__ "x"
2012 // WEBASSEMBLY-NEXT:#define __UINT_FAST32_MAX__ 4294967295U
2013 // WEBASSEMBLY-NEXT:#define __UINT_FAST32_TYPE__ unsigned int
2014 // WEBASSEMBLY-NEXT:#define __UINT_FAST64_FMTX__ "llX"
2015 // WEBASSEMBLY-NEXT:#define __UINT_FAST64_FMTo__ "llo"
2016 // WEBASSEMBLY-NEXT:#define __UINT_FAST64_FMTu__ "llu"
2017 // WEBASSEMBLY-NEXT:#define __UINT_FAST64_FMTx__ "llx"
2018 // WEBASSEMBLY-NEXT:#define __UINT_FAST64_MAX__ 18446744073709551615ULL
2019 // WEBASSEMBLY-NEXT:#define __UINT_FAST64_TYPE__ long long unsigned int
2020 // WEBASSEMBLY-NEXT:#define __UINT_FAST8_FMTX__ "hhX"
2021 // WEBASSEMBLY-NEXT:#define __UINT_FAST8_FMTo__ "hho"
2022 // WEBASSEMBLY-NEXT:#define __UINT_FAST8_FMTu__ "hhu"
2023 // WEBASSEMBLY-NEXT:#define __UINT_FAST8_FMTx__ "hhx"
2024 // WEBASSEMBLY-NEXT:#define __UINT_FAST8_MAX__ 255
2025 // WEBASSEMBLY-NEXT:#define __UINT_FAST8_TYPE__ unsigned char
2026 // WEBASSEMBLY-NEXT:#define __UINT_LEAST16_FMTX__ "hX"
2027 // WEBASSEMBLY-NEXT:#define __UINT_LEAST16_FMTo__ "ho"
2028 // WEBASSEMBLY-NEXT:#define __UINT_LEAST16_FMTu__ "hu"
2029 // WEBASSEMBLY-NEXT:#define __UINT_LEAST16_FMTx__ "hx"
2030 // WEBASSEMBLY-NEXT:#define __UINT_LEAST16_MAX__ 65535
2031 // WEBASSEMBLY-NEXT:#define __UINT_LEAST16_TYPE__ unsigned short
2032 // WEBASSEMBLY-NEXT:#define __UINT_LEAST32_FMTX__ "X"
2033 // WEBASSEMBLY-NEXT:#define __UINT_LEAST32_FMTo__ "o"
2034 // WEBASSEMBLY-NEXT:#define __UINT_LEAST32_FMTu__ "u"
2035 // WEBASSEMBLY-NEXT:#define __UINT_LEAST32_FMTx__ "x"
2036 // WEBASSEMBLY-NEXT:#define __UINT_LEAST32_MAX__ 4294967295U
2037 // WEBASSEMBLY-NEXT:#define __UINT_LEAST32_TYPE__ unsigned int
2038 // WEBASSEMBLY-NEXT:#define __UINT_LEAST64_FMTX__ "llX"
2039 // WEBASSEMBLY-NEXT:#define __UINT_LEAST64_FMTo__ "llo"
2040 // WEBASSEMBLY-NEXT:#define __UINT_LEAST64_FMTu__ "llu"
2041 // WEBASSEMBLY-NEXT:#define __UINT_LEAST64_FMTx__ "llx"
2042 // WEBASSEMBLY-NEXT:#define __UINT_LEAST64_MAX__ 18446744073709551615ULL
2043 // WEBASSEMBLY-NEXT:#define __UINT_LEAST64_TYPE__ long long unsigned int
2044 // WEBASSEMBLY-NEXT:#define __UINT_LEAST8_FMTX__ "hhX"
2045 // WEBASSEMBLY-NEXT:#define __UINT_LEAST8_FMTo__ "hho"
2046 // WEBASSEMBLY-NEXT:#define __UINT_LEAST8_FMTu__ "hhu"
2047 // WEBASSEMBLY-NEXT:#define __UINT_LEAST8_FMTx__ "hhx"
2048 // WEBASSEMBLY-NEXT:#define __UINT_LEAST8_MAX__ 255
2049 // WEBASSEMBLY-NEXT:#define __UINT_LEAST8_TYPE__ unsigned char
2050 // WEBASSEMBLY-NEXT:#define __USER_LABEL_PREFIX__
2051 // WEBASSEMBLY-NEXT:#define __VERSION__ "{{.*}}"
2052 // WEBASSEMBLY-NEXT:#define __WCHAR_MAX__ 2147483647
2053 // WEBASSEMBLY-NEXT:#define __WCHAR_TYPE__ int
2054 // WEBASSEMBLY-NOT:#define __WCHAR_UNSIGNED__
2055 // WEBASSEMBLY-NEXT:#define __WCHAR_WIDTH__ 32
2056 // WEBASSEMBLY-NEXT:#define __WINT_MAX__ 2147483647
2057 // WEBASSEMBLY-NEXT:#define __WINT_TYPE__ int
2058 // WEBASSEMBLY-NOT:#define __WINT_UNSIGNED__
2059 // WEBASSEMBLY-NEXT:#define __WINT_WIDTH__ 32
2060 // WEBASSEMBLY-NEXT:#define __clang__ 1
2061 // WEBASSEMBLY-NEXT:#define __clang_literal_encoding__ {{.*}}
2062 // WEBASSEMBLY-NEXT:#define __clang_major__ {{.*}}
2063 // WEBASSEMBLY-NEXT:#define __clang_minor__ {{.*}}
2064 // WEBASSEMBLY-NEXT:#define __clang_patchlevel__ {{.*}}
2065 // WEBASSEMBLY-NEXT:#define __clang_version__ "{{.*}}"
2066 // WEBASSEMBLY-NEXT:#define __clang_wide_literal_encoding__ {{.*}}
2067 // WEBASSEMBLY-NEXT:#define __llvm__ 1
2068 // WEBASSEMBLY-WASI-NOT:#define __unix
2069 // WEBASSEMBLY-WASI-NOT:#define __unix__
2070 // EMSCRIPTEN-NEXT:#define __unix 1
2071 // EMSCRIPTEN-NEXT:#define __unix__ 1
2072 // WEBASSEMBLY-WASI-NEXT:#define __wasi__ 1
2073 // WEBASSEMBLY-NOT:#define __wasm_simd128__
2074 // WEBASSEMBLY-NOT:#define __wasm_simd256__
2075 // WEBASSEMBLY-NOT:#define __wasm_simd512__
2076 // WEBASSEMBLY-NEXT:#define __wasm 1
2077 // WEBASSEMBLY32-NEXT:#define __wasm32 1
2078 // WEBASSEMBLY64-NOT:#define __wasm32
2079 // WEBASSEMBLY32-NEXT:#define __wasm32__ 1
2080 // WEBASSEMBLY64-NOT:#define __wasm32__
2081 // WEBASSEMBLY32-NOT:#define __wasm64__
2082 // WEBASSEMBLY32-NOT:#define __wasm64
2083 // WEBASSEMBLY64-NEXT:#define __wasm64 1
2084 // WEBASSEMBLY64-NEXT:#define __wasm64__ 1
2085 // WEBASSEMBLY-NEXT:#define __wasm__ 1
2086 // EMSCRIPTEN:#define unix 1
2087 // WEBASSEMBLY-WASI-NOT:#define unix 1
2088 // WEBASSEMBLY-CXX-NOT:_REENTRANT
2089 // WEBASSEMBLY-CXX-NOT:__STDCPP_THREADS__
2090 // WEBASSEMBLY-CXX-ATOMICS:#define _REENTRANT 1
2091 // WEBASSEMBLY-CXX-ATOMICS:#define __STDCPP_THREADS__ 1
2092 
2093 // RUN: %clang_cc1 -E -dM -ffreestanding -triple i686-windows-cygnus < /dev/null | FileCheck -match-full-lines -check-prefix CYGWIN-X32 %s
2094 // CYGWIN-X32: #define __USER_LABEL_PREFIX__ _
2095 
2096 // RUN: %clang_cc1 -E -dM -ffreestanding -triple x86_64-windows-cygnus < /dev/null | FileCheck -match-full-lines -check-prefix CYGWIN-X64 %s
2097 // CYGWIN-X64: #define __USER_LABEL_PREFIX__
2098 
2099 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=avr \
2100 // RUN:   < /dev/null \
2101 // RUN:   | FileCheck -match-full-lines -check-prefix=AVR %s
2102 //
2103 // AVR:#define __ATOMIC_ACQUIRE 2
2104 // AVR:#define __ATOMIC_ACQ_REL 4
2105 // AVR:#define __ATOMIC_CONSUME 1
2106 // AVR:#define __ATOMIC_RELAXED 0
2107 // AVR:#define __ATOMIC_RELEASE 3
2108 // AVR:#define __ATOMIC_SEQ_CST 5
2109 // AVR:#define __AVR__ 1
2110 // AVR:#define __BIGGEST_ALIGNMENT__ 1
2111 // AVR:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
2112 // AVR:#define __CHAR16_TYPE__ unsigned int
2113 // AVR:#define __CHAR32_TYPE__ long unsigned int
2114 // AVR:#define __CHAR_BIT__ 8
2115 // AVR:#define __DBL_DECIMAL_DIG__ 9
2116 // AVR:#define __DBL_DENORM_MIN__ 1.40129846e-45
2117 // AVR:#define __DBL_DIG__ 6
2118 // AVR:#define __DBL_EPSILON__ 1.19209290e-7
2119 // AVR:#define __DBL_HAS_DENORM__ 1
2120 // AVR:#define __DBL_HAS_INFINITY__ 1
2121 // AVR:#define __DBL_HAS_QUIET_NAN__ 1
2122 // AVR:#define __DBL_MANT_DIG__ 24
2123 // AVR:#define __DBL_MAX_10_EXP__ 38
2124 // AVR:#define __DBL_MAX_EXP__ 128
2125 // AVR:#define __DBL_MAX__ 3.40282347e+38
2126 // AVR:#define __DBL_MIN_10_EXP__ (-37)
2127 // AVR:#define __DBL_MIN_EXP__ (-125)
2128 // AVR:#define __DBL_MIN__ 1.17549435e-38
2129 // AVR:#define __FINITE_MATH_ONLY__ 0
2130 // AVR:#define __FLT_DECIMAL_DIG__ 9
2131 // AVR:#define __FLT_DENORM_MIN__ 1.40129846e-45F
2132 // AVR:#define __FLT_DIG__ 6
2133 // AVR:#define __FLT_EPSILON__ 1.19209290e-7F
2134 // AVR:#define __FLT_HAS_DENORM__ 1
2135 // AVR:#define __FLT_HAS_INFINITY__ 1
2136 // AVR:#define __FLT_HAS_QUIET_NAN__ 1
2137 // AVR:#define __FLT_MANT_DIG__ 24
2138 // AVR:#define __FLT_MAX_10_EXP__ 38
2139 // AVR:#define __FLT_MAX_EXP__ 128
2140 // AVR:#define __FLT_MAX__ 3.40282347e+38F
2141 // AVR:#define __FLT_MIN_10_EXP__ (-37)
2142 // AVR:#define __FLT_MIN_EXP__ (-125)
2143 // AVR:#define __FLT_MIN__ 1.17549435e-38F
2144 // AVR:#define __FLT_RADIX__ 2
2145 // AVR:#define __GCC_ATOMIC_BOOL_LOCK_FREE 1
2146 // AVR:#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 1
2147 // AVR:#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 1
2148 // AVR:#define __GCC_ATOMIC_CHAR_LOCK_FREE 1
2149 // AVR:#define __GCC_ATOMIC_INT_LOCK_FREE 1
2150 // AVR:#define __GCC_ATOMIC_LLONG_LOCK_FREE 1
2151 // AVR:#define __GCC_ATOMIC_LONG_LOCK_FREE 1
2152 // AVR:#define __GCC_ATOMIC_POINTER_LOCK_FREE 1
2153 // AVR:#define __GCC_ATOMIC_SHORT_LOCK_FREE 1
2154 // AVR:#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
2155 // AVR:#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 1
2156 // AVR:#define __GXX_ABI_VERSION 1002
2157 // AVR:#define __INT16_C(c) c
2158 // AVR:#define __INT16_C_SUFFIX__
2159 // AVR:#define __INT16_MAX__ 32767
2160 // AVR:#define __INT16_TYPE__ int
2161 // AVR:#define __INT32_C(c) c##L
2162 // AVR:#define __INT32_C_SUFFIX__ L
2163 // AVR:#define __INT32_MAX__ 2147483647L
2164 // AVR:#define __INT32_TYPE__ long int
2165 // AVR:#define __INT64_C(c) c##LL
2166 // AVR:#define __INT64_C_SUFFIX__ LL
2167 // AVR:#define __INT64_MAX__ 9223372036854775807LL
2168 // AVR:#define __INT64_TYPE__ long long int
2169 // AVR:#define __INT8_C(c) c
2170 // AVR:#define __INT8_C_SUFFIX__
2171 // AVR:#define __INT8_MAX__ 127
2172 // AVR:#define __INT8_TYPE__ signed char
2173 // AVR:#define __INTMAX_C(c) c##LL
2174 // AVR:#define __INTMAX_C_SUFFIX__ LL
2175 // AVR:#define __INTMAX_MAX__ 9223372036854775807LL
2176 // AVR:#define __INTMAX_TYPE__ long long int
2177 // AVR:#define __INTPTR_MAX__ 32767
2178 // AVR:#define __INTPTR_TYPE__ int
2179 // AVR:#define __INT_FAST16_MAX__ 32767
2180 // AVR:#define __INT_FAST16_TYPE__ int
2181 // AVR:#define __INT_FAST32_MAX__ 2147483647L
2182 // AVR:#define __INT_FAST32_TYPE__ long int
2183 // AVR:#define __INT_FAST64_MAX__ 9223372036854775807LL
2184 // AVR:#define __INT_FAST64_TYPE__ long long int
2185 // AVR:#define __INT_FAST8_MAX__ 127
2186 // AVR:#define __INT_FAST8_TYPE__ signed char
2187 // AVR:#define __INT_LEAST16_MAX__ 32767
2188 // AVR:#define __INT_LEAST16_TYPE__ int
2189 // AVR:#define __INT_LEAST32_MAX__ 2147483647L
2190 // AVR:#define __INT_LEAST32_TYPE__ long int
2191 // AVR:#define __INT_LEAST64_MAX__ 9223372036854775807LL
2192 // AVR:#define __INT_LEAST64_TYPE__ long long int
2193 // AVR:#define __INT_LEAST8_MAX__ 127
2194 // AVR:#define __INT_LEAST8_TYPE__ signed char
2195 // AVR:#define __INT_MAX__ 32767
2196 // AVR:#define __LDBL_DECIMAL_DIG__ 9
2197 // AVR:#define __LDBL_DENORM_MIN__ 1.40129846e-45L
2198 // AVR:#define __LDBL_DIG__ 6
2199 // AVR:#define __LDBL_EPSILON__ 1.19209290e-7L
2200 // AVR:#define __LDBL_HAS_DENORM__ 1
2201 // AVR:#define __LDBL_HAS_INFINITY__ 1
2202 // AVR:#define __LDBL_HAS_QUIET_NAN__ 1
2203 // AVR:#define __LDBL_MANT_DIG__ 24
2204 // AVR:#define __LDBL_MAX_10_EXP__ 38
2205 // AVR:#define __LDBL_MAX_EXP__ 128
2206 // AVR:#define __LDBL_MAX__ 3.40282347e+38L
2207 // AVR:#define __LDBL_MIN_10_EXP__ (-37)
2208 // AVR:#define __LDBL_MIN_EXP__ (-125)
2209 // AVR:#define __LDBL_MIN__ 1.17549435e-38L
2210 // AVR:#define __LONG_LONG_MAX__ 9223372036854775807LL
2211 // AVR:#define __LONG_MAX__ 2147483647L
2212 // AVR:#define __MEMORY_SCOPE_DEVICE 1
2213 // AVR:#define __MEMORY_SCOPE_SINGLE 4
2214 // AVR:#define __MEMORY_SCOPE_SYSTEM 0
2215 // AVR:#define __MEMORY_SCOPE_WRKGRP 2
2216 // AVR:#define __MEMORY_SCOPE_WVFRNT 3
2217 // AVR:#define __NO_INLINE__ 1
2218 // AVR:#define __ORDER_BIG_ENDIAN__ 4321
2219 // AVR:#define __ORDER_LITTLE_ENDIAN__ 1234
2220 // AVR:#define __ORDER_PDP_ENDIAN__ 3412
2221 // AVR:#define __PRAGMA_REDEFINE_EXTNAME 1
2222 // AVR:#define __PTRDIFF_MAX__ 32767
2223 // AVR:#define __PTRDIFF_TYPE__ int
2224 // AVR:#define __SCHAR_MAX__ 127
2225 // AVR:#define __SHRT_MAX__ 32767
2226 // AVR:#define __SIG_ATOMIC_MAX__ 127
2227 // AVR:#define __SIG_ATOMIC_WIDTH__ 8
2228 // AVR:#define __SIZEOF_DOUBLE__ 4
2229 // AVR:#define __SIZEOF_FLOAT__ 4
2230 // AVR:#define __SIZEOF_INT__ 2
2231 // AVR:#define __SIZEOF_LONG_DOUBLE__ 4
2232 // AVR:#define __SIZEOF_LONG_LONG__ 8
2233 // AVR:#define __SIZEOF_LONG__ 4
2234 // AVR:#define __SIZEOF_POINTER__ 2
2235 // AVR:#define __SIZEOF_PTRDIFF_T__ 2
2236 // AVR:#define __SIZEOF_SHORT__ 2
2237 // AVR:#define __SIZEOF_SIZE_T__ 2
2238 // AVR:#define __SIZEOF_WCHAR_T__ 2
2239 // AVR:#define __SIZEOF_WINT_T__ 2
2240 // AVR:#define __SIZE_MAX__ 65535U
2241 // AVR:#define __SIZE_TYPE__ unsigned int
2242 // AVR:#define __STDC__ 1
2243 // AVR:#define __UINT16_MAX__ 65535U
2244 // AVR:#define __UINT16_TYPE__ unsigned int
2245 // AVR:#define __UINT32_C(c) c##UL
2246 // AVR:#define __UINT32_C_SUFFIX__ UL
2247 // AVR:#define __UINT32_MAX__ 4294967295UL
2248 // AVR:#define __UINT32_TYPE__ long unsigned int
2249 // AVR:#define __UINT64_C(c) c##ULL
2250 // AVR:#define __UINT64_C_SUFFIX__ ULL
2251 // AVR:#define __UINT64_MAX__ 18446744073709551615ULL
2252 // AVR:#define __UINT64_TYPE__ long long unsigned int
2253 // AVR:#define __UINT8_C(c) c
2254 // AVR:#define __UINT8_C_SUFFIX__
2255 // AVR:#define __UINT8_MAX__ 255
2256 // AVR:#define __UINT8_TYPE__ unsigned char
2257 // AVR:#define __UINTMAX_C(c) c##ULL
2258 // AVR:#define __UINTMAX_C_SUFFIX__ ULL
2259 // AVR:#define __UINTMAX_MAX__ 18446744073709551615ULL
2260 // AVR:#define __UINTMAX_TYPE__ long long unsigned int
2261 // AVR:#define __UINTPTR_MAX__ 65535U
2262 // AVR:#define __UINTPTR_TYPE__ unsigned int
2263 // AVR:#define __UINT_FAST16_MAX__ 65535U
2264 // AVR:#define __UINT_FAST16_TYPE__ unsigned int
2265 // AVR:#define __UINT_FAST32_MAX__ 4294967295UL
2266 // AVR:#define __UINT_FAST32_TYPE__ long unsigned int
2267 // AVR:#define __UINT_FAST64_MAX__ 18446744073709551615ULL
2268 // AVR:#define __UINT_FAST64_TYPE__ long long unsigned int
2269 // AVR:#define __UINT_FAST8_MAX__ 255
2270 // AVR:#define __UINT_FAST8_TYPE__ unsigned char
2271 // AVR:#define __UINT_LEAST16_MAX__ 65535U
2272 // AVR:#define __UINT_LEAST16_TYPE__ unsigned int
2273 // AVR:#define __UINT_LEAST32_MAX__ 4294967295UL
2274 // AVR:#define __UINT_LEAST32_TYPE__ long unsigned int
2275 // AVR:#define __UINT_LEAST64_MAX__ 18446744073709551615ULL
2276 // AVR:#define __UINT_LEAST64_TYPE__ long long unsigned int
2277 // AVR:#define __UINT_LEAST8_MAX__ 255
2278 // AVR:#define __UINT_LEAST8_TYPE__ unsigned char
2279 // AVR:#define __USER_LABEL_PREFIX__
2280 // AVR:#define __WCHAR_MAX__ 32767
2281 // AVR:#define __WCHAR_TYPE__ int
2282 // AVR:#define __WINT_TYPE__ int
2283 
2284 // RUN: %clang_cc1 -E -dM -ffreestanding \
2285 // RUN:    -triple i686-windows-msvc -fms-compatibility -x c++ < /dev/null \
2286 // RUN:  | FileCheck -match-full-lines -check-prefix MSVC-X32 %s
2287 
2288 // RUN: %clang_cc1 -E -dM -ffreestanding \
2289 // RUN:    -triple x86_64-windows-msvc -fms-compatibility -x c++ < /dev/null \
2290 // RUN:  | FileCheck -match-full-lines -check-prefix MSVC-X64 %s
2291 
2292 // MSVC-X32:#define __CLANG_ATOMIC_BOOL_LOCK_FREE 2
2293 // MSVC-X32-NEXT:#define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2
2294 // MSVC-X32-NEXT:#define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2
2295 // MSVC-X32-NEXT:#define __CLANG_ATOMIC_CHAR_LOCK_FREE 2
2296 // MSVC-X32-NEXT:#define __CLANG_ATOMIC_INT_LOCK_FREE 2
2297 // MSVC-X32-NEXT:#define __CLANG_ATOMIC_LLONG_LOCK_FREE 2
2298 // MSVC-X32-NEXT:#define __CLANG_ATOMIC_LONG_LOCK_FREE 2
2299 // MSVC-X32-NEXT:#define __CLANG_ATOMIC_POINTER_LOCK_FREE 2
2300 // MSVC-X32-NEXT:#define __CLANG_ATOMIC_SHORT_LOCK_FREE 2
2301 // MSVC-X32-NEXT:#define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2
2302 // MSVC-X32-NOT:#define __GCC_ATOMIC{{.*}}
2303 // MSVC-X32:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 8U
2304 
2305 // MSVC-X64:#define __CLANG_ATOMIC_BOOL_LOCK_FREE 2
2306 // MSVC-X64-NEXT:#define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2
2307 // MSVC-X64-NEXT:#define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2
2308 // MSVC-X64-NEXT:#define __CLANG_ATOMIC_CHAR_LOCK_FREE 2
2309 // MSVC-X64-NEXT:#define __CLANG_ATOMIC_INT_LOCK_FREE 2
2310 // MSVC-X64-NEXT:#define __CLANG_ATOMIC_LLONG_LOCK_FREE 2
2311 // MSVC-X64-NEXT:#define __CLANG_ATOMIC_LONG_LOCK_FREE 2
2312 // MSVC-X64-NEXT:#define __CLANG_ATOMIC_POINTER_LOCK_FREE 2
2313 // MSVC-X64-NEXT:#define __CLANG_ATOMIC_SHORT_LOCK_FREE 2
2314 // MSVC-X64-NEXT:#define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2
2315 // MSVC-X64-NOT:#define __GCC_ATOMIC{{.*}}
2316 // MSVC-X64:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16ULL
2317 
2318 // RUN: %clang_cc1 -E -dM -ffreestanding                \
2319 // RUN:  -fgnuc-version=4.2.1  -triple=aarch64-apple-ios9 < /dev/null        \
2320 // RUN: | FileCheck -check-prefix=DARWIN %s
2321 // RUN: %clang_cc1 -E -dM -ffreestanding                \
2322 // RUN:   -fgnuc-version=4.2.1 -triple=aarch64-apple-macosx10.12 < /dev/null \
2323 // RUN: | FileCheck -check-prefix=DARWIN %s
2324 
2325 // DARWIN-NOT: OBJC_NEW_PROPERTIES
2326 // DARWIN:#define __STDC_NO_THREADS__ 1
2327 
2328 // RUN: %clang_cc1 -triple i386-apple-macosx -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix MACOS-32 %s
2329 // RUN: %clang_cc1 -triple x86_64-apple-macosx -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix MACOS-64 %s
2330 
2331 // MACOS-32: #define __INTPTR_TYPE__ long int
2332 // MACOS-32: #define __PTRDIFF_TYPE__ int
2333 // MACOS-32: #define __SIZE_TYPE__ long unsigned int
2334 
2335 // MACOS-64: #define __INTPTR_TYPE__ long int
2336 // MACOS-64: #define __PTRDIFF_TYPE__ long int
2337 // MACOS-64: #define __SIZE_TYPE__ long unsigned int
2338 
2339 // RUN: %clang_cc1 -triple i386-apple-ios-simulator -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix IOS-32 %s
2340 // RUN: %clang_cc1 -triple armv7-apple-ios -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix IOS-32 %s
2341 // RUN: %clang_cc1 -triple x86_64-apple-ios-simulator -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix IOS-64 %s
2342 // RUN: %clang_cc1 -triple arm64-apple-ios -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix IOS-64 %s
2343 
2344 // IOS-32: #define __INTPTR_TYPE__ long int
2345 // IOS-32: #define __PTRDIFF_TYPE__ int
2346 // IOS-32: #define __SIZE_TYPE__ long unsigned int
2347 
2348 // IOS-64: #define __INTPTR_TYPE__ long int
2349 // IOS-64: #define __PTRDIFF_TYPE__ long int
2350 // IOS-64: #define __SIZE_TYPE__ long unsigned int
2351 
2352 // RUN: %clang_cc1 -triple i386-apple-tvos-simulator -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix TVOS-32 %s
2353 // RUN: %clang_cc1 -triple armv7-apple-tvos -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix TVOS-32 %s
2354 // RUN: %clang_cc1 -triple x86_64-apple-tvos-simulator -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix TVOS-64 %s
2355 // RUN: %clang_cc1 -triple arm64-apple-tvos -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix TVOS-64 %s
2356 
2357 // TVOS-32: #define __INTPTR_TYPE__ long int
2358 // TVOS-32: #define __PTRDIFF_TYPE__ int
2359 // TVOS-32: #define __SIZE_TYPE__ long unsigned int
2360 
2361 // TVOS-64: #define __INTPTR_TYPE__ long int
2362 // TVOS-64: #define __PTRDIFF_TYPE__ long int
2363 // TVOS-64: #define __SIZE_TYPE__ long unsigned int
2364 
2365 // RUN: %clang_cc1 -triple i386-apple-watchos-simulator -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix WATCHOS-32 %s
2366 // RUN: %clang_cc1 -triple armv7k-apple-watchos -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix WATCHOS-64 %s
2367 // RUN: %clang_cc1 -triple x86_64-apple-watchos-simulator -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix WATCHOS-64 %s
2368 // RUN: %clang_cc1 -triple arm64-apple-watchos -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix WATCHOS-64 %s
2369 
2370 // WATCHOS-32: #define __INTPTR_TYPE__ long int
2371 // WATCHOS-32: #define __PTRDIFF_TYPE__ int
2372 // WATCHOS-32: #define __SIZE_TYPE__ long unsigned int
2373 
2374 // WATCHOS-64: #define __INTPTR_TYPE__ long int
2375 // WATCHOS-64: #define __PTRDIFF_TYPE__ long int
2376 // WATCHOS-64: #define __SIZE_TYPE__ long unsigned int
2377 
2378 // RUN: %clang_cc1 -triple armv7-apple-none-macho -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix ARM-DARWIN-BAREMETAL-32 %s
2379 // RUN: %clang_cc1 -triple arm64-apple-none-macho -ffreestanding -dM -E /dev/null -o - | FileCheck -match-full-lines -check-prefix ARM-DARWIN-BAREMETAL-64 %s
2380 
2381 // ARM-DARWIN-BAREMETAL-32: #define __INTPTR_TYPE__ long int
2382 // ARM-DARWIN-BAREMETAL-32: #define __PTRDIFF_TYPE__ int
2383 // ARM-DARWIN-BAREMETAL-32: #define __SIZE_TYPE__ long unsigned int
2384 
2385 // ARM-DARWIN-BAREMETAL-64: #define __INTPTR_TYPE__ long int
2386 // ARM-DARWIN-BAREMETAL-64: #define __PTRDIFF_TYPE__ long int
2387 // ARM-DARWIN-BAREMETAL-64: #define __SIZE_TYPE__ long unsigned int
2388 
2389 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=riscv32 < /dev/null \
2390 // RUN:   | FileCheck -match-full-lines -check-prefix=RISCV32 %s
2391 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=riscv32-unknown-linux < /dev/null \
2392 // RUN:   | FileCheck -match-full-lines -check-prefixes=RISCV32,RISCV32-LINUX %s
2393 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=riscv32 \
2394 // RUN: -fforce-enable-int128 < /dev/null | FileCheck -match-full-lines \
2395 // RUN: -check-prefixes=RISCV32,RISCV32-INT128 %s
2396 // RISCV32: #define _ILP32 1
2397 // RISCV32: #define __ATOMIC_ACQUIRE 2
2398 // RISCV32: #define __ATOMIC_ACQ_REL 4
2399 // RISCV32: #define __ATOMIC_CONSUME 1
2400 // RISCV32: #define __ATOMIC_RELAXED 0
2401 // RISCV32: #define __ATOMIC_RELEASE 3
2402 // RISCV32: #define __ATOMIC_SEQ_CST 5
2403 // RISCV32: #define __BIGGEST_ALIGNMENT__ 16
2404 // RISCV32: #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
2405 // RISCV32: #define __CHAR16_TYPE__ unsigned short
2406 // RISCV32: #define __CHAR32_TYPE__ unsigned int
2407 // RISCV32: #define __CHAR_BIT__ 8
2408 // RISCV32: #define __DBL_DECIMAL_DIG__ 17
2409 // RISCV32: #define __DBL_DENORM_MIN__ 4.9406564584124654e-324
2410 // RISCV32: #define __DBL_DIG__ 15
2411 // RISCV32: #define __DBL_EPSILON__ 2.2204460492503131e-16
2412 // RISCV32: #define __DBL_HAS_DENORM__ 1
2413 // RISCV32: #define __DBL_HAS_INFINITY__ 1
2414 // RISCV32: #define __DBL_HAS_QUIET_NAN__ 1
2415 // RISCV32: #define __DBL_MANT_DIG__ 53
2416 // RISCV32: #define __DBL_MAX_10_EXP__ 308
2417 // RISCV32: #define __DBL_MAX_EXP__ 1024
2418 // RISCV32: #define __DBL_MAX__ 1.7976931348623157e+308
2419 // RISCV32: #define __DBL_MIN_10_EXP__ (-307)
2420 // RISCV32: #define __DBL_MIN_EXP__ (-1021)
2421 // RISCV32: #define __DBL_MIN__ 2.2250738585072014e-308
2422 // RISCV32: #define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
2423 // RISCV32: #define __ELF__ 1
2424 // RISCV32: #define __FINITE_MATH_ONLY__ 0
2425 // RISCV32: #define __FLT_DECIMAL_DIG__ 9
2426 // RISCV32: #define __FLT_DENORM_MIN__ 1.40129846e-45F
2427 // RISCV32: #define __FLT_DIG__ 6
2428 // RISCV32: #define __FLT_EPSILON__ 1.19209290e-7F
2429 // RISCV32: #define __FLT_HAS_DENORM__ 1
2430 // RISCV32: #define __FLT_HAS_INFINITY__ 1
2431 // RISCV32: #define __FLT_HAS_QUIET_NAN__ 1
2432 // RISCV32: #define __FLT_MANT_DIG__ 24
2433 // RISCV32: #define __FLT_MAX_10_EXP__ 38
2434 // RISCV32: #define __FLT_MAX_EXP__ 128
2435 // RISCV32: #define __FLT_MAX__ 3.40282347e+38F
2436 // RISCV32: #define __FLT_MIN_10_EXP__ (-37)
2437 // RISCV32: #define __FLT_MIN_EXP__ (-125)
2438 // RISCV32: #define __FLT_MIN__ 1.17549435e-38F
2439 // RISCV32: #define __FLT_RADIX__ 2
2440 // RISCV32: #define __GCC_ATOMIC_BOOL_LOCK_FREE 1
2441 // RISCV32: #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 1
2442 // RISCV32: #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 1
2443 // RISCV32: #define __GCC_ATOMIC_CHAR_LOCK_FREE 1
2444 // RISCV32: #define __GCC_ATOMIC_INT_LOCK_FREE 1
2445 // RISCV32: #define __GCC_ATOMIC_LLONG_LOCK_FREE 1
2446 // RISCV32: #define __GCC_ATOMIC_LONG_LOCK_FREE 1
2447 // RISCV32: #define __GCC_ATOMIC_POINTER_LOCK_FREE 1
2448 // RISCV32: #define __GCC_ATOMIC_SHORT_LOCK_FREE 1
2449 // RISCV32: #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
2450 // RISCV32: #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 1
2451 // RISCV32: #define __GNUC_MINOR__ {{.*}}
2452 // RISCV32: #define __GNUC_PATCHLEVEL__ {{.*}}
2453 // RISCV32: #define __GNUC_STDC_INLINE__ 1
2454 // RISCV32: #define __GNUC__ {{.*}}
2455 // RISCV32: #define __GXX_ABI_VERSION {{.*}}
2456 // RISCV32: #define __ILP32__ 1
2457 // RISCV32: #define __INT16_C(c) c
2458 // RISCV32: #define __INT16_C_SUFFIX__
2459 // RISCV32: #define __INT16_MAX__ 32767
2460 // RISCV32: #define __INT16_TYPE__ short
2461 // RISCV32: #define __INT32_C(c) c
2462 // RISCV32: #define __INT32_C_SUFFIX__
2463 // RISCV32: #define __INT32_MAX__ 2147483647
2464 // RISCV32: #define __INT32_TYPE__ int
2465 // RISCV32: #define __INT64_C(c) c##LL
2466 // RISCV32: #define __INT64_C_SUFFIX__ LL
2467 // RISCV32: #define __INT64_MAX__ 9223372036854775807LL
2468 // RISCV32: #define __INT64_TYPE__ long long int
2469 // RISCV32: #define __INT8_C(c) c
2470 // RISCV32: #define __INT8_C_SUFFIX__
2471 // RISCV32: #define __INT8_MAX__ 127
2472 // RISCV32: #define __INT8_TYPE__ signed char
2473 // RISCV32: #define __INTMAX_C(c) c##LL
2474 // RISCV32: #define __INTMAX_C_SUFFIX__ LL
2475 // RISCV32: #define __INTMAX_MAX__ 9223372036854775807LL
2476 // RISCV32: #define __INTMAX_TYPE__ long long int
2477 // RISCV32: #define __INTMAX_WIDTH__ 64
2478 // RISCV32: #define __INTPTR_MAX__ 2147483647
2479 // RISCV32: #define __INTPTR_TYPE__ int
2480 // RISCV32: #define __INTPTR_WIDTH__ 32
2481 // TODO: RISC-V GCC defines INT_FAST16 as int
2482 // RISCV32: #define __INT_FAST16_MAX__ 32767
2483 // RISCV32: #define __INT_FAST16_TYPE__ short
2484 // RISCV32: #define __INT_FAST32_MAX__ 2147483647
2485 // RISCV32: #define __INT_FAST32_TYPE__ int
2486 // RISCV32: #define __INT_FAST64_MAX__ 9223372036854775807LL
2487 // RISCV32: #define __INT_FAST64_TYPE__ long long int
2488 // TODO: RISC-V GCC defines INT_FAST8 as int
2489 // RISCV32: #define __INT_FAST8_MAX__ 127
2490 // RISCV32: #define __INT_FAST8_TYPE__ signed char
2491 // RISCV32: #define __INT_LEAST16_MAX__ 32767
2492 // RISCV32: #define __INT_LEAST16_TYPE__ short
2493 // RISCV32: #define __INT_LEAST32_MAX__ 2147483647
2494 // RISCV32: #define __INT_LEAST32_TYPE__ int
2495 // RISCV32: #define __INT_LEAST64_MAX__ 9223372036854775807LL
2496 // RISCV32: #define __INT_LEAST64_TYPE__ long long int
2497 // RISCV32: #define __INT_LEAST8_MAX__ 127
2498 // RISCV32: #define __INT_LEAST8_TYPE__ signed char
2499 // RISCV32: #define __INT_MAX__ 2147483647
2500 // RISCV32: #define __LDBL_DECIMAL_DIG__ 36
2501 // RISCV32: #define __LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L
2502 // RISCV32: #define __LDBL_DIG__ 33
2503 // RISCV32: #define __LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L
2504 // RISCV32: #define __LDBL_HAS_DENORM__ 1
2505 // RISCV32: #define __LDBL_HAS_INFINITY__ 1
2506 // RISCV32: #define __LDBL_HAS_QUIET_NAN__ 1
2507 // RISCV32: #define __LDBL_MANT_DIG__ 113
2508 // RISCV32: #define __LDBL_MAX_10_EXP__ 4932
2509 // RISCV32: #define __LDBL_MAX_EXP__ 16384
2510 // RISCV32: #define __LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L
2511 // RISCV32: #define __LDBL_MIN_10_EXP__ (-4931)
2512 // RISCV32: #define __LDBL_MIN_EXP__ (-16381)
2513 // RISCV32: #define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
2514 // RISCV32: #define __LITTLE_ENDIAN__ 1
2515 // RISCV32: #define __LONG_LONG_MAX__ 9223372036854775807LL
2516 // RISCV32: #define __LONG_MAX__ 2147483647L
2517 // RISCV32: #define __MEMORY_SCOPE_DEVICE 1
2518 // RISCV32: #define __MEMORY_SCOPE_SINGLE 4
2519 // RISCV32: #define __MEMORY_SCOPE_SYSTEM 0
2520 // RISCV32: #define __MEMORY_SCOPE_WRKGRP 2
2521 // RISCV32: #define __MEMORY_SCOPE_WVFRNT 3
2522 // RISCV32: #define __NO_INLINE__ 1
2523 // RISCV32: #define __POINTER_WIDTH__ 32
2524 // RISCV32: #define __PRAGMA_REDEFINE_EXTNAME 1
2525 // RISCV32: #define __PTRDIFF_MAX__ 2147483647
2526 // RISCV32: #define __PTRDIFF_TYPE__ int
2527 // RISCV32: #define __PTRDIFF_WIDTH__ 32
2528 // RISCV32: #define __SCHAR_MAX__ 127
2529 // RISCV32: #define __SHRT_MAX__ 32767
2530 // RISCV32: #define __SIG_ATOMIC_MAX__ 2147483647
2531 // RISCV32: #define __SIG_ATOMIC_WIDTH__ 32
2532 // RISCV32: #define __SIZEOF_DOUBLE__ 8
2533 // RISCV32: #define __SIZEOF_FLOAT__ 4
2534 // RISCV32-INT128: #define __SIZEOF_INT128__ 16
2535 // RISCV32: #define __SIZEOF_INT__ 4
2536 // RISCV32: #define __SIZEOF_LONG_DOUBLE__ 16
2537 // RISCV32: #define __SIZEOF_LONG_LONG__ 8
2538 // RISCV32: #define __SIZEOF_LONG__ 4
2539 // RISCV32: #define __SIZEOF_POINTER__ 4
2540 // RISCV32: #define __SIZEOF_PTRDIFF_T__ 4
2541 // RISCV32: #define __SIZEOF_SHORT__ 2
2542 // RISCV32: #define __SIZEOF_SIZE_T__ 4
2543 // RISCV32: #define __SIZEOF_WCHAR_T__ 4
2544 // RISCV32: #define __SIZEOF_WINT_T__ 4
2545 // RISCV32: #define __SIZE_MAX__ 4294967295U
2546 // RISCV32: #define __SIZE_TYPE__ unsigned int
2547 // RISCV32: #define __SIZE_WIDTH__ 32
2548 // RISCV32: #define __STDC_HOSTED__ 0
2549 // RISCV32: #define __STDC_UTF_16__ 1
2550 // RISCV32: #define __STDC_UTF_32__ 1
2551 // RISCV32: #define __STDC_VERSION__ 201710L
2552 // RISCV32: #define __STDC__ 1
2553 // RISCV32: #define __UINT16_C(c) c
2554 // RISCV32: #define __UINT16_C_SUFFIX__
2555 // RISCV32: #define __UINT16_MAX__ 65535
2556 // RISCV32: #define __UINT16_TYPE__ unsigned short
2557 // RISCV32: #define __UINT32_C(c) c##U
2558 // RISCV32: #define __UINT32_C_SUFFIX__ U
2559 // RISCV32: #define __UINT32_MAX__ 4294967295U
2560 // RISCV32: #define __UINT32_TYPE__ unsigned int
2561 // RISCV32: #define __UINT64_C(c) c##ULL
2562 // RISCV32: #define __UINT64_C_SUFFIX__ ULL
2563 // RISCV32: #define __UINT64_MAX__ 18446744073709551615ULL
2564 // RISCV32: #define __UINT64_TYPE__ long long unsigned int
2565 // RISCV32: #define __UINT8_C(c) c
2566 // RISCV32: #define __UINT8_C_SUFFIX__
2567 // RISCV32: #define __UINT8_MAX__ 255
2568 // RISCV32: #define __UINT8_TYPE__ unsigned char
2569 // RISCV32: #define __UINTMAX_C(c) c##ULL
2570 // RISCV32: #define __UINTMAX_C_SUFFIX__ ULL
2571 // RISCV32: #define __UINTMAX_MAX__ 18446744073709551615ULL
2572 // RISCV32: #define __UINTMAX_TYPE__ long long unsigned int
2573 // RISCV32: #define __UINTMAX_WIDTH__ 64
2574 // RISCV32: #define __UINTPTR_MAX__ 4294967295U
2575 // RISCV32: #define __UINTPTR_TYPE__ unsigned int
2576 // RISCV32: #define __UINTPTR_WIDTH__ 32
2577 // TODO: RISC-V GCC defines UINT_FAST16 to be unsigned int
2578 // RISCV32: #define __UINT_FAST16_MAX__ 65535
2579 // RISCV32: #define __UINT_FAST16_TYPE__ unsigned short
2580 // RISCV32: #define __UINT_FAST32_MAX__ 4294967295U
2581 // RISCV32: #define __UINT_FAST32_TYPE__ unsigned int
2582 // RISCV32: #define __UINT_FAST64_MAX__ 18446744073709551615ULL
2583 // RISCV32: #define __UINT_FAST64_TYPE__ long long unsigned int
2584 // TODO: RISC-V GCC defines UINT_FAST8 to be unsigned int
2585 // RISCV32: #define __UINT_FAST8_MAX__ 255
2586 // RISCV32: #define __UINT_FAST8_TYPE__ unsigned char
2587 // RISCV32: #define __UINT_LEAST16_MAX__ 65535
2588 // RISCV32: #define __UINT_LEAST16_TYPE__ unsigned short
2589 // RISCV32: #define __UINT_LEAST32_MAX__ 4294967295U
2590 // RISCV32: #define __UINT_LEAST32_TYPE__ unsigned int
2591 // RISCV32: #define __UINT_LEAST64_MAX__ 18446744073709551615ULL
2592 // RISCV32: #define __UINT_LEAST64_TYPE__ long long unsigned int
2593 // RISCV32: #define __UINT_LEAST8_MAX__ 255
2594 // RISCV32: #define __UINT_LEAST8_TYPE__ unsigned char
2595 // RISCV32: #define __USER_LABEL_PREFIX__
2596 // RISCV32: #define __WCHAR_MAX__ 2147483647
2597 // RISCV32: #define __WCHAR_TYPE__ int
2598 // RISCV32: #define __WCHAR_WIDTH__ 32
2599 // RISCV32: #define __WINT_TYPE__ unsigned int
2600 // RISCV32: #define __WINT_UNSIGNED__ 1
2601 // RISCV32: #define __WINT_WIDTH__ 32
2602 // RISCV32-LINUX: #define __gnu_linux__ 1
2603 // RISCV32-LINUX: #define __linux 1
2604 // RISCV32-LINUX: #define __linux__ 1
2605 // RISCV32: #define __riscv 1
2606 // RISCV32: #define __riscv_cmodel_medlow 1
2607 // RISCV32: #define __riscv_float_abi_soft 1
2608 // RISCV32: #define __riscv_xlen 32
2609 // RISCV32-LINUX: #define __unix 1
2610 // RISCV32-LINUX: #define __unix__ 1
2611 // RISCV32-LINUX: #define linux 1
2612 // RISCV32-LINUX: #define unix 1
2613 
2614 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=riscv64 < /dev/null \
2615 // RUN:   | FileCheck -match-full-lines -check-prefix=RISCV64 %s
2616 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=riscv64-unknown-linux < /dev/null \
2617 // RUN:   | FileCheck -match-full-lines -check-prefixes=RISCV64,RISCV64-LINUX %s
2618 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=riscv64-unknown-fuchsia < /dev/null \
2619 // RUN:   | FileCheck -match-full-lines -check-prefixes=RISCV64 %s
2620 // RISCV64: #define _LP64 1
2621 // RISCV64: #define __ATOMIC_ACQUIRE 2
2622 // RISCV64: #define __ATOMIC_ACQ_REL 4
2623 // RISCV64: #define __ATOMIC_CONSUME 1
2624 // RISCV64: #define __ATOMIC_RELAXED 0
2625 // RISCV64: #define __ATOMIC_RELEASE 3
2626 // RISCV64: #define __ATOMIC_SEQ_CST 5
2627 // RISCV64: #define __BIGGEST_ALIGNMENT__ 16
2628 // RISCV64: #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
2629 // RISCV64: #define __CHAR16_TYPE__ unsigned short
2630 // RISCV64: #define __CHAR32_TYPE__ unsigned int
2631 // RISCV64: #define __CHAR_BIT__ 8
2632 // RISCV64: #define __DBL_DECIMAL_DIG__ 17
2633 // RISCV64: #define __DBL_DENORM_MIN__ 4.9406564584124654e-324
2634 // RISCV64: #define __DBL_DIG__ 15
2635 // RISCV64: #define __DBL_EPSILON__ 2.2204460492503131e-16
2636 // RISCV64: #define __DBL_HAS_DENORM__ 1
2637 // RISCV64: #define __DBL_HAS_INFINITY__ 1
2638 // RISCV64: #define __DBL_HAS_QUIET_NAN__ 1
2639 // RISCV64: #define __DBL_MANT_DIG__ 53
2640 // RISCV64: #define __DBL_MAX_10_EXP__ 308
2641 // RISCV64: #define __DBL_MAX_EXP__ 1024
2642 // RISCV64: #define __DBL_MAX__ 1.7976931348623157e+308
2643 // RISCV64: #define __DBL_MIN_10_EXP__ (-307)
2644 // RISCV64: #define __DBL_MIN_EXP__ (-1021)
2645 // RISCV64: #define __DBL_MIN__ 2.2250738585072014e-308
2646 // RISCV64: #define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
2647 // RISCV64: #define __ELF__ 1
2648 // RISCV64: #define __FINITE_MATH_ONLY__ 0
2649 // RISCV64: #define __FLT_DECIMAL_DIG__ 9
2650 // RISCV64: #define __FLT_DENORM_MIN__ 1.40129846e-45F
2651 // RISCV64: #define __FLT_DIG__ 6
2652 // RISCV64: #define __FLT_EPSILON__ 1.19209290e-7F
2653 // RISCV64: #define __FLT_HAS_DENORM__ 1
2654 // RISCV64: #define __FLT_HAS_INFINITY__ 1
2655 // RISCV64: #define __FLT_HAS_QUIET_NAN__ 1
2656 // RISCV64: #define __FLT_MANT_DIG__ 24
2657 // RISCV64: #define __FLT_MAX_10_EXP__ 38
2658 // RISCV64: #define __FLT_MAX_EXP__ 128
2659 // RISCV64: #define __FLT_MAX__ 3.40282347e+38F
2660 // RISCV64: #define __FLT_MIN_10_EXP__ (-37)
2661 // RISCV64: #define __FLT_MIN_EXP__ (-125)
2662 // RISCV64: #define __FLT_MIN__ 1.17549435e-38F
2663 // RISCV64: #define __FLT_RADIX__ 2
2664 // RISCV64: #define __GCC_ATOMIC_BOOL_LOCK_FREE 1
2665 // RISCV64: #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 1
2666 // RISCV64: #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 1
2667 // RISCV64: #define __GCC_ATOMIC_CHAR_LOCK_FREE 1
2668 // RISCV64: #define __GCC_ATOMIC_INT_LOCK_FREE 1
2669 // RISCV64: #define __GCC_ATOMIC_LLONG_LOCK_FREE 1
2670 // RISCV64: #define __GCC_ATOMIC_LONG_LOCK_FREE 1
2671 // RISCV64: #define __GCC_ATOMIC_POINTER_LOCK_FREE 1
2672 // RISCV64: #define __GCC_ATOMIC_SHORT_LOCK_FREE 1
2673 // RISCV64: #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
2674 // RISCV64: #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 1
2675 // RISCV64: #define __GNUC_MINOR__ {{.*}}
2676 // RISCV64: #define __GNUC_PATCHLEVEL__ {{.*}}
2677 // RISCV64: #define __GNUC_STDC_INLINE__ 1
2678 // RISCV64: #define __GNUC__ {{.*}}
2679 // RISCV64: #define __GXX_ABI_VERSION {{.*}}
2680 // RISCV64: #define __INT16_C(c) c
2681 // RISCV64: #define __INT16_C_SUFFIX__
2682 // RISCV64: #define __INT16_MAX__ 32767
2683 // RISCV64: #define __INT16_TYPE__ short
2684 // RISCV64: #define __INT32_C(c) c
2685 // RISCV64: #define __INT32_C_SUFFIX__
2686 // RISCV64: #define __INT32_MAX__ 2147483647
2687 // RISCV64: #define __INT32_TYPE__ int
2688 // RISCV64: #define __INT64_C(c) c##L
2689 // RISCV64: #define __INT64_C_SUFFIX__ L
2690 // RISCV64: #define __INT64_MAX__ 9223372036854775807L
2691 // RISCV64: #define __INT64_TYPE__ long int
2692 // RISCV64: #define __INT8_C(c) c
2693 // RISCV64: #define __INT8_C_SUFFIX__
2694 // RISCV64: #define __INT8_MAX__ 127
2695 // RISCV64: #define __INT8_TYPE__ signed char
2696 // RISCV64: #define __INTMAX_C(c) c##L
2697 // RISCV64: #define __INTMAX_C_SUFFIX__ L
2698 // RISCV64: #define __INTMAX_MAX__ 9223372036854775807L
2699 // RISCV64: #define __INTMAX_TYPE__ long int
2700 // RISCV64: #define __INTMAX_WIDTH__ 64
2701 // RISCV64: #define __INTPTR_MAX__ 9223372036854775807L
2702 // RISCV64: #define __INTPTR_TYPE__ long int
2703 // RISCV64: #define __INTPTR_WIDTH__ 64
2704 // TODO: RISC-V GCC defines INT_FAST16 as int
2705 // RISCV64: #define __INT_FAST16_MAX__ 32767
2706 // RISCV64: #define __INT_FAST16_TYPE__ short
2707 // RISCV64: #define __INT_FAST32_MAX__ 2147483647
2708 // RISCV64: #define __INT_FAST32_TYPE__ int
2709 // RISCV64: #define __INT_FAST64_MAX__ 9223372036854775807L
2710 // RISCV64: #define __INT_FAST64_TYPE__ long int
2711 // TODO: RISC-V GCC defines INT_FAST8 as int
2712 // RISCV64: #define __INT_FAST8_MAX__ 127
2713 // RISCV64: #define __INT_FAST8_TYPE__ signed char
2714 // RISCV64: #define __INT_LEAST16_MAX__ 32767
2715 // RISCV64: #define __INT_LEAST16_TYPE__ short
2716 // RISCV64: #define __INT_LEAST32_MAX__ 2147483647
2717 // RISCV64: #define __INT_LEAST32_TYPE__ int
2718 // RISCV64: #define __INT_LEAST64_MAX__ 9223372036854775807L
2719 // RISCV64: #define __INT_LEAST64_TYPE__ long int
2720 // RISCV64: #define __INT_LEAST8_MAX__ 127
2721 // RISCV64: #define __INT_LEAST8_TYPE__ signed char
2722 // RISCV64: #define __INT_MAX__ 2147483647
2723 // RISCV64: #define __LDBL_DECIMAL_DIG__ 36
2724 // RISCV64: #define __LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L
2725 // RISCV64: #define __LDBL_DIG__ 33
2726 // RISCV64: #define __LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L
2727 // RISCV64: #define __LDBL_HAS_DENORM__ 1
2728 // RISCV64: #define __LDBL_HAS_INFINITY__ 1
2729 // RISCV64: #define __LDBL_HAS_QUIET_NAN__ 1
2730 // RISCV64: #define __LDBL_MANT_DIG__ 113
2731 // RISCV64: #define __LDBL_MAX_10_EXP__ 4932
2732 // RISCV64: #define __LDBL_MAX_EXP__ 16384
2733 // RISCV64: #define __LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L
2734 // RISCV64: #define __LDBL_MIN_10_EXP__ (-4931)
2735 // RISCV64: #define __LDBL_MIN_EXP__ (-16381)
2736 // RISCV64: #define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
2737 // RISCV64: #define __LITTLE_ENDIAN__ 1
2738 // RISCV64: #define __LONG_LONG_MAX__ 9223372036854775807LL
2739 // RISCV64: #define __LONG_MAX__ 9223372036854775807L
2740 // RISCV64: #define __LP64__ 1
2741 // RISCV64: #define __MEMORY_SCOPE_DEVICE 1
2742 // RISCV64: #define __MEMORY_SCOPE_SINGLE 4
2743 // RISCV64: #define __MEMORY_SCOPE_SYSTEM 0
2744 // RISCV64: #define __MEMORY_SCOPE_WRKGRP 2
2745 // RISCV64: #define __MEMORY_SCOPE_WVFRNT 3
2746 // RISCV64: #define __NO_INLINE__ 1
2747 // RISCV64: #define __POINTER_WIDTH__ 64
2748 // RISCV64: #define __PRAGMA_REDEFINE_EXTNAME 1
2749 // RISCV64: #define __PTRDIFF_MAX__ 9223372036854775807L
2750 // RISCV64: #define __PTRDIFF_TYPE__ long int
2751 // RISCV64: #define __PTRDIFF_WIDTH__ 64
2752 // RISCV64: #define __SCHAR_MAX__ 127
2753 // RISCV64: #define __SHRT_MAX__ 32767
2754 // RISCV64: #define __SIG_ATOMIC_MAX__ 2147483647
2755 // RISCV64: #define __SIG_ATOMIC_WIDTH__ 32
2756 // RISCV64: #define __SIZEOF_DOUBLE__ 8
2757 // RISCV64: #define __SIZEOF_FLOAT__ 4
2758 // RISCV64: #define __SIZEOF_INT__ 4
2759 // RISCV64: #define __SIZEOF_LONG_DOUBLE__ 16
2760 // RISCV64: #define __SIZEOF_LONG_LONG__ 8
2761 // RISCV64: #define __SIZEOF_LONG__ 8
2762 // RISCV64: #define __SIZEOF_POINTER__ 8
2763 // RISCV64: #define __SIZEOF_PTRDIFF_T__ 8
2764 // RISCV64: #define __SIZEOF_SHORT__ 2
2765 // RISCV64: #define __SIZEOF_SIZE_T__ 8
2766 // RISCV64: #define __SIZEOF_WCHAR_T__ 4
2767 // RISCV64: #define __SIZEOF_WINT_T__ 4
2768 // RISCV64: #define __SIZE_MAX__ 18446744073709551615UL
2769 // RISCV64: #define __SIZE_TYPE__ long unsigned int
2770 // RISCV64: #define __SIZE_WIDTH__ 64
2771 // RISCV64: #define __STDC_HOSTED__ 0
2772 // RISCV64: #define __STDC_UTF_16__ 1
2773 // RISCV64: #define __STDC_UTF_32__ 1
2774 // RISCV64: #define __STDC_VERSION__ 201710L
2775 // RISCV64: #define __STDC__ 1
2776 // RISCV64: #define __UINT16_C(c) c
2777 // RISCV64: #define __UINT16_C_SUFFIX__
2778 // RISCV64: #define __UINT16_MAX__ 65535
2779 // RISCV64: #define __UINT16_TYPE__ unsigned short
2780 // RISCV64: #define __UINT32_C(c) c##U
2781 // RISCV64: #define __UINT32_C_SUFFIX__ U
2782 // RISCV64: #define __UINT32_MAX__ 4294967295U
2783 // RISCV64: #define __UINT32_TYPE__ unsigned int
2784 // RISCV64: #define __UINT64_C(c) c##UL
2785 // RISCV64: #define __UINT64_C_SUFFIX__ UL
2786 // RISCV64: #define __UINT64_MAX__ 18446744073709551615UL
2787 // RISCV64: #define __UINT64_TYPE__ long unsigned int
2788 // RISCV64: #define __UINT8_C(c) c
2789 // RISCV64: #define __UINT8_C_SUFFIX__
2790 // RISCV64: #define __UINT8_MAX__ 255
2791 // RISCV64: #define __UINT8_TYPE__ unsigned char
2792 // RISCV64: #define __UINTMAX_C(c) c##UL
2793 // RISCV64: #define __UINTMAX_C_SUFFIX__ UL
2794 // RISCV64: #define __UINTMAX_MAX__ 18446744073709551615UL
2795 // RISCV64: #define __UINTMAX_TYPE__ long unsigned int
2796 // RISCV64: #define __UINTMAX_WIDTH__ 64
2797 // RISCV64: #define __UINTPTR_MAX__ 18446744073709551615UL
2798 // RISCV64: #define __UINTPTR_TYPE__ long unsigned int
2799 // RISCV64: #define __UINTPTR_WIDTH__ 64
2800 // TODO: RISC-V GCC defines UINT_FAST16 to be unsigned int
2801 // RISCV64: #define __UINT_FAST16_MAX__ 65535
2802 // RISCV64: #define __UINT_FAST16_TYPE__ unsigned short
2803 // RISCV64: #define __UINT_FAST32_MAX__ 4294967295U
2804 // RISCV64: #define __UINT_FAST32_TYPE__ unsigned int
2805 // RISCV64: #define __UINT_FAST64_MAX__ 18446744073709551615UL
2806 // RISCV64: #define __UINT_FAST64_TYPE__ long unsigned int
2807 // TODO: RISC-V GCC defines UINT_FAST8 to be unsigned int
2808 // RISCV64: #define __UINT_FAST8_MAX__ 255
2809 // RISCV64: #define __UINT_FAST8_TYPE__ unsigned char
2810 // RISCV64: #define __UINT_LEAST16_MAX__ 65535
2811 // RISCV64: #define __UINT_LEAST16_TYPE__ unsigned short
2812 // RISCV64: #define __UINT_LEAST32_MAX__ 4294967295U
2813 // RISCV64: #define __UINT_LEAST32_TYPE__ unsigned int
2814 // RISCV64: #define __UINT_LEAST64_MAX__ 18446744073709551615UL
2815 // RISCV64: #define __UINT_LEAST64_TYPE__ long unsigned int
2816 // RISCV64: #define __UINT_LEAST8_MAX__ 255
2817 // RISCV64: #define __UINT_LEAST8_TYPE__ unsigned char
2818 // RISCV64: #define __USER_LABEL_PREFIX__
2819 // RISCV64: #define __WCHAR_MAX__ 2147483647
2820 // RISCV64: #define __WCHAR_TYPE__ int
2821 // RISCV64: #define __WCHAR_WIDTH__ 32
2822 // RISCV64: #define __WINT_TYPE__ unsigned int
2823 // RISCV64: #define __WINT_UNSIGNED__ 1
2824 // RISCV64: #define __WINT_WIDTH__ 32
2825 // RISCV64-LINUX: #define __gnu_linux__ 1
2826 // RISCV64-LINUX: #define __linux 1
2827 // RISCV64-LINUX: #define __linux__ 1
2828 // RISCV64: #define __riscv 1
2829 // RISCV64: #define __riscv_cmodel_medlow 1
2830 // RISCV64: #define __riscv_float_abi_soft 1
2831 // RISCV64: #define __riscv_xlen 64
2832 // RISCV64-LINUX: #define __unix 1
2833 // RISCV64-LINUX: #define __unix__ 1
2834 // RISCV64-LINUX: #define linux 1
2835 // RISCV64-LINUX: #define unix 1
2836 
2837 // RUN: %clang_cc1 -dM -triple=x86_64-uefi -E /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s
2838 
2839 // UEFI: #define __UEFI__ 1
2840 
2841 // RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 -triple=xtensa  < /dev/null \
2842 // RUN:   | FileCheck -match-full-lines -check-prefix=XTENSA %s
2843 // XTENSA: #define _ILP32 1
2844 // XTENSA: #define __ATOMIC_ACQUIRE 2
2845 // XTENSA: #define __ATOMIC_ACQ_REL 4
2846 // XTENSA: #define __ATOMIC_CONSUME 1
2847 // XTENSA: #define __ATOMIC_RELAXED 0
2848 // XTENSA: #define __ATOMIC_RELEASE 3
2849 // XTENSA: #define __ATOMIC_SEQ_CST 5
2850 // XTENSA: #define __BIGGEST_ALIGNMENT__ 4
2851 // XTENSA: #define __BITINT_MAXWIDTH__ 128
2852 // XTENSA: #define __BOOL_WIDTH__ 1
2853 // XTENSA: #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
2854 // XTENSA: #define __CHAR16_TYPE__ unsigned short
2855 // XTENSA: #define __CHAR32_TYPE__ unsigned int
2856 // XTENSA: #define __CHAR_BIT__ 8
2857 // XTENSA: #define __CLANG_ATOMIC_BOOL_LOCK_FREE 2
2858 // XTENSA: #define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2
2859 // XTENSA: #define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2
2860 // XTENSA: #define __CLANG_ATOMIC_CHAR_LOCK_FREE 2
2861 // XTENSA: #define __CLANG_ATOMIC_INT_LOCK_FREE 2
2862 // XTENSA: #define __CLANG_ATOMIC_LLONG_LOCK_FREE 1
2863 // XTENSA: #define __CLANG_ATOMIC_LONG_LOCK_FREE 2
2864 // XTENSA: #define __CLANG_ATOMIC_POINTER_LOCK_FREE 2
2865 // XTENSA: #define __CLANG_ATOMIC_SHORT_LOCK_FREE 2
2866 // XTENSA: #define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2
2867 // XTENSA: #define __CONSTANT_CFSTRINGS__ 1
2868 // XTENSA: #define __DBL_DECIMAL_DIG__ 17
2869 // XTENSA: #define __DBL_DENORM_MIN__ 4.9406564584124654e-324
2870 // XTENSA: #define __DBL_DIG__ 15
2871 // XTENSA: #define __DBL_EPSILON__ 2.2204460492503131e-16
2872 // XTENSA: #define __DBL_HAS_DENORM__ 1
2873 // XTENSA: #define __DBL_HAS_INFINITY__ 1
2874 // XTENSA: #define __DBL_HAS_QUIET_NAN__ 1
2875 // XTENSA: #define __DBL_MANT_DIG__ 53
2876 // XTENSA: #define __DBL_MAX_10_EXP__ 308
2877 // XTENSA: #define __DBL_MAX_EXP__ 1024
2878 // XTENSA: #define __DBL_MAX__ 1.7976931348623157e+308
2879 // XTENSA: #define __DBL_MIN_10_EXP__ (-307)
2880 // XTENSA: #define __DBL_MIN_EXP__ (-1021)
2881 // XTENSA: #define __DBL_MIN__ 2.2250738585072014e-308
2882 // XTENSA: #define __DBL_NORM_MAX__ 1.7976931348623157e+308
2883 // XTENSA: #define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
2884 // XTENSA: #define __ELF__ 1
2885 // XTENSA: #define __FINITE_MATH_ONLY__ 0
2886 // XTENSA: #define __FLT_DECIMAL_DIG__ 9
2887 // XTENSA: #define __FLT_DENORM_MIN__ 1.40129846e-45F
2888 // XTENSA: #define __FLT_DIG__ 6
2889 // XTENSA: #define __FLT_EPSILON__ 1.19209290e-7F
2890 // XTENSA: #define __FLT_HAS_DENORM__ 1
2891 // XTENSA: #define __FLT_HAS_INFINITY__ 1
2892 // XTENSA: #define __FLT_HAS_QUIET_NAN__ 1
2893 // XTENSA: #define __FLT_MANT_DIG__ 24
2894 // XTENSA: #define __FLT_MAX_10_EXP__ 38
2895 // XTENSA: #define __FLT_MAX_EXP__ 128
2896 // XTENSA: #define __FLT_MAX__ 3.40282347e+38F
2897 // XTENSA: #define __FLT_MIN_10_EXP__ (-37)
2898 // XTENSA: #define __FLT_MIN_EXP__ (-125)
2899 // XTENSA: #define __FLT_MIN__ 1.17549435e-38F
2900 // XTENSA: #define __FLT_NORM_MAX__ 3.40282347e+38F
2901 // XTENSA: #define __FLT_RADIX__ 2
2902 // XTENSA: #define __FPCLASS_NEGINF 0x0004
2903 // XTENSA: #define __FPCLASS_NEGNORMAL 0x0008
2904 // XTENSA: #define __FPCLASS_NEGSUBNORMAL 0x0010
2905 // XTENSA: #define __FPCLASS_NEGZERO 0x0020
2906 // XTENSA: #define __FPCLASS_POSINF 0x0200
2907 // XTENSA: #define __FPCLASS_POSNORMAL 0x0100
2908 // XTENSA: #define __FPCLASS_POSSUBNORMAL 0x0080
2909 // XTENSA: #define __FPCLASS_POSZERO 0x0040
2910 // XTENSA: #define __FPCLASS_QNAN 0x0002
2911 // XTENSA: #define __FPCLASS_SNAN 0x0001
2912 // XTENSA: #define __GCC_ATOMIC_BOOL_LOCK_FREE 2
2913 // XTENSA: #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
2914 // XTENSA: #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
2915 // XTENSA: #define __GCC_ATOMIC_CHAR_LOCK_FREE 2
2916 // XTENSA: #define __GCC_ATOMIC_INT_LOCK_FREE 2
2917 // XTENSA: #define __GCC_ATOMIC_LLONG_LOCK_FREE 1
2918 // XTENSA: #define __GCC_ATOMIC_LONG_LOCK_FREE 2
2919 // XTENSA: #define __GCC_ATOMIC_POINTER_LOCK_FREE 2
2920 // XTENSA: #define __GCC_ATOMIC_SHORT_LOCK_FREE 2
2921 // XTENSA: #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
2922 // XTENSA: #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
2923 // XTENSA: #define __GCC_CONSTRUCTIVE_SIZE 64
2924 // XTENSA: #define __GCC_DESTRUCTIVE_SIZE 64
2925 // XTENSA: #define __GNUC_MINOR__ {{.*}}
2926 // XTENSA: #define __GNUC_PATCHLEVEL__ {{.*}}
2927 // XTENSA: #define __GNUC_STDC_INLINE__ 1
2928 // XTENSA: #define __GNUC__ {{.*}}
2929 // XTENSA: #define __GXX_ABI_VERSION {{.*}}
2930 // XTENSA: #define __ILP32__ 1
2931 // XTENSA: #define __INT16_C(c) c
2932 // XTENSA: #define __INT16_C_SUFFIX__
2933 // XTENSA: #define __INT16_MAX__ 32767
2934 // XTENSA: #define __INT16_TYPE__ short
2935 // XTENSA: #define __INT32_C(c) c
2936 // XTENSA: #define __INT32_C_SUFFIX__
2937 // XTENSA: #define __INT32_MAX__ 2147483647
2938 // XTENSA: #define __INT32_TYPE__ int
2939 // XTENSA: #define __INT64_C(c) c##LL
2940 // XTENSA: #define __INT64_C_SUFFIX__ LL
2941 // XTENSA: #define __INT64_MAX__ 9223372036854775807LL
2942 // XTENSA: #define __INT64_TYPE__ long long int
2943 // XTENSA: #define __INT8_C(c) c
2944 // XTENSA: #define __INT8_C_SUFFIX__
2945 // XTENSA: #define __INT8_MAX__ 127
2946 // XTENSA: #define __INT8_TYPE__ signed char
2947 // XTENSA: #define __INTMAX_C(c) c##LL
2948 // XTENSA: #define __INTMAX_C_SUFFIX__ LL
2949 // XTENSA: #define __INTMAX_MAX__ 9223372036854775807LL
2950 // XTENSA: #define __INTMAX_TYPE__ long long int
2951 // XTENSA: #define __INTMAX_WIDTH__ 64
2952 // XTENSA: #define __INTPTR_MAX__ 2147483647
2953 // XTENSA: #define __INTPTR_TYPE__ int
2954 // XTENSA: #define __INTPTR_WIDTH__ 32
2955 // TODO: Xtensa GCC defines INT_FAST16 as int
2956 // XTENSA: #define __INT_FAST16_MAX__ 32767
2957 // XTENSA: #define __INT_FAST16_TYPE__ short
2958 // XTENSA: #define __INT_FAST16_WIDTH__ 16
2959 // XTENSA: #define __INT_FAST32_MAX__ 2147483647
2960 // XTENSA: #define __INT_FAST32_TYPE__ int
2961 // XTENSA: #define __INT_FAST32_WIDTH__ 32
2962 // XTENSA: #define __INT_FAST64_MAX__ 9223372036854775807LL
2963 // XTENSA: #define __INT_FAST64_TYPE__ long long int
2964 // XTENSA: #define __INT_FAST64_WIDTH__ 64
2965 // TODO: Xtensa GCC defines INT_FAST8 as int
2966 // XTENSA: #define __INT_FAST8_MAX__ 127
2967 // XTENSA: #define __INT_FAST8_TYPE__ signed char
2968 // XTENSA: #define __INT_FAST8_WIDTH__ 8
2969 // XTENSA: #define __INT_LEAST16_MAX__ 32767
2970 // XTENSA: #define __INT_LEAST16_TYPE__ short
2971 // XTENSA: #define __INT_LEAST16_WIDTH__ 16
2972 // XTENSA: #define __INT_LEAST32_MAX__ 2147483647
2973 // XTENSA: #define __INT_LEAST32_TYPE__ int
2974 // XTENSA: #define __INT_LEAST32_WIDTH__ 32
2975 // XTENSA: #define __INT_LEAST64_MAX__ 9223372036854775807LL
2976 // XTENSA: #define __INT_LEAST64_TYPE__ long long int
2977 // XTENSA: #define __INT_LEAST64_WIDTH__ 64
2978 // XTENSA: #define __INT_LEAST8_MAX__ 127
2979 // XTENSA: #define __INT_LEAST8_TYPE__ signed char
2980 // XTENSA: #define __INT_LEAST8_WIDTH__ 8
2981 // XTENSA: #define __INT_MAX__ 2147483647
2982 // XTENSA: #define __INT_WIDTH__ 32
2983 // XTENSA: #define __LDBL_DECIMAL_DIG__ 17
2984 // XTENSA: #define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
2985 // XTENSA: #define __LDBL_DIG__ 15
2986 // XTENSA: #define __LDBL_EPSILON__ 2.2204460492503131e-16L
2987 // XTENSA: #define __LDBL_HAS_DENORM__ 1
2988 // XTENSA: #define __LDBL_HAS_INFINITY__ 1
2989 // XTENSA: #define __LDBL_HAS_QUIET_NAN__ 1
2990 // XTENSA: #define __LDBL_MANT_DIG__ 53
2991 // XTENSA: #define __LDBL_MAX_10_EXP__ 308
2992 // XTENSA: #define __LDBL_MAX_EXP__ 1024
2993 // XTENSA: #define __LDBL_MAX__ 1.7976931348623157e+308L
2994 // XTENSA: #define __LDBL_MIN_10_EXP__ (-307)
2995 // XTENSA: #define __LDBL_MIN_EXP__ (-1021)
2996 // XTENSA: #define __LDBL_MIN__ 2.2250738585072014e-308L
2997 // XTENSA: #define __LDBL_NORM_MAX__ 1.7976931348623157e+308L
2998 // XTENSA: #define __LITTLE_ENDIAN__ 1
2999 // XTENSA: #define __LLONG_WIDTH__ 64
3000 // XTENSA: #define __LONG_LONG_MAX__ 9223372036854775807LL
3001 // XTENSA: #define __LONG_MAX__ 2147483647L
3002 // XTENSA: #define __LONG_WIDTH__ 32
3003 // XTENSA: #define __MEMORY_SCOPE_DEVICE 1
3004 // XTENSA: #define __MEMORY_SCOPE_SINGLE 4
3005 // XTENSA: #define __MEMORY_SCOPE_SYSTEM 0
3006 // XTENSA: #define __MEMORY_SCOPE_WRKGRP 2
3007 // XTENSA: #define __MEMORY_SCOPE_WVFRNT 3
3008 // XTENSA: #define __NO_INLINE__ 1
3009 // XTENSA: #define __NO_MATH_ERRNO__ 1
3010 // XTENSA: #define __OBJC_BOOL_IS_BOOL 0
3011 // XTENSA: #define __POINTER_WIDTH__ 32
3012 // XTENSA: #define __PRAGMA_REDEFINE_EXTNAME 1
3013 // XTENSA: #define __PTRDIFF_MAX__ 2147483647
3014 // XTENSA: #define __PTRDIFF_TYPE__ int
3015 // XTENSA: #define __PTRDIFF_WIDTH__ 32
3016 // XTENSA: #define __SCHAR_MAX__ 127
3017 // XTENSA: #define __SHRT_MAX__ 32767
3018 // XTENSA: #define __SHRT_WIDTH__ 16
3019 // XTENSA: #define __SIG_ATOMIC_MAX__ 2147483647
3020 // XTENSA: #define __SIG_ATOMIC_WIDTH__ 32
3021 // XTENSA: #define __SIZEOF_DOUBLE__ 8
3022 // XTENSA: #define __SIZEOF_FLOAT__ 4
3023 // XTENSA: #define __SIZEOF_INT__ 4
3024 // XTENSA: #define __SIZEOF_LONG_DOUBLE__ 8
3025 // XTENSA: #define __SIZEOF_LONG_LONG__ 8
3026 // XTENSA: #define __SIZEOF_LONG__ 4
3027 // XTENSA: #define __SIZEOF_POINTER__ 4
3028 // XTENSA: #define __SIZEOF_PTRDIFF_T__ 4
3029 // XTENSA: #define __SIZEOF_SHORT__ 2
3030 // XTENSA: #define __SIZEOF_SIZE_T__ 4
3031 // XTENSA: #define __SIZEOF_WCHAR_T__ 4
3032 // XTENSA: #define __SIZEOF_WINT_T__ 4
3033 // XTENSA: #define __SIZE_MAX__ 4294967295U
3034 // XTENSA: #define __SIZE_TYPE__ unsigned int
3035 // XTENSA: #define __SIZE_WIDTH__ 32
3036 // XTENSA: #define __STDC_EMBED_EMPTY__ 2
3037 // XTENSA: #define __STDC_EMBED_FOUND__ 1
3038 // XTENSA: #define __STDC_EMBED_NOT_FOUND__ 0
3039 // XTENSA: #define __STDC_HOSTED__ 0
3040 // XTENSA: #define __STDC_UTF_16__ 1
3041 // XTENSA: #define __STDC_UTF_32__ 1
3042 // XTENSA: #define __STDC_VERSION__ 201710L
3043 // XTENSA: #define __STDC__ 1
3044 // XTENSA: #define __UINT16_C(c) c
3045 // XTENSA: #define __UINT16_C_SUFFIX__
3046 // XTENSA: #define __UINT16_MAX__ 65535
3047 // XTENSA: #define __UINT16_TYPE__ unsigned short
3048 // XTENSA: #define __UINT32_C(c) c##U
3049 // XTENSA: #define __UINT32_C_SUFFIX__ U
3050 // XTENSA: #define __UINT32_MAX__ 4294967295U
3051 // XTENSA: #define __UINT32_TYPE__ unsigned int
3052 // XTENSA: #define __UINT64_C(c) c##ULL
3053 // XTENSA: #define __UINT64_C_SUFFIX__ ULL
3054 // XTENSA: #define __UINT64_MAX__ 18446744073709551615ULL
3055 // XTENSA: #define __UINT64_TYPE__ long long unsigned int
3056 // XTENSA: #define __UINT8_C(c) c
3057 // XTENSA: #define __UINT8_C_SUFFIX__
3058 // XTENSA: #define __UINT8_MAX__ 255
3059 // XTENSA: #define __UINT8_TYPE__ unsigned char
3060 // XTENSA: #define __UINTMAX_C(c) c##ULL
3061 // XTENSA: #define __UINTMAX_C_SUFFIX__ ULL
3062 // XTENSA: #define __UINTMAX_MAX__ 18446744073709551615ULL
3063 // XTENSA: #define __UINTMAX_TYPE__ long long unsigned int
3064 // XTENSA: #define __UINTMAX_WIDTH__ 64
3065 // XTENSA: #define __UINTPTR_MAX__ 4294967295U
3066 // XTENSA: #define __UINTPTR_TYPE__ unsigned int
3067 // XTENSA: #define __UINTPTR_WIDTH__ 32
3068 // XTENSA: #define __UINT_FAST16_MAX__ 65535
3069 // XTENSA: #define __UINT_FAST16_TYPE__ unsigned short
3070 // XTENSA: #define __UINT_FAST32_MAX__ 4294967295U
3071 // XTENSA: #define __UINT_FAST32_TYPE__ unsigned int
3072 // XTENSA: #define __UINT_FAST64_MAX__ 18446744073709551615ULL
3073 // XTENSA: #define __UINT_FAST64_TYPE__ long long unsigned int
3074 // XTENSA: #define __UINT_FAST8_MAX__ 255
3075 // XTENSA: #define __UINT_FAST8_TYPE__ unsigned char
3076 // XTENSA: #define __UINT_LEAST16_MAX__ 65535
3077 // XTENSA: #define __UINT_LEAST16_TYPE__ unsigned short
3078 // XTENSA: #define __UINT_LEAST32_MAX__ 4294967295U
3079 // XTENSA: #define __UINT_LEAST32_TYPE__ unsigned int
3080 // XTENSA: #define __UINT_LEAST64_MAX__ 18446744073709551615ULL
3081 // XTENSA: #define __UINT_LEAST64_TYPE__ long long unsigned int
3082 // XTENSA: #define __UINT_LEAST8_MAX__ 255
3083 // XTENSA: #define __UINT_LEAST8_TYPE__ unsigned char
3084 // XTENSA: #define __USER_LABEL_PREFIX__
3085 // XTENSA: #define __WCHAR_MAX__ 2147483647
3086 // XTENSA: #define __WCHAR_TYPE__ int
3087 // XTENSA: #define __WCHAR_WIDTH__ 32
3088 // XTENSA: #define __WINT_MAX__ 4294967295U
3089 // XTENSA: #define __WINT_TYPE__ unsigned int
3090 // XTENSA: #define __WINT_UNSIGNED__ 1
3091 // XTENSA: #define __WINT_WIDTH__ 32
3092 // XTENSA: #define __XCHAL_HAVE_ABS 1
3093 // XTENSA: #define __XCHAL_HAVE_ADDX 1
3094 // XTENSA: #define __XCHAL_HAVE_BE 0
3095 // XTENSA: #define __XCHAL_HAVE_L32R 1
3096 // XTENSA: #define __XTENSA_EL__ 1
3097 // XTENSA: #define __XTENSA__ 1
3098 // XTENSA: #define __xtensa__ 1
3099