~ubuntu-branches/ubuntu/trusty/wget/trusty-updates

« back to all changes in this revision

Viewing changes to lib/stdint.in.h

  • Committer: Bazaar Package Importer
  • Author(s): Marc Deslauriers
  • Date: 2009-12-12 08:15:59 UTC
  • mfrom: (2.1.5 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091212081559-mvccl4kzdqb138y3
Tags: 1.12-1.1ubuntu1
* Merge from debian testing, remaining changes:
  - Add wget-udeb to ship wget.gnu as alternative to busybox wget
    implementation.
* Keep build dependencies in main:
  - debian/control: remove info2man build-dep
  - debian/patches/00list: disable wget-infopod_generated_manpage.dpatch

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright (C) 2001-2002, 2004-2009 Free Software Foundation, Inc.
 
2
   Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
 
3
   This file is part of gnulib.
 
4
 
 
5
   This program is free software; you can redistribute it and/or modify
 
6
   it under the terms of the GNU General Public License as published by
 
7
   the Free Software Foundation; either version 3, or (at your option)
 
8
   any later version.
 
9
 
 
10
   This program is distributed in the hope that it will be useful,
 
11
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
   GNU General Public License for more details.
 
14
 
 
15
   You should have received a copy of the GNU General Public License
 
16
   along with this program; if not, write to the Free Software Foundation,
 
17
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
18
 
 
19
/*
 
20
 * ISO C 99 <stdint.h> for platforms that lack it.
 
21
 * <http://www.opengroup.org/susv3xbd/stdint.h.html>
 
22
 */
 
23
 
 
24
#ifndef _GL_STDINT_H
 
25
 
 
26
/* When including a system file that in turn includes <inttypes.h>,
 
27
   use the system <inttypes.h>, not our substitute.  This avoids
 
28
   problems with (for example) VMS, whose <sys/bitypes.h> includes
 
29
   <inttypes.h>.  */
 
30
#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
 
31
 
 
32
/* Get those types that are already defined in other system include
 
33
   files, so that we can "#define int8_t signed char" below without
 
34
   worrying about a later system include file containing a "typedef
 
35
   signed char int8_t;" that will get messed up by our macro.  Our
 
36
   macros should all be consistent with the system versions, except
 
37
   for the "fast" types and macros, which we recommend against using
 
38
   in public interfaces due to compiler differences.  */
 
39
 
 
40
#if @HAVE_STDINT_H@
 
41
# if defined __sgi && ! defined __c99
 
42
   /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
 
43
      with "This header file is to be used only for c99 mode compilations"
 
44
      diagnostics.  */
 
45
#  define __STDINT_H__
 
46
# endif
 
47
  /* Other systems may have an incomplete or buggy <stdint.h>.
 
48
     Include it before <inttypes.h>, since any "#include <stdint.h>"
 
49
     in <inttypes.h> would reinclude us, skipping our contents because
 
50
     _GL_STDINT_H is defined.
 
51
     The include_next requires a split double-inclusion guard.  */
 
52
# if __GNUC__ >= 3
 
53
@PRAGMA_SYSTEM_HEADER@
 
54
# endif
 
55
# @INCLUDE_NEXT@ @NEXT_STDINT_H@
 
56
#endif
 
57
 
 
58
#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
 
59
#define _GL_STDINT_H
 
60
 
 
61
/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
 
62
   IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
 
63
   AIX 5.2 <sys/types.h> isn't needed and causes troubles.
 
64
   MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
 
65
   relies on the system <stdint.h> definitions, so include
 
66
   <sys/types.h> after @NEXT_STDINT_H@.  */
 
67
#if @HAVE_SYS_TYPES_H@ && ! defined _AIX
 
68
# include <sys/types.h>
 
69
#endif
 
70
 
 
71
/* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
 
72
#include <limits.h>
 
73
 
 
74
#if @HAVE_INTTYPES_H@
 
75
  /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
 
76
     int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
 
77
     <inttypes.h> also defines intptr_t and uintptr_t.  */
 
78
# include <inttypes.h>
 
79
#elif @HAVE_SYS_INTTYPES_H@
 
80
  /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
 
81
     the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX.  */
 
82
# include <sys/inttypes.h>
 
83
#endif
 
84
 
 
85
#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
 
86
  /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
 
87
     int{8,16,32,64}_t and __BIT_TYPES_DEFINED__.  In libc5 >= 5.2.2 it is
 
88
     included by <sys/types.h>.  */
 
89
# include <sys/bitypes.h>
 
90
#endif
 
91
 
 
92
#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
 
93
 
 
94
/* Minimum and maximum values for a integer type under the usual assumption.
 
95
   Return an unspecified value if BITS == 0, adding a check to pacify
 
96
   picky compilers.  */
 
97
 
 
98
#define _STDINT_MIN(signed, bits, zero) \
 
99
  ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
 
100
 
 
101
#define _STDINT_MAX(signed, bits, zero) \
 
102
  ((signed) \
 
103
   ? ~ _STDINT_MIN (signed, bits, zero) \
 
104
   : /* The expression for the unsigned case.  The subtraction of (signed) \
 
105
        is a nop in the unsigned case and avoids "signed integer overflow" \
 
106
        warnings in the signed case.  */ \
 
107
     ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
 
108
 
 
109
/* 7.18.1.1. Exact-width integer types */
 
110
 
 
111
/* Here we assume a standard architecture where the hardware integer
 
112
   types have 8, 16, 32, optionally 64 bits.  */
 
113
 
 
114
#undef int8_t
 
115
#undef uint8_t
 
116
typedef signed char gl_int8_t;
 
117
typedef unsigned char gl_uint8_t;
 
118
#define int8_t gl_int8_t
 
119
#define uint8_t gl_uint8_t
 
120
 
 
121
#undef int16_t
 
122
#undef uint16_t
 
123
typedef short int gl_int16_t;
 
124
typedef unsigned short int gl_uint16_t;
 
125
#define int16_t gl_int16_t
 
126
#define uint16_t gl_uint16_t
 
127
 
 
128
#undef int32_t
 
129
#undef uint32_t
 
130
typedef int gl_int32_t;
 
131
typedef unsigned int gl_uint32_t;
 
132
#define int32_t gl_int32_t
 
133
#define uint32_t gl_uint32_t
 
134
 
 
135
/* Do not undefine int64_t if gnulib is not being used with 64-bit
 
136
   types, since otherwise it breaks platforms like Tandem/NSK.  */
 
137
#if LONG_MAX >> 31 >> 31 == 1
 
138
# undef int64_t
 
139
typedef long int gl_int64_t;
 
140
# define int64_t gl_int64_t
 
141
# define GL_INT64_T
 
142
#elif defined _MSC_VER
 
143
# undef int64_t
 
144
typedef __int64 gl_int64_t;
 
145
# define int64_t gl_int64_t
 
146
# define GL_INT64_T
 
147
#elif @HAVE_LONG_LONG_INT@
 
148
# undef int64_t
 
149
typedef long long int gl_int64_t;
 
150
# define int64_t gl_int64_t
 
151
# define GL_INT64_T
 
152
#endif
 
153
 
 
154
#if ULONG_MAX >> 31 >> 31 >> 1 == 1
 
155
# undef uint64_t
 
156
typedef unsigned long int gl_uint64_t;
 
157
# define uint64_t gl_uint64_t
 
158
# define GL_UINT64_T
 
159
#elif defined _MSC_VER
 
160
# undef uint64_t
 
161
typedef unsigned __int64 gl_uint64_t;
 
162
# define uint64_t gl_uint64_t
 
163
# define GL_UINT64_T
 
164
#elif @HAVE_UNSIGNED_LONG_LONG_INT@
 
165
# undef uint64_t
 
166
typedef unsigned long long int gl_uint64_t;
 
167
# define uint64_t gl_uint64_t
 
168
# define GL_UINT64_T
 
169
#endif
 
170
 
 
171
/* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
 
172
#define _UINT8_T
 
173
#define _UINT32_T
 
174
#define _UINT64_T
 
175
 
 
176
 
 
177
/* 7.18.1.2. Minimum-width integer types */
 
178
 
 
179
/* Here we assume a standard architecture where the hardware integer
 
180
   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
 
181
   are the same as the corresponding N_t types.  */
 
182
 
 
183
#undef int_least8_t
 
184
#undef uint_least8_t
 
185
#undef int_least16_t
 
186
#undef uint_least16_t
 
187
#undef int_least32_t
 
188
#undef uint_least32_t
 
189
#undef int_least64_t
 
190
#undef uint_least64_t
 
191
#define int_least8_t int8_t
 
192
#define uint_least8_t uint8_t
 
193
#define int_least16_t int16_t
 
194
#define uint_least16_t uint16_t
 
195
#define int_least32_t int32_t
 
196
#define uint_least32_t uint32_t
 
197
#ifdef GL_INT64_T
 
198
# define int_least64_t int64_t
 
199
#endif
 
200
#ifdef GL_UINT64_T
 
201
# define uint_least64_t uint64_t
 
202
#endif
 
203
 
 
204
/* 7.18.1.3. Fastest minimum-width integer types */
 
205
 
 
206
/* Note: Other <stdint.h> substitutes may define these types differently.
 
207
   It is not recommended to use these types in public header files. */
 
208
 
 
209
/* Here we assume a standard architecture where the hardware integer
 
210
   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
 
211
   are taken from the same list of types.  Assume that 'long int'
 
212
   is fast enough for all narrower integers.  */
 
213
 
 
214
#undef int_fast8_t
 
215
#undef uint_fast8_t
 
216
#undef int_fast16_t
 
217
#undef uint_fast16_t
 
218
#undef int_fast32_t
 
219
#undef uint_fast32_t
 
220
#undef int_fast64_t
 
221
#undef uint_fast64_t
 
222
typedef long int gl_int_fast8_t;
 
223
typedef unsigned long int gl_uint_fast8_t;
 
224
typedef long int gl_int_fast16_t;
 
225
typedef unsigned long int gl_uint_fast16_t;
 
226
typedef long int gl_int_fast32_t;
 
227
typedef unsigned long int gl_uint_fast32_t;
 
228
#define int_fast8_t gl_int_fast8_t
 
229
#define uint_fast8_t gl_uint_fast8_t
 
230
#define int_fast16_t gl_int_fast16_t
 
231
#define uint_fast16_t gl_uint_fast16_t
 
232
#define int_fast32_t gl_int_fast32_t
 
233
#define uint_fast32_t gl_uint_fast32_t
 
234
#ifdef GL_INT64_T
 
235
# define int_fast64_t int64_t
 
236
#endif
 
237
#ifdef GL_UINT64_T
 
238
# define uint_fast64_t uint64_t
 
239
#endif
 
240
 
 
241
/* 7.18.1.4. Integer types capable of holding object pointers */
 
242
 
 
243
#undef intptr_t
 
244
#undef uintptr_t
 
245
typedef long int gl_intptr_t;
 
246
typedef unsigned long int gl_uintptr_t;
 
247
#define intptr_t gl_intptr_t
 
248
#define uintptr_t gl_uintptr_t
 
249
 
 
250
/* 7.18.1.5. Greatest-width integer types */
 
251
 
 
252
/* Note: These types are compiler dependent. It may be unwise to use them in
 
253
   public header files. */
 
254
 
 
255
#undef intmax_t
 
256
#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
 
257
typedef long long int gl_intmax_t;
 
258
# define intmax_t gl_intmax_t
 
259
#elif defined GL_INT64_T
 
260
# define intmax_t int64_t
 
261
#else
 
262
typedef long int gl_intmax_t;
 
263
# define intmax_t gl_intmax_t
 
264
#endif
 
265
 
 
266
#undef uintmax_t
 
267
#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
 
268
typedef unsigned long long int gl_uintmax_t;
 
269
# define uintmax_t gl_uintmax_t
 
270
#elif defined GL_UINT64_T
 
271
# define uintmax_t uint64_t
 
272
#else
 
273
typedef unsigned long int gl_uintmax_t;
 
274
# define uintmax_t gl_uintmax_t
 
275
#endif
 
276
 
 
277
/* Verify that intmax_t and uintmax_t have the same size.  Too much code
 
278
   breaks if this is not the case.  If this check fails, the reason is likely
 
279
   to be found in the autoconf macros.  */
 
280
typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1];
 
281
 
 
282
/* 7.18.2. Limits of specified-width integer types */
 
283
 
 
284
#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
 
285
 
 
286
/* 7.18.2.1. Limits of exact-width integer types */
 
287
 
 
288
/* Here we assume a standard architecture where the hardware integer
 
289
   types have 8, 16, 32, optionally 64 bits.  */
 
290
 
 
291
#undef INT8_MIN
 
292
#undef INT8_MAX
 
293
#undef UINT8_MAX
 
294
#define INT8_MIN  (~ INT8_MAX)
 
295
#define INT8_MAX  127
 
296
#define UINT8_MAX  255
 
297
 
 
298
#undef INT16_MIN
 
299
#undef INT16_MAX
 
300
#undef UINT16_MAX
 
301
#define INT16_MIN  (~ INT16_MAX)
 
302
#define INT16_MAX  32767
 
303
#define UINT16_MAX  65535
 
304
 
 
305
#undef INT32_MIN
 
306
#undef INT32_MAX
 
307
#undef UINT32_MAX
 
308
#define INT32_MIN  (~ INT32_MAX)
 
309
#define INT32_MAX  2147483647
 
310
#define UINT32_MAX  4294967295U
 
311
 
 
312
#undef INT64_MIN
 
313
#undef INT64_MAX
 
314
#ifdef GL_INT64_T
 
315
/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
 
316
   evaluates the latter incorrectly in preprocessor expressions.  */
 
317
# define INT64_MIN  (- INTMAX_C (1) << 63)
 
318
# define INT64_MAX  INTMAX_C (9223372036854775807)
 
319
#endif
 
320
 
 
321
#undef UINT64_MAX
 
322
#ifdef GL_UINT64_T
 
323
# define UINT64_MAX  UINTMAX_C (18446744073709551615)
 
324
#endif
 
325
 
 
326
/* 7.18.2.2. Limits of minimum-width integer types */
 
327
 
 
328
/* Here we assume a standard architecture where the hardware integer
 
329
   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
 
330
   are the same as the corresponding N_t types.  */
 
331
 
 
332
#undef INT_LEAST8_MIN
 
333
#undef INT_LEAST8_MAX
 
334
#undef UINT_LEAST8_MAX
 
335
#define INT_LEAST8_MIN  INT8_MIN
 
336
#define INT_LEAST8_MAX  INT8_MAX
 
337
#define UINT_LEAST8_MAX  UINT8_MAX
 
338
 
 
339
#undef INT_LEAST16_MIN
 
340
#undef INT_LEAST16_MAX
 
341
#undef UINT_LEAST16_MAX
 
342
#define INT_LEAST16_MIN  INT16_MIN
 
343
#define INT_LEAST16_MAX  INT16_MAX
 
344
#define UINT_LEAST16_MAX  UINT16_MAX
 
345
 
 
346
#undef INT_LEAST32_MIN
 
347
#undef INT_LEAST32_MAX
 
348
#undef UINT_LEAST32_MAX
 
349
#define INT_LEAST32_MIN  INT32_MIN
 
350
#define INT_LEAST32_MAX  INT32_MAX
 
351
#define UINT_LEAST32_MAX  UINT32_MAX
 
352
 
 
353
#undef INT_LEAST64_MIN
 
354
#undef INT_LEAST64_MAX
 
355
#ifdef GL_INT64_T
 
356
# define INT_LEAST64_MIN  INT64_MIN
 
357
# define INT_LEAST64_MAX  INT64_MAX
 
358
#endif
 
359
 
 
360
#undef UINT_LEAST64_MAX
 
361
#ifdef GL_UINT64_T
 
362
# define UINT_LEAST64_MAX  UINT64_MAX
 
363
#endif
 
364
 
 
365
/* 7.18.2.3. Limits of fastest minimum-width integer types */
 
366
 
 
367
/* Here we assume a standard architecture where the hardware integer
 
368
   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
 
369
   are taken from the same list of types.  */
 
370
 
 
371
#undef INT_FAST8_MIN
 
372
#undef INT_FAST8_MAX
 
373
#undef UINT_FAST8_MAX
 
374
#define INT_FAST8_MIN  LONG_MIN
 
375
#define INT_FAST8_MAX  LONG_MAX
 
376
#define UINT_FAST8_MAX  ULONG_MAX
 
377
 
 
378
#undef INT_FAST16_MIN
 
379
#undef INT_FAST16_MAX
 
380
#undef UINT_FAST16_MAX
 
381
#define INT_FAST16_MIN  LONG_MIN
 
382
#define INT_FAST16_MAX  LONG_MAX
 
383
#define UINT_FAST16_MAX  ULONG_MAX
 
384
 
 
385
#undef INT_FAST32_MIN
 
386
#undef INT_FAST32_MAX
 
387
#undef UINT_FAST32_MAX
 
388
#define INT_FAST32_MIN  LONG_MIN
 
389
#define INT_FAST32_MAX  LONG_MAX
 
390
#define UINT_FAST32_MAX  ULONG_MAX
 
391
 
 
392
#undef INT_FAST64_MIN
 
393
#undef INT_FAST64_MAX
 
394
#ifdef GL_INT64_T
 
395
# define INT_FAST64_MIN  INT64_MIN
 
396
# define INT_FAST64_MAX  INT64_MAX
 
397
#endif
 
398
 
 
399
#undef UINT_FAST64_MAX
 
400
#ifdef GL_UINT64_T
 
401
# define UINT_FAST64_MAX  UINT64_MAX
 
402
#endif
 
403
 
 
404
/* 7.18.2.4. Limits of integer types capable of holding object pointers */
 
405
 
 
406
#undef INTPTR_MIN
 
407
#undef INTPTR_MAX
 
408
#undef UINTPTR_MAX
 
409
#define INTPTR_MIN  LONG_MIN
 
410
#define INTPTR_MAX  LONG_MAX
 
411
#define UINTPTR_MAX  ULONG_MAX
 
412
 
 
413
/* 7.18.2.5. Limits of greatest-width integer types */
 
414
 
 
415
#undef INTMAX_MIN
 
416
#undef INTMAX_MAX
 
417
#ifdef INT64_MAX
 
418
# define INTMAX_MIN  INT64_MIN
 
419
# define INTMAX_MAX  INT64_MAX
 
420
#else
 
421
# define INTMAX_MIN  INT32_MIN
 
422
# define INTMAX_MAX  INT32_MAX
 
423
#endif
 
424
 
 
425
#undef UINTMAX_MAX
 
426
#ifdef UINT64_MAX
 
427
# define UINTMAX_MAX  UINT64_MAX
 
428
#else
 
429
# define UINTMAX_MAX  UINT32_MAX
 
430
#endif
 
431
 
 
432
/* 7.18.3. Limits of other integer types */
 
433
 
 
434
/* ptrdiff_t limits */
 
435
#undef PTRDIFF_MIN
 
436
#undef PTRDIFF_MAX
 
437
#if @APPLE_UNIVERSAL_BUILD@
 
438
# ifdef _LP64
 
439
#  define PTRDIFF_MIN  _STDINT_MIN (1, 64, 0l)
 
440
#  define PTRDIFF_MAX  _STDINT_MAX (1, 64, 0l)
 
441
# else
 
442
#  define PTRDIFF_MIN  _STDINT_MIN (1, 32, 0)
 
443
#  define PTRDIFF_MAX  _STDINT_MAX (1, 32, 0)
 
444
# endif
 
445
#else
 
446
# define PTRDIFF_MIN  \
 
447
    _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
 
448
# define PTRDIFF_MAX  \
 
449
    _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
 
450
#endif
 
451
 
 
452
/* sig_atomic_t limits */
 
453
#undef SIG_ATOMIC_MIN
 
454
#undef SIG_ATOMIC_MAX
 
455
#define SIG_ATOMIC_MIN  \
 
456
   _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
 
457
                0@SIG_ATOMIC_T_SUFFIX@)
 
