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 */ 102