aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdint.in.h
diff options
context:
space:
mode:
authorPaul Eggert2016-09-15 11:50:23 -0700
committerPaul Eggert2016-09-15 15:55:30 -0700
commit8f4b6a20bfec96086845b2f7161e121b1e41b4ad (patch)
treee8c4a85626437b0f77ed0a7b575e7627d45dce9e /lib/stdint.in.h
parent3c586e182c0694896dda670f5fc663b46c9bac63 (diff)
downloademacs-8f4b6a20bfec96086845b2f7161e121b1e41b4ad.tar.gz
emacs-8f4b6a20bfec96086845b2f7161e121b1e41b4ad.zip
Update from gnulib
This incorporates: 2016-09-15 stdint: support new _WIDTH macros 2016-09-15 limits-h: new module 2016-09-15 sys_types: avoid glibc 2.25 warnings about major() 2016-09-15 extensions: port to more ISO C TSes 2016-09-13 intprops: new macro TYPE_WIDTH 2016-09-13 extensions: port to recent ISO C TRs * .gitignore: Add lib/limits.h. * doc/misc/texinfo.tex, lib/ftoastr.h, lib/intprops.h: * lib/stdint.in.h, m4/extensions.m4, m4/stdint.m4, m4/stdio_h.m4: * m4/sys_types_h.m4: Copy from gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * lib/limits.in.h, m4/limits-h.m4: New files, copie from gnulib. * nt/gnulib.mk: Merge changes from lib/gnulib.mk.
Diffstat (limited to 'lib/stdint.in.h')
-rw-r--r--lib/stdint.in.h747
1 files changed, 405 insertions, 342 deletions
diff --git a/lib/stdint.in.h b/lib/stdint.in.h
index cf65ec62e97..c86ab096289 100644
--- a/lib/stdint.in.h
+++ b/lib/stdint.in.h
@@ -79,49 +79,51 @@
79#if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H 79#if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
80#define _@GUARD_PREFIX@_STDINT_H 80#define _@GUARD_PREFIX@_STDINT_H
81 81
82/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX,
83 LONG_MIN, LONG_MAX, ULONG_MAX, _GL_INTEGER_WIDTH. */
84#include <limits.h>
85
86#if ! @HAVE_C99_STDINT_H@
87
82/* <sys/types.h> defines some of the stdint.h types as well, on glibc, 88/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
83 IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>). 89 IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
84 AIX 5.2 <sys/types.h> isn't needed and causes troubles. 90 AIX 5.2 <sys/types.h> isn't needed and causes troubles.
85 Mac OS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but 91 Mac OS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
86 relies on the system <stdint.h> definitions, so include 92 relies on the system <stdint.h> definitions, so include
87 <sys/types.h> after @NEXT_STDINT_H@. */ 93 <sys/types.h> after @NEXT_STDINT_H@. */
88#if @HAVE_SYS_TYPES_H@ && ! defined _AIX 94# if @HAVE_SYS_TYPES_H@ && ! defined _AIX
89# include <sys/types.h> 95# include <sys/types.h>
90#endif 96# endif
91
92/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX,
93 LONG_MIN, LONG_MAX, ULONG_MAX. */
94#include <limits.h>
95 97
96#if @HAVE_INTTYPES_H@ 98# if @HAVE_INTTYPES_H@
97 /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines 99 /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
98 int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. 100 int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
99 <inttypes.h> also defines intptr_t and uintptr_t. */ 101 <inttypes.h> also defines intptr_t and uintptr_t. */
100# include <inttypes.h> 102# include <inttypes.h>
101#elif @HAVE_SYS_INTTYPES_H@ 103# elif @HAVE_SYS_INTTYPES_H@
102 /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and 104 /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
103 the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ 105 the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */
104# include <sys/inttypes.h> 106# include <sys/inttypes.h>
105#endif 107# endif
106 108
107#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ 109# if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
108 /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines 110 /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
109 int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is 111 int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is
110 included by <sys/types.h>. */ 112 included by <sys/types.h>. */
111# include <sys/bitypes.h> 113# include <sys/bitypes.h>
112#endif 114# endif
113 115
114#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H 116# undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
115 117
116/* Minimum and maximum values for an integer type under the usual assumption. 118/* Minimum and maximum values for an integer type under the usual assumption.
117 Return an unspecified value if BITS == 0, adding a check to pacify 119 Return an unspecified value if BITS == 0, adding a check to pacify
118 picky compilers. */ 120 picky compilers. */
119 121
120#define _STDINT_MIN(signed, bits, zero) \ 122# define _STDINT_MIN(signed, bits, zero) \
121 ((signed) ? ~ _STDINT_MAX (signed, bits, zero) : (zero)) 123 ((signed) ? ~ _STDINT_MAX (signed, bits, zero) : (zero))
122 124
123#define _STDINT_MAX(signed, bits, zero) \ 125# define _STDINT_MAX(signed, bits, zero) \
124 (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) 126 (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
125 127
126#if !GNULIB_defined_stdint_types 128#if !GNULIB_defined_stdint_types
127 129
@@ -130,26 +132,26 @@
130/* Here we assume a standard architecture where the hardware integer 132/* Here we assume a standard architecture where the hardware integer
131 types have 8, 16, 32, optionally 64 bits. */ 133 types have 8, 16, 32, optionally 64 bits. */
132 134
133#undef int8_t 135# undef int8_t
134#undef uint8_t 136# undef uint8_t
135typedef signed char gl_int8_t; 137typedef signed char gl_int8_t;
136typedef unsigned char gl_uint8_t; 138typedef unsigned char gl_uint8_t;
137#define int8_t gl_int8_t 139# define int8_t gl_int8_t
138#define uint8_t gl_uint8_t 140# define uint8_t gl_uint8_t
139 141
140#undef int16_t 142# undef int16_t
141#undef uint16_t 143# undef uint16_t
142typedef short int gl_int16_t; 144typedef short int gl_int16_t;
143typedef unsigned short int gl_uint16_t; 145typedef unsigned short int gl_uint16_t;
144#define int16_t gl_int16_t 146# define int16_t gl_int16_t
145#define uint16_t gl_uint16_t 147# define uint16_t gl_uint16_t
146 148
147#undef int32_t 149# undef int32_t
148#undef uint32_t 150# undef uint32_t
149typedef int gl_int32_t; 151typedef int gl_int32_t;
150typedef unsigned int gl_uint32_t; 152typedef unsigned int gl_uint32_t;
151#define int32_t gl_int32_t 153# define int32_t gl_int32_t
152#define uint32_t gl_uint32_t 154# define uint32_t gl_uint32_t
153 155
154/* If the system defines INT64_MAX, assume int64_t works. That way, 156/* If the system defines INT64_MAX, assume int64_t works. That way,
155 if the underlying platform defines int64_t to be a 64-bit long long 157 if the underlying platform defines int64_t to be a 64-bit long long
@@ -157,54 +159,54 @@ typedef unsigned int gl_uint32_t;
157 int, which would mess up C++ name mangling. We must use #ifdef 159 int, which would mess up C++ name mangling. We must use #ifdef
158 rather than #if, to avoid an error with HP-UX 10.20 cc. */ 160 rather than #if, to avoid an error with HP-UX 10.20 cc. */
159 161
160#ifdef INT64_MAX 162# ifdef INT64_MAX
161# define GL_INT64_T 163# define GL_INT64_T
162#else 164# else
163/* Do not undefine int64_t if gnulib is not being used with 64-bit 165/* Do not undefine int64_t if gnulib is not being used with 64-bit
164 types, since otherwise it breaks platforms like Tandem/NSK. */ 166 types, since otherwise it breaks platforms like Tandem/NSK. */
165# if LONG_MAX >> 31 >> 31 == 1 167# if LONG_MAX >> 31 >> 31 == 1
166# undef int64_t 168# undef int64_t
167typedef long int gl_int64_t; 169typedef long int gl_int64_t;
168# define int64_t gl_int64_t 170# define int64_t gl_int64_t
169# define GL_INT64_T 171# define GL_INT64_T
170# elif defined _MSC_VER 172# elif defined _MSC_VER
171# undef int64_t 173# undef int64_t
172typedef __int64 gl_int64_t; 174typedef __int64 gl_int64_t;
173# define int64_t gl_int64_t 175# define int64_t gl_int64_t
174# define GL_INT64_T 176# define GL_INT64_T
175# elif @HAVE_LONG_LONG_INT@ 177# elif @HAVE_LONG_LONG_INT@
176# undef int64_t 178# undef int64_t
177typedef long long int gl_int64_t; 179typedef long long int gl_int64_t;
178# define int64_t gl_int64_t 180# define int64_t gl_int64_t
179# define GL_INT64_T 181# define GL_INT64_T
182# endif
180# endif 183# endif
181#endif
182 184
183#ifdef UINT64_MAX 185# ifdef UINT64_MAX
184# define GL_UINT64_T
185#else
186# if ULONG_MAX >> 31 >> 31 >> 1 == 1
187# undef uint64_t
188typedef unsigned long int gl_uint64_t;
189# define uint64_t gl_uint64_t
190# define GL_UINT64_T 186# define GL_UINT64_T
191# elif defined _MSC_VER 187# else
192# undef uint64_t 188# if ULONG_MAX >> 31 >> 31 >> 1 == 1
189# undef uint64_t
190typedef unsigned long int gl_uint64_t;
191# define uint64_t gl_uint64_t
192# define GL_UINT64_T
193# elif defined _MSC_VER
194# undef uint64_t
193typedef unsigned __int64 gl_uint64_t; 195typedef unsigned __int64 gl_uint64_t;
194# define uint64_t gl_uint64_t 196# define uint64_t gl_uint64_t
195# define GL_UINT64_T 197# define GL_UINT64_T
196# elif @HAVE_UNSIGNED_LONG_LONG_INT@ 198# elif @HAVE_UNSIGNED_LONG_LONG_INT@
197# undef uint64_t 199# undef uint64_t
198typedef unsigned long long int gl_uint64_t; 200typedef unsigned long long int gl_uint64_t;
199# define uint64_t gl_uint64_t 201# define uint64_t gl_uint64_t
200# define GL_UINT64_T 202# define GL_UINT64_T
203# endif
201# endif 204# endif
202#endif
203 205
204/* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */ 206/* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */
205#define _UINT8_T 207# define _UINT8_T
206#define _UINT32_T 208# define _UINT32_T
207#define _UINT64_T 209# define _UINT64_T
208 210
209 211
210/* 7.18.1.2. Minimum-width integer types */ 212/* 7.18.1.2. Minimum-width integer types */
@@ -213,26 +215,26 @@ typedef unsigned long long int gl_uint64_t;
213 types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types 215 types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
214 are the same as the corresponding N_t types. */ 216 are the same as the corresponding N_t types. */
215 217
216#undef int_least8_t 218# undef int_least8_t
217#undef uint_least8_t 219# undef uint_least8_t
218#undef int_least16_t 220# undef int_least16_t
219#undef uint_least16_t 221# undef uint_least16_t
220#undef int_least32_t 222# undef int_least32_t
221#undef uint_least32_t 223# undef uint_least32_t
222#undef int_least64_t 224# undef int_least64_t
223#undef uint_least64_t 225# undef uint_least64_t
224#define int_least8_t int8_t 226# define int_least8_t int8_t
225#define uint_least8_t uint8_t 227# define uint_least8_t uint8_t
226#define int_least16_t int16_t 228# define int_least16_t int16_t
227#define uint_least16_t uint16_t 229# define uint_least16_t uint16_t
228#define int_least32_t int32_t 230# define int_least32_t int32_t
229#define uint_least32_t uint32_t 231# define uint_least32_t uint32_t
230#ifdef GL_INT64_T 232# ifdef GL_INT64_T
231# define int_least64_t int64_t 233# define int_least64_t int64_t
232#endif 234# endif
233#ifdef GL_UINT64_T 235# ifdef GL_UINT64_T
234# define uint_least64_t uint64_t 236# define uint_least64_t uint64_t
235#endif 237# endif
236 238
237/* 7.18.1.3. Fastest minimum-width integer types */ 239/* 7.18.1.3. Fastest minimum-width integer types */
238 240
@@ -245,55 +247,55 @@ typedef unsigned long long int gl_uint64_t;
245 uses types consistent with glibc, as that lessens the chance of 247 uses types consistent with glibc, as that lessens the chance of
246 incompatibility with older GNU hosts. */ 248 incompatibility with older GNU hosts. */
247 249
248#undef int_fast8_t 250# undef int_fast8_t
249#undef uint_fast8_t 251# undef uint_fast8_t
250#undef int_fast16_t 252# undef int_fast16_t
251#undef uint_fast16_t 253# undef uint_fast16_t
252#undef int_fast32_t 254# undef int_fast32_t
253#undef uint_fast32_t 255# undef uint_fast32_t
254#undef int_fast64_t 256# undef int_fast64_t
255#undef uint_fast64_t 257# undef uint_fast64_t
256typedef signed char gl_int_fast8_t; 258typedef signed char gl_int_fast8_t;
257typedef unsigned char gl_uint_fast8_t; 259typedef unsigned char gl_uint_fast8_t;
258 260
259#ifdef __sun 261# ifdef __sun
260/* Define types compatible with SunOS 5.10, so that code compiled under 262/* Define types compatible with SunOS 5.10, so that code compiled under
261 earlier SunOS versions works with code compiled under SunOS 5.10. */ 263 earlier SunOS versions works with code compiled under SunOS 5.10. */
262typedef int gl_int_fast32_t; 264typedef int gl_int_fast32_t;
263typedef unsigned int gl_uint_fast32_t; 265typedef unsigned int gl_uint_fast32_t;
264#else 266# else
265typedef long int gl_int_fast32_t; 267typedef long int gl_int_fast32_t;
266typedef unsigned long int gl_uint_fast32_t; 268typedef unsigned long int gl_uint_fast32_t;
267#endif 269# endif
268typedef gl_int_fast32_t gl_int_fast16_t; 270typedef gl_int_fast32_t gl_int_fast16_t;
269typedef gl_uint_fast32_t gl_uint_fast16_t; 271typedef gl_uint_fast32_t gl_uint_fast16_t;
270 272
271#define int_fast8_t gl_int_fast8_t 273# define int_fast8_t gl_int_fast8_t
272#define uint_fast8_t gl_uint_fast8_t 274# define uint_fast8_t gl_uint_fast8_t
273#define int_fast16_t gl_int_fast16_t 275# define int_fast16_t gl_int_fast16_t
274#define uint_fast16_t gl_uint_fast16_t 276# define uint_fast16_t gl_uint_fast16_t
275#define int_fast32_t gl_int_fast32_t 277# define int_fast32_t gl_int_fast32_t
276#define uint_fast32_t gl_uint_fast32_t 278# define uint_fast32_t gl_uint_fast32_t
277#ifdef GL_INT64_T 279# ifdef GL_INT64_T
278# define int_fast64_t int64_t 280# define int_fast64_t int64_t
279#endif 281# endif
280#ifdef GL_UINT64_T 282# ifdef GL_UINT64_T
281# define uint_fast64_t uint64_t 283# define uint_fast64_t uint64_t
282#endif 284# endif
283 285
284/* 7.18.1.4. Integer types capable of holding object pointers */ 286/* 7.18.1.4. Integer types capable of holding object pointers */
285 287
286/* kLIBC's stdint.h defines _INTPTR_T_DECLARED and needs its own 288/* kLIBC's stdint.h defines _INTPTR_T_DECLARED and needs its own
287 definitions of intptr_t and uintptr_t (which use int and unsigned) 289 definitions of intptr_t and uintptr_t (which use int and unsigned)
288 to avoid clashes with declarations of system functions like sbrk. */ 290 to avoid clashes with declarations of system functions like sbrk. */
289#ifndef _INTPTR_T_DECLARED 291# ifndef _INTPTR_T_DECLARED
290#undef intptr_t 292# undef intptr_t
291#undef uintptr_t 293# undef uintptr_t
292typedef long int gl_intptr_t; 294typedef long int gl_intptr_t;
293typedef unsigned long int gl_uintptr_t; 295typedef unsigned long int gl_uintptr_t;
294#define intptr_t gl_intptr_t 296# define intptr_t gl_intptr_t
295#define uintptr_t gl_uintptr_t 297# define uintptr_t gl_uintptr_t
296#endif 298# endif
297 299
298/* 7.18.1.5. Greatest-width integer types */ 300/* 7.18.1.5. Greatest-width integer types */
299 301
@@ -304,33 +306,33 @@ typedef unsigned long int gl_uintptr_t;
304 similarly for UINTMAX_MAX and uintmax_t. This avoids problems with 306 similarly for UINTMAX_MAX and uintmax_t. This avoids problems with
305 assuming one type where another is used by the system. */ 307 assuming one type where another is used by the system. */
306 308
307#ifndef INTMAX_MAX 309# ifndef INTMAX_MAX
308# undef INTMAX_C 310# undef INTMAX_C
309# undef intmax_t 311# undef intmax_t
310# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 312# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
311typedef long long int gl_intmax_t; 313typedef long long int gl_intmax_t;
312# define intmax_t gl_intmax_t 314# define intmax_t gl_intmax_t
313# elif defined GL_INT64_T 315# elif defined GL_INT64_T
314# define intmax_t int64_t 316# define intmax_t int64_t
315# else 317# else
316typedef long int gl_intmax_t; 318typedef long int gl_intmax_t;
317# define intmax_t gl_intmax_t 319# define intmax_t gl_intmax_t
320# endif
318# endif 321# endif
319#endif
320 322
321#ifndef UINTMAX_MAX 323# ifndef UINTMAX_MAX
322# undef UINTMAX_C 324# undef UINTMAX_C
323# undef uintmax_t 325# undef uintmax_t
324# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 326# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
325typedef unsigned long long int gl_uintmax_t; 327typedef unsigned long long int gl_uintmax_t;
326# define uintmax_t gl_uintmax_t 328# define uintmax_t gl_uintmax_t
327# elif defined GL_UINT64_T 329# elif defined GL_UINT64_T
328# define uintmax_t uint64_t 330# define uintmax_t uint64_t
329# else 331# else
330typedef unsigned long int gl_uintmax_t; 332typedef unsigned long int gl_uintmax_t;
331# define uintmax_t gl_uintmax_t 333# define uintmax_t gl_uintmax_t
334# endif
332# endif 335# endif
333#endif
334 336
335/* Verify that intmax_t and uintmax_t have the same size. Too much code 337/* Verify that intmax_t and uintmax_t have the same size. Too much code
336 breaks if this is not the case. If this check fails, the reason is likely 338 breaks if this is not the case. If this check fails, the reason is likely
@@ -338,8 +340,8 @@ typedef unsigned long int gl_uintmax_t;
338typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) 340typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
339 ? 1 : -1]; 341 ? 1 : -1];
340 342
341#define GNULIB_defined_stdint_types 1 343# define GNULIB_defined_stdint_types 1
342#endif /* !GNULIB_defined_stdint_types */ 344# endif /* !GNULIB_defined_stdint_types */
343 345
344/* 7.18.2. Limits of specified-width integer types */ 346/* 7.18.2. Limits of specified-width integer types */
345 347
@@ -348,37 +350,37 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
348/* Here we assume a standard architecture where the hardware integer 350/* Here we assume a standard architecture where the hardware integer
349 types have 8, 16, 32, optionally 64 bits. */ 351 types have 8, 16, 32, optionally 64 bits. */
350 352
351#undef INT8_MIN 353# undef INT8_MIN
352#undef INT8_MAX 354# undef INT8_MAX
353#undef UINT8_MAX 355# undef UINT8_MAX
354#define INT8_MIN (~ INT8_MAX) 356# define INT8_MIN (~ INT8_MAX)
355#define INT8_MAX 127 357# define INT8_MAX 127
356#define UINT8_MAX 255 358# define UINT8_MAX 255
357 359
358#undef INT16_MIN 360# undef INT16_MIN
359#undef INT16_MAX 361# undef INT16_MAX
360#undef UINT16_MAX 362# undef UINT16_MAX
361#define INT16_MIN (~ INT16_MAX) 363# define INT16_MIN (~ INT16_MAX)
362#define INT16_MAX 32767 364# define INT16_MAX 32767
363#define UINT16_MAX 65535 365# define UINT16_MAX 65535
364 366
365#undef INT32_MIN 367# undef INT32_MIN
366#undef INT32_MAX 368# undef INT32_MAX
367#undef UINT32_MAX 369# undef UINT32_MAX
368#define INT32_MIN (~ INT32_MAX) 370# define INT32_MIN (~ INT32_MAX)
369#define INT32_MAX 2147483647 371# define INT32_MAX 2147483647
370#define UINT32_MAX 4294967295U 372# define UINT32_MAX 4294967295U
371 373
372#if defined GL_INT64_T && ! defined INT64_MAX 374# if defined GL_INT64_T && ! defined INT64_MAX
373/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 375/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
374 evaluates the latter incorrectly in preprocessor expressions. */ 376 evaluates the latter incorrectly in preprocessor expressions. */
375# define INT64_MIN (- INTMAX_C (1) << 63) 377# define INT64_MIN (- INTMAX_C (1) << 63)
376# define INT64_MAX INTMAX_C (9223372036854775807) 378# define INT64_MAX INTMAX_C (9223372036854775807)
377#endif 379# endif
378 380
379#if defined GL_UINT64_T && ! defined UINT64_MAX 381# if defined GL_UINT64_T && ! defined UINT64_MAX
380# define UINT64_MAX UINTMAX_C (18446744073709551615) 382# define UINT64_MAX UINTMAX_C (18446744073709551615)
381#endif 383# endif
382 384
383/* 7.18.2.2. Limits of minimum-width integer types */ 385/* 7.18.2.2. Limits of minimum-width integer types */
384 386
@@ -386,38 +388,38 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
386 types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types 388 types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
387 are the same as the corresponding N_t types. */ 389 are the same as the corresponding N_t types. */
388 390
389#undef INT_LEAST8_MIN 391# undef INT_LEAST8_MIN
390#undef INT_LEAST8_MAX 392# undef INT_LEAST8_MAX
391#undef UINT_LEAST8_MAX 393# undef UINT_LEAST8_MAX
392#define INT_LEAST8_MIN INT8_MIN 394# define INT_LEAST8_MIN INT8_MIN
393#define INT_LEAST8_MAX INT8_MAX 395# define INT_LEAST8_MAX INT8_MAX
394#define UINT_LEAST8_MAX UINT8_MAX 396# define UINT_LEAST8_MAX UINT8_MAX
395 397
396#undef INT_LEAST16_MIN 398# undef INT_LEAST16_MIN
397#undef INT_LEAST16_MAX 399# undef INT_LEAST16_MAX
398#undef UINT_LEAST16_MAX 400# undef UINT_LEAST16_MAX
399#define INT_LEAST16_MIN INT16_MIN 401# define INT_LEAST16_MIN INT16_MIN
400#define INT_LEAST16_MAX INT16_MAX 402# define INT_LEAST16_MAX INT16_MAX
401#define UINT_LEAST16_MAX UINT16_MAX 403# define UINT_LEAST16_MAX UINT16_MAX
402 404
403#undef INT_LEAST32_MIN 405# undef INT_LEAST32_MIN
404#undef INT_LEAST32_MAX 406# undef INT_LEAST32_MAX
405#undef UINT_LEAST32_MAX 407# undef UINT_LEAST32_MAX
406#define INT_LEAST32_MIN INT32_MIN 408# define INT_LEAST32_MIN INT32_MIN
407#define INT_LEAST32_MAX INT32_MAX 409# define INT_LEAST32_MAX INT32_MAX
408#define UINT_LEAST32_MAX UINT32_MAX 410# define UINT_LEAST32_MAX UINT32_MAX
409 411
410#undef INT_LEAST64_MIN 412# undef INT_LEAST64_MIN
411#undef INT_LEAST64_MAX 413# undef INT_LEAST64_MAX
412#ifdef GL_INT64_T 414# ifdef GL_INT64_T
413# define INT_LEAST64_MIN INT64_MIN 415# define INT_LEAST64_MIN INT64_MIN
414# define INT_LEAST64_MAX INT64_MAX 416# define INT_LEAST64_MAX INT64_MAX
415#endif 417# endif
416 418
417#undef UINT_LEAST64_MAX 419# undef UINT_LEAST64_MAX
418#ifdef GL_UINT64_T 420# ifdef GL_UINT64_T
419# define UINT_LEAST64_MAX UINT64_MAX 421# define UINT_LEAST64_MAX UINT64_MAX
420#endif 422# endif
421 423
422/* 7.18.2.3. Limits of fastest minimum-width integer types */ 424/* 7.18.2.3. Limits of fastest minimum-width integer types */
423 425
@@ -425,117 +427,117 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
425 types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types 427 types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
426 are taken from the same list of types. */ 428 are taken from the same list of types. */
427 429
428#undef INT_FAST8_MIN 430# undef INT_FAST8_MIN
429#undef INT_FAST8_MAX 431# undef INT_FAST8_MAX
430#undef UINT_FAST8_MAX 432# undef UINT_FAST8_MAX
431#define INT_FAST8_MIN SCHAR_MIN 433# define INT_FAST8_MIN SCHAR_MIN
432#define INT_FAST8_MAX SCHAR_MAX 434# define INT_FAST8_MAX SCHAR_MAX
433#define UINT_FAST8_MAX UCHAR_MAX 435# define UINT_FAST8_MAX UCHAR_MAX
434 436
435#undef INT_FAST16_MIN 437# undef INT_FAST16_MIN
436#undef INT_FAST16_MAX 438# undef INT_FAST16_MAX
437#undef UINT_FAST16_MAX 439# undef UINT_FAST16_MAX
438#define INT_FAST16_MIN INT_FAST32_MIN 440# define INT_FAST16_MIN INT_FAST32_MIN
439#define INT_FAST16_MAX INT_FAST32_MAX 441# define INT_FAST16_MAX INT_FAST32_MAX
440#define UINT_FAST16_MAX UINT_FAST32_MAX 442# define UINT_FAST16_MAX UINT_FAST32_MAX
441 443
442#undef INT_FAST32_MIN 444# undef INT_FAST32_MIN
443#undef INT_FAST32_MAX 445# undef INT_FAST32_MAX
444#undef UINT_FAST32_MAX 446# undef UINT_FAST32_MAX
445#ifdef __sun 447# ifdef __sun
446# define INT_FAST32_MIN INT_MIN 448# define INT_FAST32_MIN INT_MIN
447# define INT_FAST32_MAX INT_MAX 449# define INT_FAST32_MAX INT_MAX
448# define UINT_FAST32_MAX UINT_MAX 450# define UINT_FAST32_MAX UINT_MAX
449#else 451# else
450# define INT_FAST32_MIN LONG_MIN 452# define INT_FAST32_MIN LONG_MIN
451# define INT_FAST32_MAX LONG_MAX 453# define INT_FAST32_MAX LONG_MAX
452# define UINT_FAST32_MAX ULONG_MAX 454# define UINT_FAST32_MAX ULONG_MAX
453#endif 455# endif
454 456
455#undef INT_FAST64_MIN 457# undef INT_FAST64_MIN
456#undef INT_FAST64_MAX 458# undef INT_FAST64_MAX
457#ifdef GL_INT64_T 459# ifdef GL_INT64_T
458# define INT_FAST64_MIN INT64_MIN 460# define INT_FAST64_MIN INT64_MIN
459# define INT_FAST64_MAX INT64_MAX 461# define INT_FAST64_MAX INT64_MAX
460#endif 462# endif
461 463
462#undef UINT_FAST64_MAX 464# undef UINT_FAST64_MAX
463#ifdef GL_UINT64_T 465# ifdef GL_UINT64_T
464# define UINT_FAST64_MAX UINT64_MAX 466# define UINT_FAST64_MAX UINT64_MAX
465#endif 467# endif
466 468
467/* 7.18.2.4. Limits of integer types capable of holding object pointers */ 469/* 7.18.2.4. Limits of integer types capable of holding object pointers */
468 470
469#undef INTPTR_MIN 471# undef INTPTR_MIN
470#undef INTPTR_MAX 472# undef INTPTR_MAX
471#undef UINTPTR_MAX 473# undef UINTPTR_MAX
472#define INTPTR_MIN LONG_MIN 474# define INTPTR_MIN LONG_MIN
473#define INTPTR_MAX LONG_MAX 475# define INTPTR_MAX LONG_MAX
474#define UINTPTR_MAX ULONG_MAX 476# define UINTPTR_MAX ULONG_MAX
475 477
476/* 7.18.2.5. Limits of greatest-width integer types */ 478/* 7.18.2.5. Limits of greatest-width integer types */
477 479
478#ifndef INTMAX_MAX 480# ifndef INTMAX_MAX
479# undef INTMAX_MIN 481# undef INTMAX_MIN
480# ifdef INT64_MAX 482# ifdef INT64_MAX
481# define INTMAX_MIN INT64_MIN 483# define INTMAX_MIN INT64_MIN
482# define INTMAX_MAX INT64_MAX 484# define INTMAX_MAX INT64_MAX
483# else 485# else
484# define INTMAX_MIN INT32_MIN 486# define INTMAX_MIN INT32_MIN
485# define INTMAX_MAX INT32_MAX 487# define INTMAX_MAX INT32_MAX
488# endif
486# endif 489# endif
487#endif
488 490
489#ifndef UINTMAX_MAX 491# ifndef UINTMAX_MAX
490# ifdef UINT64_MAX 492# ifdef UINT64_MAX
491# define UINTMAX_MAX UINT64_MAX 493# define UINTMAX_MAX UINT64_MAX
492# else 494# else
493# define UINTMAX_MAX UINT32_MAX 495# define UINTMAX_MAX UINT32_MAX
496# endif
494# endif 497# endif
495#endif
496 498
497/* 7.18.3. Limits of other integer types */ 499/* 7.18.3. Limits of other integer types */
498 500
499/* ptrdiff_t limits */ 501/* ptrdiff_t limits */
500#undef PTRDIFF_MIN 502# undef PTRDIFF_MIN
501#undef PTRDIFF_MAX 503# undef PTRDIFF_MAX
502#if @APPLE_UNIVERSAL_BUILD@ 504# if @APPLE_UNIVERSAL_BUILD@
503# ifdef _LP64 505# ifdef _LP64
504# define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l) 506# define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l)
505# define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) 507# define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l)
508# else
509# define PTRDIFF_MIN _STDINT_MIN (1, 32, 0)
510# define PTRDIFF_MAX _STDINT_MAX (1, 32, 0)
511# endif
506# else 512# else
507# define PTRDIFF_MIN _STDINT_MIN (1, 32, 0) 513# define PTRDIFF_MIN \
508# define PTRDIFF_MAX _STDINT_MAX (1, 32, 0)
509# endif
510#else
511# define PTRDIFF_MIN \
512 _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) 514 _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
513# define PTRDIFF_MAX \ 515# define PTRDIFF_MAX \
514 _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) 516 _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
515#endif 517# endif
516 518
517/* sig_atomic_t limits */ 519/* sig_atomic_t limits */
518#undef SIG_ATOMIC_MIN 520# undef SIG_ATOMIC_MIN
519#undef SIG_ATOMIC_MAX 521# undef SIG_ATOMIC_MAX
520#define SIG_ATOMIC_MIN \ 522# define SIG_ATOMIC_MIN \
521 _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 523 _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
522 0@SIG_ATOMIC_T_SUFFIX@) 524 0@SIG_ATOMIC_T_SUFFIX@)
523#define SIG_ATOMIC_MAX \ 525# define SIG_ATOMIC_MAX \
524 _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 526 _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
525 0@SIG_ATOMIC_T_SUFFIX@) 527 0@SIG_ATOMIC_T_SUFFIX@)
526 528
527 529
528/* size_t limit */ 530/* size_t limit */
529#undef SIZE_MAX 531# undef SIZE_MAX
530#if @APPLE_UNIVERSAL_BUILD@ 532# if @APPLE_UNIVERSAL_BUILD@
531# ifdef _LP64 533# ifdef _LP64
532# define SIZE_MAX _STDINT_MAX (0, 64, 0ul) 534# define SIZE_MAX _STDINT_MAX (0, 64, 0ul)
535# else
536# define SIZE_MAX _STDINT_MAX (0, 32, 0ul)
537# endif
533# else 538# else
534# define SIZE_MAX _STDINT_MAX (0, 32, 0ul) 539# define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
535# endif 540# endif
536#else
537# define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
538#endif
539 541
540/* wchar_t limits */ 542/* wchar_t limits */
541/* Get WCHAR_MIN, WCHAR_MAX. 543/* Get WCHAR_MIN, WCHAR_MAX.
@@ -543,29 +545,29 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
543 sequence of nested includes 545 sequence of nested includes
544 <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes 546 <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes
545 <stdint.h> and assumes its types are already defined. */ 547 <stdint.h> and assumes its types are already defined. */
546#if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) 548# if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX)
547 /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be 549 /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
548 included before <wchar.h>. */ 550 included before <wchar.h>. */
549# include <stddef.h> 551# include <stddef.h>
550# include <stdio.h> 552# include <stdio.h>
551# include <time.h> 553# include <time.h>
552# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H 554# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
553# include <wchar.h> 555# include <wchar.h>
554# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H 556# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
555#endif 557# endif
556#undef WCHAR_MIN 558# undef WCHAR_MIN
557#undef WCHAR_MAX 559# undef WCHAR_MAX
558#define WCHAR_MIN \ 560# define WCHAR_MIN \
559 _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) 561 _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
560#define WCHAR_MAX \ 562# define WCHAR_MAX \
561 _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) 563 _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
562 564
563/* wint_t limits */ 565/* wint_t limits */
564#undef WINT_MIN 566# undef WINT_MIN
565#undef WINT_MAX 567# undef WINT_MAX
566#define WINT_MIN \ 568# define WINT_MIN \
567 _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) 569 _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
568#define WINT_MAX \ 570# define WINT_MAX \
569 _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) 571 _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
570 572
571/* 7.18.4. Macros for integer constants */ 573/* 7.18.4. Macros for integer constants */
@@ -576,59 +578,120 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
576/* Here we assume a standard architecture where the hardware integer 578/* Here we assume a standard architecture where the hardware integer
577 types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ 579 types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */
578 580
579#undef INT8_C 581# undef INT8_C
580#undef UINT8_C 582# undef UINT8_C
581#define INT8_C(x) x 583# define INT8_C(x) x
582#define UINT8_C(x) x 584# define UINT8_C(x) x
583 585
584#undef INT16_C 586# undef INT16_C
585#undef UINT16_C 587# undef UINT16_C
586#define INT16_C(x) x 588# define INT16_C(x) x
587#define UINT16_C(x) x 589# define UINT16_C(x) x
588 590
589#undef INT32_C 591# undef INT32_C
590#undef UINT32_C 592# undef UINT32_C
591#define INT32_C(x) x 593# define INT32_C(x) x
592#define UINT32_C(x) x ## U 594# define UINT32_C(x) x ## U
593 595
594#undef INT64_C 596# undef INT64_C
595#undef UINT64_C 597# undef UINT64_C
596#if LONG_MAX >> 31 >> 31 == 1 598# if LONG_MAX >> 31 >> 31 == 1
597# define INT64_C(x) x##L 599# define INT64_C(x) x##L
598#elif defined _MSC_VER 600# elif defined _MSC_VER
599# define INT64_C(x) x##i64 601# define INT64_C(x) x##i64
600#elif @HAVE_LONG_LONG_INT@ 602# elif @HAVE_LONG_LONG_INT@
601# define INT64_C(x) x##LL 603# define INT64_C(x) x##LL
602#endif 604# endif
603#if ULONG_MAX >> 31 >> 31 >> 1 == 1 605# if ULONG_MAX >> 31 >> 31 >> 1 == 1
604# define UINT64_C(x) x##UL 606# define UINT64_C(x) x##UL
605#elif defined _MSC_VER 607# elif defined _MSC_VER
606# define UINT64_C(x) x##ui64 608# define UINT64_C(x) x##ui64
607#elif @HAVE_UNSIGNED_LONG_LONG_INT@ 609# elif @HAVE_UNSIGNED_LONG_LONG_INT@
608# define UINT64_C(x) x##ULL 610# define UINT64_C(x) x##ULL
609#endif 611# endif
610 612
611/* 7.18.4.2. Macros for greatest-width integer constants */ 613/* 7.18.4.2. Macros for greatest-width integer constants */
612 614
613#ifndef INTMAX_C 615# ifndef INTMAX_C
614# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 616# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
615# define INTMAX_C(x) x##LL 617# define INTMAX_C(x) x##LL
616# elif defined GL_INT64_T 618# elif defined GL_INT64_T
617# define INTMAX_C(x) INT64_C(x) 619# define INTMAX_C(x) INT64_C(x)
618# else 620# else
619# define INTMAX_C(x) x##L 621# define INTMAX_C(x) x##L
622# endif
620# endif 623# endif
621#endif
622 624
623#ifndef UINTMAX_C 625# ifndef UINTMAX_C
624# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 626# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
625# define UINTMAX_C(x) x##ULL 627# define UINTMAX_C(x) x##ULL
626# elif defined GL_UINT64_T 628# elif defined GL_UINT64_T
627# define UINTMAX_C(x) UINT64_C(x) 629# define UINTMAX_C(x) UINT64_C(x)
628# else 630# else
629# define UINTMAX_C(x) x##UL 631# define UINTMAX_C(x) x##UL
632# endif
630# endif 633# endif
631#endif 634
635#endif /* !@HAVE_C99_STDINT_H@ */
636
637/* Macros specified by ISO/IEC TS 18661-1:2014. */
638
639#if (!defined UINTMAX_WIDTH \
640 && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__))
641# ifdef INT8_MAX
642# define INT8_WIDTH _GL_INTEGER_WIDTH (INT8_MIN, INT8_MAX)
643# endif
644# ifdef UINT8_MAX
645# define UINT8_WIDTH _GL_INTEGER_WIDTH (0, UINT8_MAX)
646# endif
647# ifdef INT16_MAX
648# define INT16_WIDTH _GL_INTEGER_WIDTH (INT16_MIN, INT16_MAX)
649# endif
650# ifdef UINT16_MAX
651# define UINT16_WIDTH _GL_INTEGER_WIDTH (0, UINT16_MAX)
652# endif
653# ifdef INT32_MAX
654# define INT32_WIDTH _GL_INTEGER_WIDTH (INT32_MIN, INT32_MAX)
655# endif
656# ifdef UINT32_MAX
657# define UINT32_WIDTH _GL_INTEGER_WIDTH (0, UINT32_MAX)
658# endif
659# ifdef INT64_MAX
660# define INT64_WIDTH _GL_INTEGER_WIDTH (INT64_MIN, INT64_MAX)
661# endif
662# ifdef UINT64_MAX
663# define UINT64_WIDTH _GL_INTEGER_WIDTH (0, UINT64_MAX)
664# endif
665# define INT_LEAST8_WIDTH _GL_INTEGER_WIDTH (INT_LEAST8_MIN, INT_LEAST8_MAX)
666# define UINT_LEAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST8_MAX)
667# define INT_LEAST16_WIDTH _GL_INTEGER_WIDTH (INT_LEAST16_MIN, INT_LEAST16_MAX)
668# define UINT_LEAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST16_MAX)
669# define INT_LEAST32_WIDTH _GL_INTEGER_WIDTH (INT_LEAST32_MIN, INT_LEAST32_MAX)
670# define UINT_LEAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST32_MAX)
671# define INT_LEAST64_WIDTH _GL_INTEGER_WIDTH (INT_LEAST64_MIN, INT_LEAST64_MAX)
672# define UINT_LEAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST64_MAX)
673# define INT_FAST8_WIDTH _GL_INTEGER_WIDTH (INT_FAST8_MIN, INT_FAST8_MAX)
674# define UINT_FAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST8_MAX)
675# define INT_FAST16_WIDTH _GL_INTEGER_WIDTH (INT_FAST16_MIN, INT_FAST16_MAX)
676# define UINT_FAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST16_MAX)
677# define INT_FAST32_WIDTH _GL_INTEGER_WIDTH (INT_FAST32_MIN, INT_FAST32_MAX)
678# define UINT_FAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST32_MAX)
679# define INT_FAST64_WIDTH _GL_INTEGER_WIDTH (INT_FAST64_MIN, INT_FAST64_MAX)
680# define UINT_FAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST64_MAX)
681# define INTPTR_WIDTH _GL_INTEGER_WIDTH (INTPTR_MIN, INTPTR_MAX)
682# define UINTPTR_WIDTH _GL_INTEGER_WIDTH (0, UINTPTR_MAX)
683# define INTMAX_WIDTH _GL_INTEGER_WIDTH (INTMAX_MIN, INTMAX_MAX)
684# define UINTMAX_WIDTH _GL_INTEGER_WIDTH (0, UINTMAX_MAX)
685# define PTRDIFF_WIDTH _GL_INTEGER_WIDTH (PTRDIFF_MIN, PTRDIFF_MAX)
686# define SIZE_WIDTH _GL_INTEGER_WIDTH (0, SIZE_MAX)
687# define WCHAR_WIDTH _GL_INTEGER_WIDTH (WCHAR_MIN, WCHAR_MAX)
688# ifdef WINT_MAX
689# define WINT_WIDTH _GL_INTEGER_WIDTH (WINT_MIN, WINT_MAX)
690# endif
691# ifdef SIG_ATOMIC_MAX
692# define SIG_ATOMIC_WIDTH _GL_INTEGER_WIDTH (SIG_ATOMIC_MIN, SIG_ATOMIC_MAX)
693# endif
694#endif /* !WINT_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */
632 695
633#endif /* _@GUARD_PREFIX@_STDINT_H */ 696#endif /* _@GUARD_PREFIX@_STDINT_H */
634#endif /* !(defined __ANDROID__ && ...) */ 697#endif /* !(defined __ANDROID__ && ...) */