clang 20.0.0git
inttypes.h
Go to the documentation of this file.
1/*===---- inttypes.h - Standard header for integer printf macros ----------===*\
2 *
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 *
7\*===----------------------------------------------------------------------===*/
8
9#ifndef __CLANG_INTTYPES_H
10// AIX system headers need inttypes.h to be re-enterable while _STD_TYPES_T
11// is defined until an inclusion of it without _STD_TYPES_T occurs, in which
12// case the header guard macro is defined.
13#if !defined(_AIX) || !defined(_STD_TYPES_T)
14#define __CLANG_INTTYPES_H
15#endif
16#if defined(__MVS__) && __has_include_next(<inttypes.h>)
17#include_next <inttypes.h>
18#else
19
20#if defined(_MSC_VER) && _MSC_VER < 1800
21#error MSVC does not have inttypes.h prior to Visual Studio 2013
22#endif
23
24#include_next <inttypes.h>
25
26#if defined(_MSC_VER) && _MSC_VER < 1900
27/* MSVC headers define int32_t as int, but PRIx32 as "lx" instead of "x".
28 * This triggers format warnings, so fix it up here. */
29#undef PRId32
30#undef PRIdLEAST32
31#undef PRIdFAST32
32#undef PRIi32
33#undef PRIiLEAST32
34#undef PRIiFAST32
35#undef PRIo32
36#undef PRIoLEAST32
37#undef PRIoFAST32
38#undef PRIu32
39#undef PRIuLEAST32
40#undef PRIuFAST32
41#undef PRIx32
42#undef PRIxLEAST32
43#undef PRIxFAST32
44#undef PRIX32
45#undef PRIXLEAST32
46#undef PRIXFAST32
47
48#undef SCNd32
49#undef SCNdLEAST32
50#undef SCNdFAST32
51#undef SCNi32
52#undef SCNiLEAST32
53#undef SCNiFAST32
54#undef SCNo32
55#undef SCNoLEAST32
56#undef SCNoFAST32
57#undef SCNu32
58#undef SCNuLEAST32
59#undef SCNuFAST32
60#undef SCNx32
61#undef SCNxLEAST32
62#undef SCNxFAST32
63
64#define PRId32 "d"
65#define PRIdLEAST32 "d"
66#define PRIdFAST32 "d"
67#define PRIi32 "i"
68#define PRIiLEAST32 "i"
69#define PRIiFAST32 "i"
70#define PRIo32 "o"
71#define PRIoLEAST32 "o"
72#define PRIoFAST32 "o"
73#define PRIu32 "u"
74#define PRIuLEAST32 "u"
75#define PRIuFAST32 "u"
76#define PRIx32 "x"
77#define PRIxLEAST32 "x"
78#define PRIxFAST32 "x"
79#define PRIX32 "X"
80#define PRIXLEAST32 "X"
81#define PRIXFAST32 "X"
82
83#define SCNd32 "d"
84#define SCNdLEAST32 "d"
85#define SCNdFAST32 "d"
86#define SCNi32 "i"
87#define SCNiLEAST32 "i"
88#define SCNiFAST32 "i"
89#define SCNo32 "o"
90#define SCNoLEAST32 "o"
91#define SCNoFAST32 "o"
92#define SCNu32 "u"
93#define SCNuLEAST32 "u"
94#define SCNuFAST32 "u"
95#define SCNx32 "x"
96#define SCNxLEAST32 "x"
97#define SCNxFAST32 "x"
98#endif
99
100#endif /* __MVS__ */
101#endif /* __CLANG_INTTYPES_H */