458
#define SIG_ATOMIC_MAX  \
 
459
   _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
 
460
                0@SIG_ATOMIC_T_SUFFIX@)
 
461
 
 
462
 
 
463
/* size_t limit */
 
464
#undef SIZE_MAX
 
465
#if @APPLE_UNIVERSAL_BUILD@
 
466
# ifdef _LP64
 
467
#  define SIZE_MAX  _STDINT_MAX (0, 64, 0ul)
 
468
# else
 
469
#  define SIZE_MAX  _STDINT_MAX (0, 32, 0ul)
 
470
# endif
 
471
#else
 
472
# define SIZE_MAX  _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
 
473
#endif
 
474
 
 
475
/* wchar_t limits */
 
476
/* Get WCHAR_MIN, WCHAR_MAX.
 
477
   This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested
 
478
   includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes
 
479
   <stdint.h> and assumes its types are already defined.  */
 
480
#if ! (defined WCHAR_MIN && defined WCHAR_MAX)
 
481
# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
 
482
# include <wchar.h>
 
483
# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
 
484
#endif
 
485
#undef WCHAR_MIN
 
486
#undef WCHAR_MAX
 
487
#define WCHAR_MIN  \
 
488
   _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
 
489
#define WCHAR_MAX  \
 
490
   _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
 
