1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// test <inttypes.h>
11
12#include <inttypes.h>
13#include <type_traits>
14
15#ifndef PRId8
16#error PRId8 not defined
17#endif
18
19#ifndef PRId16
20#error PRId16 not defined
21#endif
22
23#ifndef PRId32
24#error PRId32 not defined
25#endif
26
27#ifndef PRId64
28#error PRId64 not defined
29#endif
30
31#ifndef PRIdLEAST8
32#error PRIdLEAST8 not defined
33#endif
34
35#ifndef PRIdLEAST16
36#error PRIdLEAST16 not defined
37#endif
38
39#ifndef PRIdLEAST32
40#error PRIdLEAST32 not defined
41#endif
42
43#ifndef PRIdLEAST64
44#error PRIdLEAST64 not defined
45#endif
46
47#ifndef PRIdFAST8
48#error PRIdFAST8 not defined
49#endif
50
51#ifndef PRIdFAST16
52#error PRIdFAST16 not defined
53#endif
54
55#ifndef PRIdFAST32
56#error PRIdFAST32 not defined
57#endif
58
59#ifndef PRIdFAST64
60#error PRIdFAST64 not defined
61#endif
62
63#ifndef PRIdMAX
64#error PRIdMAX not defined
65#endif
66
67#ifndef PRIdPTR
68#error PRIdPTR not defined
69#endif
70
71#ifndef PRIi8
72#error PRIi8 not defined
73#endif
74
75#ifndef PRIi16
76#error PRIi16 not defined
77#endif
78
79#ifndef PRIi32
80#error PRIi32 not defined
81#endif
82
83#ifndef PRIi64
84#error PRIi64 not defined
85#endif
86
87#ifndef PRIiLEAST8
88#error PRIiLEAST8 not defined
89#endif
90
91#ifndef PRIiLEAST16
92#error PRIiLEAST16 not defined
93#endif
94
95#ifndef PRIiLEAST32
96#error PRIiLEAST32 not defined
97#endif
98
99#ifndef PRIiLEAST64
100#error PRIiLEAST64 not defined
101#endif
102
103#ifndef PRIiFAST8
104#error PRIiFAST8 not defined
105#endif
106
107#ifndef PRIiFAST16
108#error PRIiFAST16 not defined
109#endif
110
111#ifndef PRIiFAST32
112#error PRIiFAST32 not defined
113#endif
114
115#ifndef PRIiFAST64
116#error PRIiFAST64 not defined
117#endif
118
119#ifndef PRIiMAX
120#error PRIiMAX not defined
121#endif
122
123#ifndef PRIiPTR
124#error PRIiPTR not defined
125#endif
126
127#ifndef PRIo8
128#error PRIo8 not defined
129#endif
130
131#ifndef PRIo16
132#error PRIo16 not defined
133#endif
134
135#ifndef PRIo32
136#error PRIo32 not defined
137#endif
138
139#ifndef PRIo64
140#error PRIo64 not defined
141#endif
142
143#ifndef PRIoLEAST8
144#error PRIoLEAST8 not defined
145#endif
146
147#ifndef PRIoLEAST16
148#error PRIoLEAST16 not defined
149#endif
150
151#ifndef PRIoLEAST32
152#error PRIoLEAST32 not defined
153#endif
154
155#ifndef PRIoLEAST64
156#error PRIoLEAST64 not defined
157#endif
158
159#ifndef PRIoFAST8
160#error PRIoFAST8 not defined
161#endif
162
163#ifndef PRIoFAST16
164#error PRIoFAST16 not defined
165#endif
166
167#ifndef PRIoFAST32
168#error PRIoFAST32 not defined
169#endif
170
171#ifndef PRIoFAST64
172#error PRIoFAST64 not defined
173#endif
174
175#ifndef PRIoMAX
176#error PRIoMAX not defined
177#endif
178
179#ifndef PRIoPTR
180#error PRIoPTR not defined
181#endif
182
183#ifndef PRIu8
184#error PRIu8 not defined
185#endif
186
187#ifndef PRIu16
188#error PRIu16 not defined
189#endif
190
191#ifndef PRIu32
192#error PRIu32 not defined
193#endif
194
195#ifndef PRIu64
196#error PRIu64 not defined
197#endif
198
199#ifndef PRIuLEAST8
200#error PRIuLEAST8 not defined
201#endif
202
203#ifndef PRIuLEAST16
204#error PRIuLEAST16 not defined
205#endif
206
207#ifndef PRIuLEAST32
208#error PRIuLEAST32 not defined
209#endif
210
211#ifndef PRIuLEAST64
212#error PRIuLEAST64 not defined
213#endif
214
215#ifndef PRIuFAST8
216#error PRIuFAST8 not defined
217#endif
218
219#ifndef PRIuFAST16
220#error PRIuFAST16 not defined
221#endif
222
223#ifndef PRIuFAST32
224#error PRIuFAST32 not defined
225#endif
226
227#ifndef PRIuFAST64
228#error PRIuFAST64 not defined
229#endif
230
231#ifndef PRIuMAX
232#error PRIuMAX not defined
233#endif
234
235#ifndef PRIuPTR
236#error PRIuPTR not defined
237#endif
238
239#ifndef PRIx8
240#error PRIx8 not defined
241#endif
242
243#ifndef PRIx16
244#error PRIx16 not defined
245#endif
246
247#ifndef PRIx32
248#error PRIx32 not defined
249#endif
250
251#ifndef PRIx64
252#error PRIx64 not defined
253#endif
254
255#ifndef PRIxLEAST8
256#error PRIxLEAST8 not defined
257#endif
258
259#ifndef PRIxLEAST16
260#error PRIxLEAST16 not defined
261#endif
262
263#ifndef PRIxLEAST32
264#error PRIxLEAST32 not defined
265#endif
266
267#ifndef PRIxLEAST64
268#error PRIxLEAST64 not defined
269#endif
270
271#ifndef PRIxFAST8
272#error PRIxFAST8 not defined
273#endif
274
275#ifndef PRIxFAST16
276#error PRIxFAST16 not defined
277#endif
278
279#ifndef PRIxFAST32
280#error PRIxFAST32 not defined
281#endif
282
283#ifndef PRIxFAST64
284#error PRIxFAST64 not defined
285#endif
286
287#ifndef PRIxMAX
288#error PRIxMAX not defined
289#endif
290
291#ifndef PRIxPTR
292#error PRIxPTR not defined
293#endif
294
295#ifndef PRIX8
296#error PRIX8 not defined
297#endif
298
299#ifndef PRIX16
300#error PRIX16 not defined
301#endif
302
303#ifndef PRIX32
304#error PRIX32 not defined
305#endif
306
307#ifndef PRIX64
308#error PRIX64 not defined
309#endif
310
311#ifndef PRIXLEAST8
312#error PRIXLEAST8 not defined
313#endif
314
315#ifndef PRIXLEAST16
316#error PRIXLEAST16 not defined
317#endif
318
319#ifndef PRIXLEAST32
320#error PRIXLEAST32 not defined
321#endif
322
323#ifndef PRIXLEAST64
324#error PRIXLEAST64 not defined
325#endif
326
327#ifndef PRIXFAST8
328#error PRIXFAST8 not defined
329#endif
330
331#ifndef PRIXFAST16
332#error PRIXFAST16 not defined
333#endif
334
335#ifndef PRIXFAST32
336#error PRIXFAST32 not defined
337#endif
338
339#ifndef PRIXFAST64
340#error PRIXFAST64 not defined
341#endif
342
343#ifndef PRIXMAX
344#error PRIXMAX not defined
345#endif
346
347#ifndef PRIXPTR
348#error PRIXPTR not defined
349#endif
350
351#ifndef SCNd8
352#error SCNd8 not defined
353#endif
354
355#ifndef SCNd16
356#error SCNd16 not defined
357#endif
358
359#ifndef SCNd32
360#error SCNd32 not defined
361#endif
362
363#ifndef SCNd64
364#error SCNd64 not defined
365#endif
366
367#ifndef SCNdLEAST8
368#error SCNdLEAST8 not defined
369#endif
370
371#ifndef SCNdLEAST16
372#error SCNdLEAST16 not defined
373#endif
374
375#ifndef SCNdLEAST32
376#error SCNdLEAST32 not defined
377#endif
378
379#ifndef SCNdLEAST64
380#error SCNdLEAST64 not defined
381#endif
382
383#ifndef SCNdFAST8
384#error SCNdFAST8 not defined
385#endif
386
387#ifndef SCNdFAST16
388#error SCNdFAST16 not defined
389#endif
390
391#ifndef SCNdFAST32
392#error SCNdFAST32 not defined
393#endif
394
395#ifndef SCNdFAST64
396#error SCNdFAST64 not defined
397#endif
398
399#ifndef SCNdMAX
400#error SCNdMAX not defined
401#endif
402
403#ifndef SCNdPTR
404#error SCNdPTR not defined
405#endif
406
407#ifndef SCNi8
408#error SCNi8 not defined
409#endif
410
411#ifndef SCNi16
412#error SCNi16 not defined
413#endif
414
415#ifndef SCNi32
416#error SCNi32 not defined
417#endif
418
419#ifndef SCNi64
420#error SCNi64 not defined
421#endif
422
423#ifndef SCNiLEAST8
424#error SCNiLEAST8 not defined
425#endif
426
427#ifndef SCNiLEAST16
428#error SCNiLEAST16 not defined
429#endif
430
431#ifndef SCNiLEAST32
432#error SCNiLEAST32 not defined
433#endif
434
435#ifndef SCNiLEAST64
436#error SCNiLEAST64 not defined
437#endif
438
439#ifndef SCNiFAST8
440#error SCNiFAST8 not defined
441#endif
442
443#ifndef SCNiFAST16
444#error SCNiFAST16 not defined
445#endif
446
447#ifndef SCNiFAST32
448#error SCNiFAST32 not defined
449#endif
450
451#ifndef SCNiFAST64
452#error SCNiFAST64 not defined
453#endif
454
455#ifndef SCNiMAX
456#error SCNiMAX not defined
457#endif
458
459#ifndef SCNiPTR
460#error SCNiPTR not defined
461#endif
462
463#ifndef SCNo8
464#error SCNo8 not defined
465#endif
466
467#ifndef SCNo16
468#error SCNo16 not defined
469#endif
470
471#ifndef SCNo32
472#error SCNo32 not defined
473#endif
474
475#ifndef SCNo64
476#error SCNo64 not defined
477#endif
478
479#ifndef SCNoLEAST8
480#error SCNoLEAST8 not defined
481#endif
482
483#ifndef SCNoLEAST16
484#error SCNoLEAST16 not defined
485#endif
486
487#ifndef SCNoLEAST32
488#error SCNoLEAST32 not defined
489#endif
490
491#ifndef SCNoLEAST64
492#error SCNoLEAST64 not defined
493#endif
494
495#ifndef SCNoFAST8
496#error SCNoFAST8 not defined
497#endif
498
499#ifndef SCNoFAST16
500#error SCNoFAST16 not defined
501#endif
502
503#ifndef SCNoFAST32
504#error SCNoFAST32 not defined
505#endif
506
507#ifndef SCNoFAST64
508#error SCNoFAST64 not defined
509#endif
510
511#ifndef SCNoMAX
512#error SCNoMAX not defined
513#endif
514
515#ifndef SCNoPTR
516#error SCNoPTR not defined
517#endif
518
519#ifndef SCNu8
520#error SCNu8 not defined
521#endif
522
523#ifndef SCNu16
524#error SCNu16 not defined
525#endif
526
527#ifndef SCNu32
528#error SCNu32 not defined
529#endif
530
531#ifndef SCNu64
532#error SCNu64 not defined
533#endif
534
535#ifndef SCNuLEAST8
536#error SCNuLEAST8 not defined
537#endif
538
539#ifndef SCNuLEAST16
540#error SCNuLEAST16 not defined
541#endif
542
543#ifndef SCNuLEAST32
544#error SCNuLEAST32 not defined
545#endif
546
547#ifndef SCNuLEAST64
548#error SCNuLEAST64 not defined
549#endif
550
551#ifndef SCNuFAST8
552#error SCNuFAST8 not defined
553#endif
554
555#ifndef SCNuFAST16
556#error SCNuFAST16 not defined
557#endif
558
559#ifndef SCNuFAST32
560#error SCNuFAST32 not defined
561#endif
562
563#ifndef SCNuFAST64
564#error SCNuFAST64 not defined
565#endif
566
567#ifndef SCNuMAX
568#error SCNuMAX not defined
569#endif
570
571#ifndef SCNuPTR
572#error SCNuPTR not defined
573#endif
574
575#ifndef SCNx8
576#error SCNx8 not defined
577#endif
578
579#ifndef SCNx16
580#error SCNx16 not defined
581#endif
582
583#ifndef SCNx32
584#error SCNx32 not defined
585#endif
586
587#ifndef SCNx64
588#error SCNx64 not defined
589#endif
590
591#ifndef SCNxLEAST8
592#error SCNxLEAST8 not defined
593#endif
594
595#ifndef SCNxLEAST16
596#error SCNxLEAST16 not defined
597#endif
598
599#ifndef SCNxLEAST32
600#error SCNxLEAST32 not defined
601#endif
602
603#ifndef SCNxLEAST64
604#error SCNxLEAST64 not defined
605#endif
606
607#ifndef SCNxFAST8
608#error SCNxFAST8 not defined
609#endif
610
611#ifndef SCNxFAST16
612#error SCNxFAST16 not defined
613#endif
614
615#ifndef SCNxFAST32
616#error SCNxFAST32 not defined
617#endif
618
619#ifndef SCNxFAST64
620#error SCNxFAST64 not defined
621#endif
622
623#ifndef SCNxMAX
624#error SCNxMAX not defined
625#endif
626
627#ifndef SCNxPTR
628#error SCNxPTR not defined
629#endif
630
631int main()
632{
633    {
634    imaxdiv_t  i1 = {0};
635    }
636    intmax_t i = 0;
637    static_assert((std::is_same<decltype(imaxabs(i)), intmax_t>::value), "");
638    static_assert((std::is_same<decltype(imaxdiv(i, i)), imaxdiv_t>::value), "");
639    static_assert((std::is_same<decltype(strtoimax("", (char**)0, 0)), intmax_t>::value), "");
640    static_assert((std::is_same<decltype(strtoumax("", (char**)0, 0)), uintmax_t>::value), "");
641    static_assert((std::is_same<decltype(wcstoimax(L"", (wchar_t**)0, 0)), intmax_t>::value), "");
642    static_assert((std::is_same<decltype(wcstoumax(L"", (wchar_t**)0, 0)), uintmax_t>::value), "");
643}
644