]>
Commit | Line | Data |
---|---|---|
a5544970 | 1 | /* Copyright (C) 1991-2019 Free Software Foundation, Inc. |
ad41bd84 JM |
2 | |
3 | This file is part of GCC. | |
4 | ||
5 | GCC is free software; you can redistribute it and/or modify it under | |
6 | the terms of the GNU General Public License as published by the Free | |
7 | Software Foundation; either version 3, or (at your option) any later | |
8 | version. | |
9 | ||
10 | GCC is distributed in the hope that it will be useful, but WITHOUT ANY | |
11 | WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
12 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
13 | for more details. | |
14 | ||
15 | Under Section 7 of GPL version 3, you are granted additional | |
16 | permissions described in the GCC Runtime Library Exception, version | |
17 | 3.1, as published by the Free Software Foundation. | |
18 | ||
19 | You should have received a copy of the GNU General Public License and | |
20 | a copy of the GCC Runtime Library Exception along with this program; | |
21 | see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
22 | <http://www.gnu.org/licenses/>. */ | |
23 | ||
37797282 | 24 | #ifndef _LIMITS_H___ |
37797282 | 25 | #define _LIMITS_H___ |
f8fcec3a | 26 | |
dcaaea92 MM |
27 | /* Number of bits in a `char'. */ |
28 | #undef CHAR_BIT | |
676997cf | 29 | #define CHAR_BIT __CHAR_BIT__ |
dcaaea92 | 30 | |
706fdb45 ILT |
31 | /* Maximum length of a multibyte character. */ |
32 | #ifndef MB_LEN_MAX | |
dcaaea92 | 33 | #define MB_LEN_MAX 1 |
706fdb45 | 34 | #endif |
dcaaea92 MM |
35 | |
36 | /* Minimum and maximum values a `signed char' can hold. */ | |
37 | #undef SCHAR_MIN | |
676997cf | 38 | #define SCHAR_MIN (-SCHAR_MAX - 1) |
dcaaea92 | 39 | #undef SCHAR_MAX |
676997cf | 40 | #define SCHAR_MAX __SCHAR_MAX__ |
dcaaea92 MM |
41 | |
42 | /* Maximum value an `unsigned char' can hold. (Minimum is 0). */ | |
43 | #undef UCHAR_MAX | |
676997cf RH |
44 | #if __SCHAR_MAX__ == __INT_MAX__ |
45 | # define UCHAR_MAX (SCHAR_MAX * 2U + 1U) | |
46 | #else | |
47 | # define UCHAR_MAX (SCHAR_MAX * 2 + 1) | |
48 | #endif | |
dcaaea92 MM |
49 | |
50 | /* Minimum and maximum values a `char' can hold. */ | |
51 | #ifdef __CHAR_UNSIGNED__ | |
676997cf RH |
52 | # undef CHAR_MIN |
53 | # if __SCHAR_MAX__ == __INT_MAX__ | |
54 | # define CHAR_MIN 0U | |
55 | # else | |
56 | # define CHAR_MIN 0 | |
57 | # endif | |
58 | # undef CHAR_MAX | |
59 | # define CHAR_MAX UCHAR_MAX | |
dcaaea92 | 60 | #else |
676997cf RH |
61 | # undef CHAR_MIN |
62 | # define CHAR_MIN SCHAR_MIN | |
63 | # undef CHAR_MAX | |
64 | # define CHAR_MAX SCHAR_MAX | |
39bd2948 RL |
65 | #endif |
66 | ||
dcaaea92 MM |
67 | /* Minimum and maximum values a `signed short int' can hold. */ |
68 | #undef SHRT_MIN | |
676997cf | 69 | #define SHRT_MIN (-SHRT_MAX - 1) |
dcaaea92 | 70 | #undef SHRT_MAX |
39bd2948 | 71 | #define SHRT_MAX __SHRT_MAX__ |
dcaaea92 | 72 | |
51da3560 VM |
73 | /* Maximum value an `unsigned short int' can hold. (Minimum is 0). */ |
74 | #undef USHRT_MAX | |
39bd2948 | 75 | #if __SHRT_MAX__ == __INT_MAX__ |
676997cf | 76 | # define USHRT_MAX (SHRT_MAX * 2U + 1U) |
51da3560 | 77 | #else |
676997cf | 78 | # define USHRT_MAX (SHRT_MAX * 2 + 1) |
51da3560 VM |
79 | #endif |
80 | ||
676997cf RH |
81 | /* Minimum and maximum values a `signed int' can hold. */ |
82 | #undef INT_MIN | |
83 | #define INT_MIN (-INT_MAX - 1) | |
84 | #undef INT_MAX | |
85 | #define INT_MAX __INT_MAX__ | |
86 | ||
dcaaea92 MM |
87 | /* Maximum value an `unsigned int' can hold. (Minimum is 0). */ |
88 | #undef UINT_MAX | |
676997cf | 89 | #define UINT_MAX (INT_MAX * 2U + 1U) |
dcaaea92 MM |
90 | |
91 | /* Minimum and maximum values a `signed long int' can hold. | |
92 | (Same as `int'). */ | |
93 | #undef LONG_MIN | |
676997cf | 94 | #define LONG_MIN (-LONG_MAX - 1L) |
dcaaea92 | 95 | #undef LONG_MAX |
bd90e97e | 96 | #define LONG_MAX __LONG_MAX__ |
dcaaea92 MM |
97 | |
98 | /* Maximum value an `unsigned long int' can hold. (Minimum is 0). */ | |
99 | #undef ULONG_MAX | |
676997cf | 100 | #define ULONG_MAX (LONG_MAX * 2UL + 1UL) |
0c96ce22 JM |
101 | |
102 | #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L | |
103 | /* Minimum and maximum values a `signed long long int' can hold. */ | |
676997cf RH |
104 | # undef LLONG_MIN |
105 | # define LLONG_MIN (-LLONG_MAX - 1LL) | |
106 | # undef LLONG_MAX | |
107 | # define LLONG_MAX __LONG_LONG_MAX__ | |
0c96ce22 JM |
108 | |
109 | /* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ | |
676997cf RH |
110 | # undef ULLONG_MAX |
111 | # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) | |
0c96ce22 JM |
112 | #endif |
113 | ||
114 | #if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__) | |
115 | /* Minimum and maximum values a `signed long long int' can hold. */ | |
676997cf RH |
116 | # undef LONG_LONG_MIN |
117 | # define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL) | |
118 | # undef LONG_LONG_MAX | |
119 | # define LONG_LONG_MAX __LONG_LONG_MAX__ | |
3eb2ae15 RS |
120 | |
121 | /* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ | |
676997cf RH |
122 | # undef ULONG_LONG_MAX |
123 | # define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL) | |
3eb2ae15 RS |
124 | #endif |
125 | ||
c65248cb JM |
126 | #ifdef __STDC_WANT_IEC_60559_BFP_EXT__ |
127 | /* TS 18661-1 widths of integer types. */ | |
128 | # undef CHAR_WIDTH | |
129 | # define CHAR_WIDTH __SCHAR_WIDTH__ | |
130 | # undef SCHAR_WIDTH | |
131 | # define SCHAR_WIDTH __SCHAR_WIDTH__ | |
132 | # undef UCHAR_WIDTH | |
133 | # define UCHAR_WIDTH __SCHAR_WIDTH__ | |
134 | # undef SHRT_WIDTH | |
135 | # define SHRT_WIDTH __SHRT_WIDTH__ | |
136 | # undef USHRT_WIDTH | |
137 | # define USHRT_WIDTH __SHRT_WIDTH__ | |
138 | # undef INT_WIDTH | |
139 | # define INT_WIDTH __INT_WIDTH__ | |
140 | # undef UINT_WIDTH | |
141 | # define UINT_WIDTH __INT_WIDTH__ | |
142 | # undef LONG_WIDTH | |
143 | # define LONG_WIDTH __LONG_WIDTH__ | |
144 | # undef ULONG_WIDTH | |
145 | # define ULONG_WIDTH __LONG_WIDTH__ | |
146 | # undef LLONG_WIDTH | |
147 | # define LLONG_WIDTH __LONG_LONG_WIDTH__ | |
148 | # undef ULLONG_WIDTH | |
149 | # define ULLONG_WIDTH __LONG_LONG_WIDTH__ | |
150 | #endif | |
151 | ||
37797282 | 152 | #endif /* _LIMITS_H___ */ |