491
 
 
492
/* wint_t limits */
 
493
#undef WINT_MIN
 
494
#undef WINT_MAX
 
495
#define WINT_MIN  \
 
496
   _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
 
497
#define WINT_MAX  \
 
498
   _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
 
499
 
 
500
#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
 
501
 
 
502
/* 7.18.4. Macros for integer constants */
 
503
 
 
504
#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
 
505
 
 
506
/* 7.18.4.1. Macros for minimum-width integer constants */
 
507
/* According to ISO C 99 Technical Corrigendum 1 */
 
508
 
 
509
/* Here we assume a standard architecture where the hardware integer
 
510
   types have 8, 16, 32, optionally 64 bits, and int is 32 bits.  */
 
511
 
 
512
#undef INT8_C
 
513
#undef UINT8_C
 
514
#define INT8_C(x) x
 
515
#define UINT8_C(x) x
 
516
 
 
517
#undef INT16_C
 
518
#undef UINT16_C
 
519
#define INT16_C(x) x
 
520
#define UINT16_C(x) x
 
521
 
 
522
#undef INT32_C
 
523
#undef UINT32_C
 
524
#define INT32_C(x) x
 
525
#define UINT32_C(x) x ## U
 
526
 
 
527
#undef INT64_C
 
528
#undef UINT64_C
 
