master
1/* <limits.h> for the Aro C compiler */
2
3#pragma once
4
5/* GlibC will try to include_next GCC's limits.h which will fail.
6 Define _GCC_LIMITS_H_ to prevent it. */
7#if defined __GNUC__ && !defined _GCC_LIMITS_H_
8#define _GCC_LIMITS_H_
9#endif
10
11/* Include the system's limits.h */
12#if __STDC_HOSTED__ && __has_include_next(<limits.h>)
13#include_next <limits.h>
14#endif
15
16#undef SCHAR_MAX
17#define SCHAR_MAX __SCHAR_MAX__
18
19#undef SHRT_MAX
20#define SHRT_MAX __SHRT_MAX__
21
22#undef INT_MAX
23#define INT_MAX __INT_MAX__
24
25#undef LONG_MAX
26#define LONG_MAX __LONG_MAX__
27
28#undef SCHAR_MIN
29#define SCHAR_MIN (-__SCHAR_MAX__-1)
30
31#undef SHRT_MIN
32#define SHRT_MIN (-__SHRT_MAX__ -1)
33
34#undef INT_MIN
35#define INT_MIN (-__INT_MAX__ -1)
36
37#undef LONG_MIN
38#define LONG_MIN (-__LONG_MAX__ -1L)
39
40#undef UCHAR_MAX
41#define UCHAR_MAX (__SCHAR_MAX__*2 +1)
42
43#undef USHRT_MAX
44#define USHRT_MAX (__SHRT_MAX__ *2 +1)
45
46#undef UINT_MAX
47#define UINT_MAX (__INT_MAX__ *2U +1U)
48
49#undef ULONG_MAX
50#define ULONG_MAX (__LONG_MAX__ *2UL+1UL)
51
52#ifndef MB_LEN_MAX
53#define MB_LEN_MAX 1
54#endif
55
56#undef CHAR_BIT
57#define CHAR_BIT __CHAR_BIT__
58
59#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
60
61#undef BOOL_WIDTH
62#define BOOL_WIDTH __BOOL_WIDTH__
63
64#undef CHAR_WIDTH
65#define CHAR_WIDTH CHAR_BIT
66
67#undef SCHAR_WIDTH
68#define SCHAR_WIDTH CHAR_BIT
69
70#undef UCHAR_WIDTH
71#define UCHAR_WIDTH CHAR_BIT
72
73#undef USHRT_WIDTH
74#define USHRT_WIDTH __SHRT_WIDTH__
75
76#undef SHRT_WIDTH
77#define SHRT_WIDTH __SHRT_WIDTH__
78
79#undef UINT_WIDTH
80#define UINT_WIDTH __INT_WIDTH__
81
82#undef INT_WIDTH
83#define INT_WIDTH __INT_WIDTH__
84
85#undef ULONG_WIDTH
86#define ULONG_WIDTH __LONG_WIDTH__
87
88#undef LONG_WIDTH
89#define LONG_WIDTH __LONG_WIDTH__
90
91#undef ULLONG_WIDTH
92#define ULLONG_WIDTH __LLONG_WIDTH__
93
94#undef LLONG_WIDTH
95#define LLONG_WIDTH __LLONG_WIDTH__
96
97#undef BITINT_MAXWIDTH
98#define BITINT_MAXWIDTH __BITINT_MAXWIDTH__
99
100#endif /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L */
101
102#undef CHAR_MIN
103#undef CHAR_MAX
104#ifdef __CHAR_UNSIGNED__
105#define CHAR_MIN 0
106#define CHAR_MAX UCHAR_MAX
107#else
108#define CHAR_MIN SCHAR_MIN
109#define CHAR_MAX __SCHAR_MAX__
110#endif
111
112#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
113
114#undef LLONG_MIN
115#define LLONG_MIN (-__LONG_LONG_MAX__-1LL)
116
117#undef LLONG_MAX
118#define LLONG_MAX __LONG_LONG_MAX__
119
120#undef ULLONG_MAX
121#define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
122
123#endif
124