Go to the documentation of this file.
9 #ifndef __CLANG_LIMITS_H
10 #define __CLANG_LIMITS_H
14 #if defined __GNUC__ && !defined _GCC_LIMITS_H_
15 #define _GCC_LIMITS_H_
20 #if __STDC_HOSTED__ && __has_include_next(<limits.h>)
21 #include_next <limits.h>
44 #define SCHAR_MAX __SCHAR_MAX__
45 #define SHRT_MAX __SHRT_MAX__
46 #define INT_MAX __INT_MAX__
47 #define LONG_MAX __LONG_MAX__
49 #define SCHAR_MIN (-__SCHAR_MAX__-1)
50 #define SHRT_MIN (-__SHRT_MAX__ -1)
51 #define INT_MIN (-__INT_MAX__ -1)
52 #define LONG_MIN (-__LONG_MAX__ -1L)
54 #define UCHAR_MAX (__SCHAR_MAX__*2 +1)
55 #define USHRT_MAX (__SHRT_MAX__ *2 +1)
56 #define UINT_MAX (__INT_MAX__ *2U +1U)
57 #define ULONG_MAX (__LONG_MAX__ *2UL+1UL)
63 #define CHAR_BIT __CHAR_BIT__
68 #if __STDC_VERSION__ >= 202000L
69 #define BOOL_WIDTH __BOOL_WIDTH__
70 #define CHAR_WIDTH CHAR_BIT
71 #define SCHAR_WIDTH CHAR_BIT
72 #define UCHAR_WIDTH CHAR_BIT
73 #define USHRT_WIDTH __SHRT_WIDTH__
74 #define SHRT_WIDTH __SHRT_WIDTH__
75 #define UINT_WIDTH __INT_WIDTH__
76 #define INT_WIDTH __INT_WIDTH__
77 #define ULONG_WIDTH __LONG_WIDTH__
78 #define LONG_WIDTH __LONG_WIDTH__
79 #define ULLONG_WIDTH __LLONG_WIDTH__
80 #define LLONG_WIDTH __LLONG_WIDTH__
82 #define BITINT_MAXWIDTH __BITINT_MAXWIDTH__
85 #ifdef __CHAR_UNSIGNED__
87 #define CHAR_MAX UCHAR_MAX
89 #define CHAR_MIN SCHAR_MIN
90 #define CHAR_MAX __SCHAR_MAX__
96 #if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
102 #define LLONG_MAX __LONG_LONG_MAX__
103 #define LLONG_MIN (-__LONG_LONG_MAX__-1LL)
104 #define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
111 #if defined(__GNU_LIBRARY__) ? defined(__USE_GNU) : !defined(__STRICT_ANSI__)
115 #undef ULONG_LONG_MAX
117 #define LONG_LONG_MAX __LONG_LONG_MAX__
118 #define LONG_LONG_MIN (-__LONG_LONG_MAX__-1LL)
119 #define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)