529
#if LONG_MAX >> 31 >> 31 == 1
 
530
# define INT64_C(x) x##L
 
531
#elif defined _MSC_VER
 
532
# define INT64_C(x) x##i64
 
533
#elif @HAVE_LONG_LONG_INT@
 
534
# define INT64_C(x) x##LL
 
535
#endif
 
536
#if ULONG_MAX >> 31 >> 31 >> 1 == 1
 
537
# define UINT64_C(x) x##UL
 
538
#elif defined _MSC_VER
 
539
# define UINT64_C(x) x##ui64
 
540
#elif @HAVE_UNSIGNED_LONG_LONG_INT@
 
541
# define UINT64_C(x) x##ULL
 
542
#endif
 
543
 
 
544
/* 7.18.4.2. Macros for greatest-width integer constants */
 
545
 
 
546
#undef INTMAX_C
 
547
#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
 
548
# define INTMAX_C(x)   x##LL
 
549
#elif defined GL_INT64_T
 
550
# define INTMAX_C(x)   INT64_C(x)
 
551
#else
 
552
# define INTMAX_C(x)   x##L
 
553
#endif
 
554
 
 
555
#undef UINTMAX_C
 
556
#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
 
557
# define UINTMAX_C(x)  x##ULL
 
558
#elif defined GL_UINT64_T
 
559
# define UINTMAX_C(x)  UINT64_C(x)
 
560
#else
 
561
# define UINTMAX_C(x)  x##UL
 
562
#endif
 
563
 
 
564
#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
 
565
 
 
566
#endif /* _GL_STDINT_H */
 
567
#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */