Commit | Line | Data |
---|---|---|
9c9d63b1 | 1 | /* Copyright (C) 2006-2021 Free Software Foundation, Inc. |
55a8c076 YQ |
2 | Written by Paul Eggert, Bruno Haible, Derek Price. |
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 of the License, or | |
8 | (at your option) 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 | |
c0c3707f | 16 | along with this program. If not, see <https://www.gnu.org/licenses/>. */ |
55a8c076 YQ |
17 | |
18 | /* | |
19 | * ISO C 99 <inttypes.h> for platforms that lack it. | |
c0c3707f | 20 | * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/inttypes.h.html> |
55a8c076 YQ |
21 | */ |
22 | ||
23 | #if __GNUC__ >= 3 | |
24 | @PRAGMA_SYSTEM_HEADER@ | |
25 | #endif | |
770d76d7 | 26 | @PRAGMA_COLUMNS@ |
55a8c076 YQ |
27 | |
28 | /* Include the original <inttypes.h> if it exists, and if this file | |
29 | has not been included yet or if this file includes gnulib stdint.h | |
30 | which in turn includes this file. | |
31 | The include_next requires a split double-inclusion guard. */ | |
32 | #if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H | |
33 | # if @HAVE_INTTYPES_H@ | |
770d76d7 PA |
34 | |
35 | /* Some pre-C++11 <stdint.h> implementations need this. */ | |
36 | # if defined __cplusplus && ! defined __STDC_FORMAT_MACROS | |
37 | # define __STDC_FORMAT_MACROS 1 | |
38 | # endif | |
39 | ||
55a8c076 | 40 | # @INCLUDE_NEXT@ @NEXT_INTTYPES_H@ |
5df4cba6 SM |
41 | |
42 | # define _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H | |
55a8c076 YQ |
43 | # endif |
44 | #endif | |
45 | ||
46 | #if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H | |
47 | #define INTTYPES_H | |
48 | ||
49 | /* Include <stdint.h> or the gnulib replacement. | |
50 | But avoid namespace pollution on glibc systems. */ | |
51 | #ifndef __GLIBC__ | |
52 | # include <stdint.h> | |
53 | #endif | |
c0c3707f | 54 | /* Get CHAR_BIT, INT_MAX, LONG_MAX, etc. */ |
55a8c076 | 55 | #include <limits.h> |
4a626d0a | 56 | /* On mingw, __USE_MINGW_ANSI_STDIO only works if <stdio.h> is also included */ |
c0c3707f | 57 | #if defined _WIN32 && ! defined __CYGWIN__ |
4a626d0a PA |
58 | # include <stdio.h> |
59 | #endif | |
55a8c076 | 60 | |
c0c3707f CB |
61 | #if !(INT_MAX == 0x7fffffff && INT_MIN + INT_MAX == -1) |
62 | # error "This file assumes that 'int' is 32-bit two's complement. Please report your platform and compiler to <bug-gnulib@gnu.org>." | |
55a8c076 YQ |
63 | #endif |
64 | ||
770d76d7 PA |
65 | /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ |
66 | ||
55a8c076 YQ |
67 | /* The definition of _GL_ARG_NONNULL is copied here. */ |
68 | ||
69 | /* The definition of _GL_WARN_ON_USE is copied here. */ | |
70 | ||
71 | /* 7.8.1 Macros for format specifiers */ | |
72 | ||
770d76d7 | 73 | #if defined _TNS_R_TARGET |
55a8c076 YQ |
74 | /* Tandem NonStop R series and compatible platforms released before |
75 | July 2005 support %Ld but not %lld. */ | |
770d76d7 PA |
76 | # define _LONG_LONG_FORMAT_PREFIX "L" |
77 | #else | |
78 | # define _LONG_LONG_FORMAT_PREFIX "ll" | |
79 | #endif | |
55a8c076 | 80 | |
9c9d63b1 | 81 | #if !defined PRId8 |
770d76d7 PA |
82 | # ifdef INT8_MAX |
83 | # define PRId8 "d" | |
55a8c076 | 84 | # endif |
770d76d7 | 85 | #endif |
9c9d63b1 | 86 | #if !defined PRIi8 |
770d76d7 PA |
87 | # ifdef INT8_MAX |
88 | # define PRIi8 "i" | |
55a8c076 | 89 | # endif |
770d76d7 | 90 | #endif |
9c9d63b1 | 91 | #if !defined PRIo8 |
770d76d7 PA |
92 | # ifdef UINT8_MAX |
93 | # define PRIo8 "o" | |
55a8c076 | 94 | # endif |
770d76d7 | 95 | #endif |
9c9d63b1 | 96 | #if !defined PRIu8 |
770d76d7 PA |
97 | # ifdef UINT8_MAX |
98 | # define PRIu8 "u" | |
55a8c076 | 99 | # endif |
770d76d7 | 100 | #endif |
9c9d63b1 | 101 | #if !defined PRIx8 |
770d76d7 PA |
102 | # ifdef UINT8_MAX |
103 | # define PRIx8 "x" | |
55a8c076 | 104 | # endif |
770d76d7 | 105 | #endif |
9c9d63b1 | 106 | #if !defined PRIX8 |
770d76d7 PA |
107 | # ifdef UINT8_MAX |
108 | # define PRIX8 "X" | |
55a8c076 | 109 | # endif |
770d76d7 | 110 | #endif |
9c9d63b1 | 111 | #if !defined PRId16 |
770d76d7 PA |
112 | # ifdef INT16_MAX |
113 | # define PRId16 "d" | |
55a8c076 | 114 | # endif |
770d76d7 | 115 | #endif |
9c9d63b1 | 116 | #if !defined PRIi16 |
770d76d7 PA |
117 | # ifdef INT16_MAX |
118 | # define PRIi16 "i" | |
55a8c076 | 119 | # endif |
770d76d7 | 120 | #endif |
9c9d63b1 | 121 | #if !defined PRIo16 |
770d76d7 PA |
122 | # ifdef UINT16_MAX |
123 | # define PRIo16 "o" | |
55a8c076 | 124 | # endif |
770d76d7 | 125 | #endif |
9c9d63b1 | 126 | #if !defined PRIu16 |
770d76d7 PA |
127 | # ifdef UINT16_MAX |
128 | # define PRIu16 "u" | |
55a8c076 | 129 | # endif |
770d76d7 | 130 | #endif |
9c9d63b1 | 131 | #if !defined PRIx16 |
770d76d7 PA |
132 | # ifdef UINT16_MAX |
133 | # define PRIx16 "x" | |
55a8c076 | 134 | # endif |
770d76d7 | 135 | #endif |
9c9d63b1 | 136 | #if !defined PRIX16 |
770d76d7 PA |
137 | # ifdef UINT16_MAX |
138 | # define PRIX16 "X" | |
55a8c076 | 139 | # endif |
770d76d7 | 140 | #endif |
9c9d63b1 | 141 | #if !defined PRId32 |
770d76d7 PA |
142 | # ifdef INT32_MAX |
143 | # define PRId32 "d" | |
55a8c076 | 144 | # endif |
770d76d7 | 145 | #endif |
9c9d63b1 | 146 | #if !defined PRIi32 |
770d76d7 PA |
147 | # ifdef INT32_MAX |
148 | # define PRIi32 "i" | |
55a8c076 | 149 | # endif |
770d76d7 | 150 | #endif |
9c9d63b1 | 151 | #if !defined PRIo32 |
770d76d7 PA |
152 | # ifdef UINT32_MAX |
153 | # define PRIo32 "o" | |
55a8c076 | 154 | # endif |
770d76d7 | 155 | #endif |
9c9d63b1 | 156 | #if !defined PRIu32 |
770d76d7 PA |
157 | # ifdef UINT32_MAX |
158 | # define PRIu32 "u" | |
55a8c076 | 159 | # endif |
770d76d7 | 160 | #endif |
9c9d63b1 | 161 | #if !defined PRIx32 |
770d76d7 PA |
162 | # ifdef UINT32_MAX |
163 | # define PRIx32 "x" | |
55a8c076 | 164 | # endif |
770d76d7 | 165 | #endif |
9c9d63b1 | 166 | #if !defined PRIX32 |
770d76d7 PA |
167 | # ifdef UINT32_MAX |
168 | # define PRIX32 "X" | |
55a8c076 | 169 | # endif |
770d76d7 PA |
170 | #endif |
171 | #ifdef INT64_MAX | |
172 | # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) | |
173 | # define _PRI64_PREFIX "l" | |
174 | # elif defined _MSC_VER || defined __MINGW32__ | |
175 | # define _PRI64_PREFIX "I64" | |
5df4cba6 | 176 | # elif LONG_MAX >> 30 == 1 |
770d76d7 PA |
177 | # define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX |
178 | # endif | |
9c9d63b1 | 179 | # if !defined PRId64 |
770d76d7 PA |
180 | # define PRId64 _PRI64_PREFIX "d" |
181 | # endif | |
9c9d63b1 | 182 | # if !defined PRIi64 |
770d76d7 | 183 | # define PRIi64 _PRI64_PREFIX "i" |
55a8c076 | 184 | # endif |
770d76d7 PA |
185 | #endif |
186 | #ifdef UINT64_MAX | |
187 | # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) | |
188 | # define _PRIu64_PREFIX "l" | |
189 | # elif defined _MSC_VER || defined __MINGW32__ | |
190 | # define _PRIu64_PREFIX "I64" | |
5df4cba6 | 191 | # elif ULONG_MAX >> 31 == 1 |
770d76d7 PA |
192 | # define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX |
193 | # endif | |
9c9d63b1 | 194 | # if !defined PRIo64 |
770d76d7 PA |
195 | # define PRIo64 _PRIu64_PREFIX "o" |
196 | # endif | |
9c9d63b1 | 197 | # if !defined PRIu64 |
770d76d7 PA |
198 | # define PRIu64 _PRIu64_PREFIX "u" |
199 | # endif | |
9c9d63b1 | 200 | # if !defined PRIx64 |
770d76d7 PA |
201 | # define PRIx64 _PRIu64_PREFIX "x" |
202 | # endif | |
9c9d63b1 | 203 | # if !defined PRIX64 |
770d76d7 | 204 | # define PRIX64 _PRIu64_PREFIX "X" |
55a8c076 | 205 | # endif |
770d76d7 | 206 | #endif |
55a8c076 | 207 | |
9c9d63b1 | 208 | #if !defined PRIdLEAST8 |
770d76d7 PA |
209 | # define PRIdLEAST8 "d" |
210 | #endif | |
9c9d63b1 | 211 | #if !defined PRIiLEAST8 |
770d76d7 PA |
212 | # define PRIiLEAST8 "i" |
213 | #endif | |
9c9d63b1 | 214 | #if !defined PRIoLEAST8 |
770d76d7 PA |
215 | # define PRIoLEAST8 "o" |
216 | #endif | |
9c9d63b1 | 217 | #if !defined PRIuLEAST8 |
770d76d7 PA |
218 | # define PRIuLEAST8 "u" |
219 | #endif | |
9c9d63b1 | 220 | #if !defined PRIxLEAST8 |
770d76d7 PA |
221 | # define PRIxLEAST8 "x" |
222 | #endif | |
9c9d63b1 | 223 | #if !defined PRIXLEAST8 |
770d76d7 PA |
224 | # define PRIXLEAST8 "X" |
225 | #endif | |
9c9d63b1 | 226 | #if !defined PRIdLEAST16 |
770d76d7 PA |
227 | # define PRIdLEAST16 "d" |
228 | #endif | |
9c9d63b1 | 229 | #if !defined PRIiLEAST16 |
770d76d7 PA |
230 | # define PRIiLEAST16 "i" |
231 | #endif | |
9c9d63b1 | 232 | #if !defined PRIoLEAST16 |
770d76d7 PA |
233 | # define PRIoLEAST16 "o" |
234 | #endif | |
9c9d63b1 | 235 | #if !defined PRIuLEAST16 |
770d76d7 PA |
236 | # define PRIuLEAST16 "u" |
237 | #endif | |
9c9d63b1 | 238 | #if !defined PRIxLEAST16 |
770d76d7 PA |
239 | # define PRIxLEAST16 "x" |
240 | #endif | |
9c9d63b1 | 241 | #if !defined PRIXLEAST16 |
770d76d7 PA |
242 | # define PRIXLEAST16 "X" |
243 | #endif | |
9c9d63b1 | 244 | #if !defined PRIdLEAST32 |
770d76d7 PA |
245 | # define PRIdLEAST32 "d" |
246 | #endif | |
9c9d63b1 | 247 | #if !defined PRIiLEAST32 |
770d76d7 PA |
248 | # define PRIiLEAST32 "i" |
249 | #endif | |
9c9d63b1 | 250 | #if !defined PRIoLEAST32 |
770d76d7 PA |
251 | # define PRIoLEAST32 "o" |
252 | #endif | |
9c9d63b1 | 253 | #if !defined PRIuLEAST32 |
770d76d7 PA |
254 | # define PRIuLEAST32 "u" |
255 | #endif | |
9c9d63b1 | 256 | #if !defined PRIxLEAST32 |
770d76d7 PA |
257 | # define PRIxLEAST32 "x" |
258 | #endif | |
9c9d63b1 | 259 | #if !defined PRIXLEAST32 |
770d76d7 PA |
260 | # define PRIXLEAST32 "X" |
261 | #endif | |
262 | #ifdef INT64_MAX | |
9c9d63b1 | 263 | # if !defined PRIdLEAST64 |
770d76d7 | 264 | # define PRIdLEAST64 PRId64 |
55a8c076 | 265 | # endif |
9c9d63b1 | 266 | # if !defined PRIiLEAST64 |
770d76d7 PA |
267 | # define PRIiLEAST64 PRIi64 |
268 | # endif | |
269 | #endif | |
270 | #ifdef UINT64_MAX | |
9c9d63b1 | 271 | # if !defined PRIoLEAST64 |
770d76d7 PA |
272 | # define PRIoLEAST64 PRIo64 |
273 | # endif | |
9c9d63b1 | 274 | # if !defined PRIuLEAST64 |
770d76d7 PA |
275 | # define PRIuLEAST64 PRIu64 |
276 | # endif | |
9c9d63b1 | 277 | # if !defined PRIxLEAST64 |
770d76d7 | 278 | # define PRIxLEAST64 PRIx64 |
55a8c076 | 279 | # endif |
9c9d63b1 | 280 | # if !defined PRIXLEAST64 |
770d76d7 PA |
281 | # define PRIXLEAST64 PRIX64 |
282 | # endif | |
283 | #endif | |
55a8c076 | 284 | |
9c9d63b1 | 285 | #if !defined PRIdFAST8 |
770d76d7 PA |
286 | # if INT_FAST8_MAX > INT32_MAX |
287 | # define PRIdFAST8 PRId64 | |
288 | # else | |
289 | # define PRIdFAST8 "d" | |
55a8c076 | 290 | # endif |
770d76d7 | 291 | #endif |
9c9d63b1 | 292 | #if !defined PRIiFAST8 |
770d76d7 PA |
293 | # if INT_FAST8_MAX > INT32_MAX |
294 | # define PRIiFAST8 PRIi64 | |
295 | # else | |
296 | # define PRIiFAST8 "i" | |
55a8c076 | 297 | # endif |
770d76d7 | 298 | #endif |
9c9d63b1 | 299 | #if !defined PRIoFAST8 |
770d76d7 PA |
300 | # if UINT_FAST8_MAX > UINT32_MAX |
301 | # define PRIoFAST8 PRIo64 | |
302 | # else | |
303 | # define PRIoFAST8 "o" | |
55a8c076 | 304 | # endif |
770d76d7 | 305 | #endif |
9c9d63b1 | 306 | #if !defined PRIuFAST8 |
770d76d7 PA |
307 | # if UINT_FAST8_MAX > UINT32_MAX |
308 | # define PRIuFAST8 PRIu64 | |
309 | # else | |
310 | # define PRIuFAST8 "u" | |
55a8c076 | 311 | # endif |
770d76d7 | 312 | #endif |
9c9d63b1 | 313 | #if !defined PRIxFAST8 |
770d76d7 PA |
314 | # if UINT_FAST8_MAX > UINT32_MAX |
315 | # define PRIxFAST8 PRIx64 | |
316 | # else | |
317 | # define PRIxFAST8 "x" | |
55a8c076 | 318 | # endif |
770d76d7 | 319 | #endif |
9c9d63b1 | 320 | #if !defined PRIXFAST8 |
770d76d7 PA |
321 | # if UINT_FAST8_MAX > UINT32_MAX |
322 | # define PRIXFAST8 PRIX64 | |
323 | # else | |
324 | # define PRIXFAST8 "X" | |
55a8c076 | 325 | # endif |
770d76d7 | 326 | #endif |
9c9d63b1 | 327 | #if !defined PRIdFAST16 |
770d76d7 PA |
328 | # if INT_FAST16_MAX > INT32_MAX |
329 | # define PRIdFAST16 PRId64 | |
330 | # else | |
331 | # define PRIdFAST16 "d" | |
55a8c076 | 332 | # endif |
770d76d7 | 333 | #endif |
9c9d63b1 | 334 | #if !defined PRIiFAST16 |
770d76d7 PA |
335 | # if INT_FAST16_MAX > INT32_MAX |
336 | # define PRIiFAST16 PRIi64 | |
337 | # else | |
338 | # define PRIiFAST16 "i" | |
55a8c076 | 339 | # endif |
770d76d7 | 340 | #endif |
9c9d63b1 | 341 | #if !defined PRIoFAST16 |
770d76d7 PA |
342 | # if UINT_FAST16_MAX > UINT32_MAX |
343 | # define PRIoFAST16 PRIo64 | |
344 | # else | |
345 | # define PRIoFAST16 "o" | |
55a8c076 | 346 | # endif |
770d76d7 | 347 | #endif |
9c9d63b1 | 348 | #if !defined PRIuFAST16 |
770d76d7 PA |
349 | # if UINT_FAST16_MAX > UINT32_MAX |
350 | # define PRIuFAST16 PRIu64 | |
351 | # else | |
352 | # define PRIuFAST16 "u" | |
55a8c076 | 353 | # endif |
770d76d7 | 354 | #endif |
9c9d63b1 | 355 | #if !defined PRIxFAST16 |
770d76d7 PA |
356 | # if UINT_FAST16_MAX > UINT32_MAX |
357 | # define PRIxFAST16 PRIx64 | |
358 | # else | |
359 | # define PRIxFAST16 "x" | |
55a8c076 | 360 | # endif |
770d76d7 | 361 | #endif |
9c9d63b1 | 362 | #if !defined PRIXFAST16 |
770d76d7 PA |
363 | # if UINT_FAST16_MAX > UINT32_MAX |
364 | # define PRIXFAST16 PRIX64 | |
365 | # else | |
366 | # define PRIXFAST16 "X" | |
55a8c076 | 367 | # endif |
770d76d7 | 368 | #endif |
9c9d63b1 | 369 | #if !defined PRIdFAST32 |
770d76d7 PA |
370 | # if INT_FAST32_MAX > INT32_MAX |
371 | # define PRIdFAST32 PRId64 | |
372 | # else | |
373 | # define PRIdFAST32 "d" | |
55a8c076 | 374 | # endif |
770d76d7 | 375 | #endif |
9c9d63b1 | 376 | #if !defined PRIiFAST32 |
770d76d7 PA |
377 | # if INT_FAST32_MAX > INT32_MAX |
378 | # define PRIiFAST32 PRIi64 | |
379 | # else | |
380 | # define PRIiFAST32 "i" | |
55a8c076 | 381 | # endif |
770d76d7 | 382 | #endif |
9c9d63b1 | 383 | #if !defined PRIoFAST32 |
770d76d7 PA |
384 | # if UINT_FAST32_MAX > UINT32_MAX |
385 | # define PRIoFAST32 PRIo64 | |
386 | # else | |
387 | # define PRIoFAST32 "o" | |
55a8c076 | 388 | # endif |
770d76d7 | 389 | #endif |
9c9d63b1 | 390 | #if !defined PRIuFAST32 |
770d76d7 PA |
391 | # if UINT_FAST32_MAX > UINT32_MAX |
392 | # define PRIuFAST32 PRIu64 | |
393 | # else | |
394 | # define PRIuFAST32 "u" | |
55a8c076 | 395 | # endif |
770d76d7 | 396 | #endif |
9c9d63b1 | 397 | #if !defined PRIxFAST32 |
770d76d7 PA |
398 | # if UINT_FAST32_MAX > UINT32_MAX |
399 | # define PRIxFAST32 PRIx64 | |
400 | # else | |
401 | # define PRIxFAST32 "x" | |
55a8c076 | 402 | # endif |
770d76d7 | 403 | #endif |
9c9d63b1 | 404 | #if !defined PRIXFAST32 |
770d76d7 PA |
405 | # if UINT_FAST32_MAX > UINT32_MAX |
406 | # define PRIXFAST32 PRIX64 | |
407 | # else | |
408 | # define PRIXFAST32 "X" | |
55a8c076 | 409 | # endif |
770d76d7 PA |
410 | #endif |
411 | #ifdef INT64_MAX | |
9c9d63b1 | 412 | # if !defined PRIdFAST64 |
770d76d7 | 413 | # define PRIdFAST64 PRId64 |
55a8c076 | 414 | # endif |
9c9d63b1 | 415 | # if !defined PRIiFAST64 |
770d76d7 | 416 | # define PRIiFAST64 PRIi64 |
55a8c076 | 417 | # endif |
770d76d7 PA |
418 | #endif |
419 | #ifdef UINT64_MAX | |
9c9d63b1 | 420 | # if !defined PRIoFAST64 |
770d76d7 PA |
421 | # define PRIoFAST64 PRIo64 |
422 | # endif | |
9c9d63b1 | 423 | # if !defined PRIuFAST64 |
770d76d7 PA |
424 | # define PRIuFAST64 PRIu64 |
425 | # endif | |
9c9d63b1 | 426 | # if !defined PRIxFAST64 |
770d76d7 PA |
427 | # define PRIxFAST64 PRIx64 |
428 | # endif | |
9c9d63b1 | 429 | # if !defined PRIXFAST64 |
770d76d7 PA |
430 | # define PRIXFAST64 PRIX64 |
431 | # endif | |
432 | #endif | |
55a8c076 | 433 | |
9c9d63b1 | 434 | #if !defined PRIdMAX |
770d76d7 PA |
435 | # if @INT32_MAX_LT_INTMAX_MAX@ |
436 | # define PRIdMAX PRId64 | |
437 | # else | |
438 | # define PRIdMAX "ld" | |
55a8c076 | 439 | # endif |
770d76d7 | 440 | #endif |
9c9d63b1 | 441 | #if !defined PRIiMAX |
770d76d7 PA |
442 | # if @INT32_MAX_LT_INTMAX_MAX@ |
443 | # define PRIiMAX PRIi64 | |
444 | # else | |
445 | # define PRIiMAX "li" | |
55a8c076 | 446 | # endif |
770d76d7 | 447 | #endif |
9c9d63b1 | 448 | #if !defined PRIoMAX |
770d76d7 PA |
449 | # if @UINT32_MAX_LT_UINTMAX_MAX@ |
450 | # define PRIoMAX PRIo64 | |
451 | # else | |
452 | # define PRIoMAX "lo" | |
55a8c076 | 453 | # endif |
770d76d7 | 454 | #endif |
9c9d63b1 | 455 | #if !defined PRIuMAX |
770d76d7 PA |
456 | # if @UINT32_MAX_LT_UINTMAX_MAX@ |
457 | # define PRIuMAX PRIu64 | |
458 | # else | |
459 | # define PRIuMAX "lu" | |
55a8c076 | 460 | # endif |
770d76d7 | 461 | #endif |
9c9d63b1 | 462 | #if !defined PRIxMAX |
770d76d7 PA |
463 | # if @UINT32_MAX_LT_UINTMAX_MAX@ |
464 | # define PRIxMAX PRIx64 | |
465 | # else | |
466 | # define PRIxMAX "lx" | |
55a8c076 | 467 | # endif |
770d76d7 | 468 | #endif |
9c9d63b1 | 469 | #if !defined PRIXMAX |
770d76d7 PA |
470 | # if @UINT32_MAX_LT_UINTMAX_MAX@ |
471 | # define PRIXMAX PRIX64 | |
472 | # else | |
473 | # define PRIXMAX "lX" | |
55a8c076 | 474 | # endif |
770d76d7 | 475 | #endif |
55a8c076 | 476 | |
9c9d63b1 | 477 | #if !defined PRIdPTR |
770d76d7 PA |
478 | # ifdef INTPTR_MAX |
479 | # define PRIdPTR @PRIPTR_PREFIX@ "d" | |
55a8c076 | 480 | # endif |
770d76d7 | 481 | #endif |
9c9d63b1 | 482 | #if !defined PRIiPTR |
770d76d7 PA |
483 | # ifdef INTPTR_MAX |
484 | # define PRIiPTR @PRIPTR_PREFIX@ "i" | |
55a8c076 | 485 | # endif |
770d76d7 | 486 | #endif |
9c9d63b1 | 487 | #if !defined PRIoPTR |
770d76d7 PA |
488 | # ifdef UINTPTR_MAX |
489 | # define PRIoPTR @PRIPTR_PREFIX@ "o" | |
55a8c076 | 490 | # endif |
770d76d7 | 491 | #endif |
9c9d63b1 | 492 | #if !defined PRIuPTR |
770d76d7 PA |
493 | # ifdef UINTPTR_MAX |
494 | # define PRIuPTR @PRIPTR_PREFIX@ "u" | |
55a8c076 | 495 | # endif |
770d76d7 | 496 | #endif |
9c9d63b1 | 497 | #if !defined PRIxPTR |
770d76d7 PA |
498 | # ifdef UINTPTR_MAX |
499 | # define PRIxPTR @PRIPTR_PREFIX@ "x" | |
55a8c076 | 500 | # endif |
770d76d7 | 501 | #endif |
9c9d63b1 | 502 | #if !defined PRIXPTR |
770d76d7 PA |
503 | # ifdef UINTPTR_MAX |
504 | # define PRIXPTR @PRIPTR_PREFIX@ "X" | |
55a8c076 | 505 | # endif |
770d76d7 | 506 | #endif |
55a8c076 | 507 | |
9c9d63b1 | 508 | #if !defined SCNd8 |
770d76d7 PA |
509 | # ifdef INT8_MAX |
510 | # define SCNd8 "hhd" | |
55a8c076 | 511 | # endif |
770d76d7 | 512 | #endif |
9c9d63b1 | 513 | #if !defined SCNi8 |
770d76d7 PA |
514 | # ifdef INT8_MAX |
515 | # define SCNi8 "hhi" | |
55a8c076 | 516 | # endif |
770d76d7 | 517 | #endif |
9c9d63b1 | 518 | #if !defined SCNo8 |
770d76d7 PA |
519 | # ifdef UINT8_MAX |
520 | # define SCNo8 "hho" | |
55a8c076 | 521 | # endif |
770d76d7 | 522 | #endif |
9c9d63b1 | 523 | #if !defined SCNu8 |
770d76d7 PA |
524 | # ifdef UINT8_MAX |
525 | # define SCNu8 "hhu" | |
55a8c076 | 526 | # endif |
770d76d7 | 527 | #endif |
9c9d63b1 | 528 | #if !defined SCNx8 |
770d76d7 PA |
529 | # ifdef UINT8_MAX |
530 | # define SCNx8 "hhx" | |
55a8c076 | 531 | # endif |
770d76d7 | 532 | #endif |
9c9d63b1 | 533 | #if !defined SCNd16 |
770d76d7 PA |
534 | # ifdef INT16_MAX |
535 | # define SCNd16 "hd" | |
55a8c076 | 536 | # endif |
770d76d7 | 537 | #endif |
9c9d63b1 | 538 | #if !defined SCNi16 |
770d76d7 PA |
539 | # ifdef INT16_MAX |
540 | # define SCNi16 "hi" | |
55a8c076 | 541 | # endif |
770d76d7 | 542 | #endif |
9c9d63b1 | 543 | #if !defined SCNo16 |
770d76d7 PA |
544 | # ifdef UINT16_MAX |
545 | # define SCNo16 "ho" | |
55a8c076 | 546 | # endif |
770d76d7 | 547 | #endif |
9c9d63b1 | 548 | #if !defined SCNu16 |
770d76d7 PA |
549 | # ifdef UINT16_MAX |
550 | # define SCNu16 "hu" | |
55a8c076 | 551 | # endif |
770d76d7 | 552 | #endif |
9c9d63b1 | 553 | #if !defined SCNx16 |
770d76d7 PA |
554 | # ifdef UINT16_MAX |
555 | # define SCNx16 "hx" | |
55a8c076 | 556 | # endif |
770d76d7 | 557 | #endif |
9c9d63b1 | 558 | #if !defined SCNd32 |
770d76d7 PA |
559 | # ifdef INT32_MAX |
560 | # define SCNd32 "d" | |
55a8c076 | 561 | # endif |
770d76d7 | 562 | #endif |
9c9d63b1 | 563 | #if !defined SCNi32 |
770d76d7 PA |
564 | # ifdef INT32_MAX |
565 | # define SCNi32 "i" | |
55a8c076 | 566 | # endif |
770d76d7 | 567 | #endif |
9c9d63b1 | 568 | #if !defined SCNo32 |
770d76d7 PA |
569 | # ifdef UINT32_MAX |
570 | # define SCNo32 "o" | |
55a8c076 | 571 | # endif |
770d76d7 | 572 | #endif |
9c9d63b1 | 573 | #if !defined SCNu32 |
770d76d7 PA |
574 | # ifdef UINT32_MAX |
575 | # define SCNu32 "u" | |
55a8c076 | 576 | # endif |
770d76d7 | 577 | #endif |
9c9d63b1 | 578 | #if !defined SCNx32 |
770d76d7 PA |
579 | # ifdef UINT32_MAX |
580 | # define SCNx32 "x" | |
55a8c076 | 581 | # endif |
770d76d7 PA |
582 | #endif |
583 | #ifdef INT64_MAX | |
584 | # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) | |
585 | # define _SCN64_PREFIX "l" | |
586 | # elif defined _MSC_VER || defined __MINGW32__ | |
587 | # define _SCN64_PREFIX "I64" | |
5df4cba6 | 588 | # elif LONG_MAX >> 30 == 1 |
770d76d7 PA |
589 | # define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX |
590 | # endif | |
9c9d63b1 | 591 | # if !defined SCNd64 |
770d76d7 PA |
592 | # define SCNd64 _SCN64_PREFIX "d" |
593 | # endif | |
9c9d63b1 | 594 | # if !defined SCNi64 |
770d76d7 | 595 | # define SCNi64 _SCN64_PREFIX "i" |
55a8c076 | 596 | # endif |
770d76d7 PA |
597 | #endif |
598 | #ifdef UINT64_MAX | |
599 | # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) | |
600 | # define _SCNu64_PREFIX "l" | |
601 | # elif defined _MSC_VER || defined __MINGW32__ | |
602 | # define _SCNu64_PREFIX "I64" | |
5df4cba6 | 603 | # elif ULONG_MAX >> 31 == 1 |
770d76d7 PA |
604 | # define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX |
605 | # endif | |
9c9d63b1 | 606 | # if !defined SCNo64 |
770d76d7 PA |
607 | # define SCNo64 _SCNu64_PREFIX "o" |
608 | # endif | |
9c9d63b1 | 609 | # if !defined SCNu64 |
770d76d7 PA |
610 | # define SCNu64 _SCNu64_PREFIX "u" |
611 | # endif | |
9c9d63b1 | 612 | # if !defined SCNx64 |
770d76d7 | 613 | # define SCNx64 _SCNu64_PREFIX "x" |
55a8c076 | 614 | # endif |
770d76d7 | 615 | #endif |
55a8c076 | 616 | |
9c9d63b1 | 617 | #if !defined SCNdLEAST8 |
770d76d7 PA |
618 | # define SCNdLEAST8 "hhd" |
619 | #endif | |
9c9d63b1 | 620 | #if !defined SCNiLEAST8 |
770d76d7 PA |
621 | # define SCNiLEAST8 "hhi" |
622 | #endif | |
9c9d63b1 | 623 | #if !defined SCNoLEAST8 |
770d76d7 PA |
624 | # define SCNoLEAST8 "hho" |
625 | #endif | |
9c9d63b1 | 626 | #if !defined SCNuLEAST8 |
770d76d7 PA |
627 | # define SCNuLEAST8 "hhu" |
628 | #endif | |
9c9d63b1 | 629 | #if !defined SCNxLEAST8 |
770d76d7 PA |
630 | # define SCNxLEAST8 "hhx" |
631 | #endif | |
9c9d63b1 | 632 | #if !defined SCNdLEAST16 |
770d76d7 PA |
633 | # define SCNdLEAST16 "hd" |
634 | #endif | |
9c9d63b1 | 635 | #if !defined SCNiLEAST16 |
770d76d7 PA |
636 | # define SCNiLEAST16 "hi" |
637 | #endif | |
9c9d63b1 | 638 | #if !defined SCNoLEAST16 |
770d76d7 PA |
639 | # define SCNoLEAST16 "ho" |
640 | #endif | |
9c9d63b1 | 641 | #if !defined SCNuLEAST16 |
770d76d7 PA |
642 | # define SCNuLEAST16 "hu" |
643 | #endif | |
9c9d63b1 | 644 | #if !defined SCNxLEAST16 |
770d76d7 PA |
645 | # define SCNxLEAST16 "hx" |
646 | #endif | |
9c9d63b1 | 647 | #if !defined SCNdLEAST32 |
770d76d7 PA |
648 | # define SCNdLEAST32 "d" |
649 | #endif | |
9c9d63b1 | 650 | #if !defined SCNiLEAST32 |
770d76d7 PA |
651 | # define SCNiLEAST32 "i" |
652 | #endif | |
9c9d63b1 | 653 | #if !defined SCNoLEAST32 |
770d76d7 PA |
654 | # define SCNoLEAST32 "o" |
655 | #endif | |
9c9d63b1 | 656 | #if !defined SCNuLEAST32 |
770d76d7 PA |
657 | # define SCNuLEAST32 "u" |
658 | #endif | |
9c9d63b1 | 659 | #if !defined SCNxLEAST32 |
770d76d7 PA |
660 | # define SCNxLEAST32 "x" |
661 | #endif | |
662 | #ifdef INT64_MAX | |
9c9d63b1 | 663 | # if !defined SCNdLEAST64 |
770d76d7 | 664 | # define SCNdLEAST64 SCNd64 |
55a8c076 | 665 | # endif |
9c9d63b1 | 666 | # if !defined SCNiLEAST64 |
770d76d7 PA |
667 | # define SCNiLEAST64 SCNi64 |
668 | # endif | |
669 | #endif | |
670 | #ifdef UINT64_MAX | |
9c9d63b1 | 671 | # if !defined SCNoLEAST64 |
770d76d7 | 672 | # define SCNoLEAST64 SCNo64 |
55a8c076 | 673 | # endif |
9c9d63b1 | 674 | # if !defined SCNuLEAST64 |
770d76d7 PA |
675 | # define SCNuLEAST64 SCNu64 |
676 | # endif | |
9c9d63b1 | 677 | # if !defined SCNxLEAST64 |
770d76d7 PA |
678 | # define SCNxLEAST64 SCNx64 |
679 | # endif | |
680 | #endif | |
55a8c076 | 681 | |
9c9d63b1 | 682 | #if !defined SCNdFAST8 |
770d76d7 PA |
683 | # if INT_FAST8_MAX > INT32_MAX |
684 | # define SCNdFAST8 SCNd64 | |
685 | # elif INT_FAST8_MAX == 0x7fff | |
686 | # define SCNdFAST8 "hd" | |
687 | # elif INT_FAST8_MAX == 0x7f | |
688 | # define SCNdFAST8 "hhd" | |
689 | # else | |
690 | # define SCNdFAST8 "d" | |
55a8c076 | 691 | # endif |
770d76d7 | 692 | #endif |
9c9d63b1 | 693 | #if !defined SCNiFAST8 |
770d76d7 PA |
694 | # if INT_FAST8_MAX > INT32_MAX |
695 | # define SCNiFAST8 SCNi64 | |
696 | # elif INT_FAST8_MAX == 0x7fff | |
697 | # define SCNiFAST8 "hi" | |
698 | # elif INT_FAST8_MAX == 0x7f | |
699 | # define SCNiFAST8 "hhi" | |
700 | # else | |
701 | # define SCNiFAST8 "i" | |
55a8c076 | 702 | # endif |
770d76d7 | 703 | #endif |
9c9d63b1 | 704 | #if !defined SCNoFAST8 |
770d76d7 PA |
705 | # if UINT_FAST8_MAX > UINT32_MAX |
706 | # define SCNoFAST8 SCNo64 | |
707 | # elif UINT_FAST8_MAX == 0xffff | |
708 | # define SCNoFAST8 "ho" | |
709 | # elif UINT_FAST8_MAX == 0xff | |
710 | # define SCNoFAST8 "hho" | |
711 | # else | |
712 | # define SCNoFAST8 "o" | |
55a8c076 | 713 | # endif |
770d76d7 | 714 | #endif |
9c9d63b1 | 715 | #if !defined SCNuFAST8 |
770d76d7 PA |
716 | # if UINT_FAST8_MAX > UINT32_MAX |
717 | # define SCNuFAST8 SCNu64 | |
718 | # elif UINT_FAST8_MAX == 0xffff | |
719 | # define SCNuFAST8 "hu" | |
720 | # elif UINT_FAST8_MAX == 0xff | |
721 | # define SCNuFAST8 "hhu" | |
722 | # else | |
723 | # define SCNuFAST8 "u" | |
55a8c076 | 724 | # endif |
770d76d7 | 725 | #endif |
9c9d63b1 | 726 | #if !defined SCNxFAST8 |
770d76d7 PA |
727 | # if UINT_FAST8_MAX > UINT32_MAX |
728 | # define SCNxFAST8 SCNx64 | |
729 | # elif UINT_FAST8_MAX == 0xffff | |
730 | # define SCNxFAST8 "hx" | |
731 | # elif UINT_FAST8_MAX == 0xff | |
732 | # define SCNxFAST8 "hhx" | |
733 | # else | |
734 | # define SCNxFAST8 "x" | |
55a8c076 | 735 | # endif |
770d76d7 | 736 | #endif |
9c9d63b1 | 737 | #if !defined SCNdFAST16 |
770d76d7 PA |
738 | # if INT_FAST16_MAX > INT32_MAX |
739 | # define SCNdFAST16 SCNd64 | |
740 | # elif INT_FAST16_MAX == 0x7fff | |
741 | # define SCNdFAST16 "hd" | |
742 | # else | |
743 | # define SCNdFAST16 "d" | |
55a8c076 | 744 | # endif |
770d76d7 | 745 | #endif |
9c9d63b1 | 746 | #if !defined SCNiFAST16 |
770d76d7 PA |
747 | # if INT_FAST16_MAX > INT32_MAX |
748 | # define SCNiFAST16 SCNi64 | |
749 | # elif INT_FAST16_MAX == 0x7fff | |
750 | # define SCNiFAST16 "hi" | |
751 | # else | |
752 | # define SCNiFAST16 "i" | |
55a8c076 | 753 | # endif |
770d76d7 | 754 | #endif |
9c9d63b1 | 755 | #if !defined SCNoFAST16 |
770d76d7 PA |
756 | # if UINT_FAST16_MAX > UINT32_MAX |
757 | # define SCNoFAST16 SCNo64 | |
758 | # elif UINT_FAST16_MAX == 0xffff | |
759 | # define SCNoFAST16 "ho" | |
760 | # else | |
761 | # define SCNoFAST16 "o" | |
55a8c076 | 762 | # endif |
770d76d7 | 763 | #endif |
9c9d63b1 | 764 | #if !defined SCNuFAST16 |
770d76d7 PA |
765 | # if UINT_FAST16_MAX > UINT32_MAX |
766 | # define SCNuFAST16 SCNu64 | |
767 | # elif UINT_FAST16_MAX == 0xffff | |
768 | # define SCNuFAST16 "hu" | |
769 | # else | |
770 | # define SCNuFAST16 "u" | |
55a8c076 | 771 | # endif |
770d76d7 | 772 | #endif |
9c9d63b1 | 773 | #if !defined SCNxFAST16 |
770d76d7 PA |
774 | # if UINT_FAST16_MAX > UINT32_MAX |
775 | # define SCNxFAST16 SCNx64 | |
776 | # elif UINT_FAST16_MAX == 0xffff | |
777 | # define SCNxFAST16 "hx" | |
778 | # else | |
779 | # define SCNxFAST16 "x" | |
55a8c076 | 780 | # endif |
770d76d7 | 781 | #endif |
9c9d63b1 | 782 | #if !defined SCNdFAST32 |
770d76d7 PA |
783 | # if INT_FAST32_MAX > INT32_MAX |
784 | # define SCNdFAST32 SCNd64 | |
785 | # else | |
786 | # define SCNdFAST32 "d" | |
55a8c076 | 787 | # endif |
770d76d7 | 788 | #endif |
9c9d63b1 | 789 | #if !defined SCNiFAST32 |
770d76d7 PA |
790 | # if INT_FAST32_MAX > INT32_MAX |
791 | # define SCNiFAST32 SCNi64 | |
792 | # else | |
793 | # define SCNiFAST32 "i" | |
55a8c076 | 794 | # endif |
770d76d7 | 795 | #endif |
9c9d63b1 | 796 | #if !defined SCNoFAST32 |
770d76d7 PA |
797 | # if UINT_FAST32_MAX > UINT32_MAX |
798 | # define SCNoFAST32 SCNo64 | |
799 | # else | |
800 | # define SCNoFAST32 "o" | |
55a8c076 | 801 | # endif |
770d76d7 | 802 | #endif |
9c9d63b1 | 803 | #if !defined SCNuFAST32 |
770d76d7 PA |
804 | # if UINT_FAST32_MAX > UINT32_MAX |
805 | # define SCNuFAST32 SCNu64 | |
806 | # else | |
807 | # define SCNuFAST32 "u" | |
55a8c076 | 808 | # endif |
770d76d7 | 809 | #endif |
9c9d63b1 | 810 | #if !defined SCNxFAST32 |
770d76d7 PA |
811 | # if UINT_FAST32_MAX > UINT32_MAX |
812 | # define SCNxFAST32 SCNx64 | |
813 | # else | |
814 | # define SCNxFAST32 "x" | |
55a8c076 | 815 | # endif |
770d76d7 PA |
816 | #endif |
817 | #ifdef INT64_MAX | |
9c9d63b1 | 818 | # if !defined SCNdFAST64 |
770d76d7 | 819 | # define SCNdFAST64 SCNd64 |
55a8c076 | 820 | # endif |
9c9d63b1 | 821 | # if !defined SCNiFAST64 |
770d76d7 PA |
822 | # define SCNiFAST64 SCNi64 |
823 | # endif | |
824 | #endif | |
825 | #ifdef UINT64_MAX | |
9c9d63b1 | 826 | # if !defined SCNoFAST64 |
770d76d7 PA |
827 | # define SCNoFAST64 SCNo64 |
828 | # endif | |
9c9d63b1 | 829 | # if !defined SCNuFAST64 |
770d76d7 | 830 | # define SCNuFAST64 SCNu64 |
55a8c076 | 831 | # endif |
9c9d63b1 | 832 | # if !defined SCNxFAST64 |
770d76d7 PA |
833 | # define SCNxFAST64 SCNx64 |
834 | # endif | |
835 | #endif | |
55a8c076 | 836 | |
9c9d63b1 | 837 | #if !defined SCNdMAX |
770d76d7 PA |
838 | # if @INT32_MAX_LT_INTMAX_MAX@ |
839 | # define SCNdMAX SCNd64 | |
840 | # else | |
841 | # define SCNdMAX "ld" | |
55a8c076 | 842 | # endif |
770d76d7 | 843 | #endif |
9c9d63b1 | 844 | #if !defined SCNiMAX |
770d76d7 PA |
845 | # if @INT32_MAX_LT_INTMAX_MAX@ |
846 | # define SCNiMAX SCNi64 | |
847 | # else | |
848 | # define SCNiMAX "li" | |
55a8c076 | 849 | # endif |
770d76d7 | 850 | #endif |
9c9d63b1 | 851 | #if !defined SCNoMAX |
770d76d7 PA |
852 | # if @UINT32_MAX_LT_UINTMAX_MAX@ |
853 | # define SCNoMAX SCNo64 | |
854 | # else | |
855 | # define SCNoMAX "lo" | |
55a8c076 | 856 | # endif |
770d76d7 | 857 | #endif |
9c9d63b1 | 858 | #if !defined SCNuMAX |
770d76d7 PA |
859 | # if @UINT32_MAX_LT_UINTMAX_MAX@ |
860 | # define SCNuMAX SCNu64 | |
861 | # else | |
862 | # define SCNuMAX "lu" | |
55a8c076 | 863 | # endif |
770d76d7 | 864 | #endif |
9c9d63b1 | 865 | #if !defined SCNxMAX |
770d76d7 PA |
866 | # if @UINT32_MAX_LT_UINTMAX_MAX@ |
867 | # define SCNxMAX SCNx64 | |
868 | # else | |
869 | # define SCNxMAX "lx" | |
55a8c076 | 870 | # endif |
770d76d7 | 871 | #endif |
55a8c076 | 872 | |
9c9d63b1 | 873 | #if !defined SCNdPTR |
770d76d7 PA |
874 | # ifdef INTPTR_MAX |
875 | # define SCNdPTR @PRIPTR_PREFIX@ "d" | |
55a8c076 | 876 | # endif |
770d76d7 | 877 | #endif |
9c9d63b1 | 878 | #if !defined SCNiPTR |
770d76d7 PA |
879 | # ifdef INTPTR_MAX |
880 | # define SCNiPTR @PRIPTR_PREFIX@ "i" | |
55a8c076 | 881 | # endif |
770d76d7 | 882 | #endif |
9c9d63b1 | 883 | #if !defined SCNoPTR |
770d76d7 PA |
884 | # ifdef UINTPTR_MAX |
885 | # define SCNoPTR @PRIPTR_PREFIX@ "o" | |
55a8c076 | 886 | # endif |
770d76d7 | 887 | #endif |
9c9d63b1 | 888 | #if !defined SCNuPTR |
770d76d7 PA |
889 | # ifdef UINTPTR_MAX |
890 | # define SCNuPTR @PRIPTR_PREFIX@ "u" | |
55a8c076 | 891 | # endif |
770d76d7 | 892 | #endif |
9c9d63b1 | 893 | #if !defined SCNxPTR |
770d76d7 PA |
894 | # ifdef UINTPTR_MAX |
895 | # define SCNxPTR @PRIPTR_PREFIX@ "x" | |
55a8c076 | 896 | # endif |
55a8c076 YQ |
897 | #endif |
898 | ||
899 | /* 7.8.2 Functions for greatest-width integer types */ | |
900 | ||
901 | #ifdef __cplusplus | |
902 | extern "C" { | |
903 | #endif | |
904 | ||
905 | #if @GNULIB_IMAXABS@ | |
906 | # if !@HAVE_DECL_IMAXABS@ | |
907 | extern intmax_t imaxabs (intmax_t); | |
908 | # endif | |
909 | #elif defined GNULIB_POSIXCHECK | |
910 | # undef imaxabs | |
911 | # if HAVE_RAW_DECL_IMAXABS | |
912 | _GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " | |
913 | "use gnulib module imaxabs for portability"); | |
914 | # endif | |
915 | #endif | |
916 | ||
917 | #if @GNULIB_IMAXDIV@ | |
c0c3707f | 918 | # if !@HAVE_IMAXDIV_T@ |
770d76d7 | 919 | # if !GNULIB_defined_imaxdiv_t |
55a8c076 | 920 | typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; |
770d76d7 PA |
921 | # define GNULIB_defined_imaxdiv_t 1 |
922 | # endif | |
c0c3707f CB |
923 | # endif |
924 | # if !@HAVE_DECL_IMAXDIV@ | |
55a8c076 YQ |
925 | extern imaxdiv_t imaxdiv (intmax_t, intmax_t); |
926 | # endif | |
927 | #elif defined GNULIB_POSIXCHECK | |
928 | # undef imaxdiv | |
929 | # if HAVE_RAW_DECL_IMAXDIV | |
930 | _GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " | |
931 | "use gnulib module imaxdiv for portability"); | |
932 | # endif | |
933 | #endif | |
934 | ||
935 | #if @GNULIB_STRTOIMAX@ | |
770d76d7 PA |
936 | # if @REPLACE_STRTOIMAX@ |
937 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
938 | # undef strtoimax | |
939 | # define strtoimax rpl_strtoimax | |
940 | # endif | |
941 | _GL_FUNCDECL_RPL (strtoimax, intmax_t, | |
698be2d8 CB |
942 | (const char *restrict, char **restrict, int) |
943 | _GL_ARG_NONNULL ((1))); | |
944 | _GL_CXXALIAS_RPL (strtoimax, intmax_t, | |
945 | (const char *restrict, char **restrict, int)); | |
770d76d7 PA |
946 | # else |
947 | # if !@HAVE_DECL_STRTOIMAX@ | |
948 | # undef strtoimax | |
949 | _GL_FUNCDECL_SYS (strtoimax, intmax_t, | |
698be2d8 CB |
950 | (const char *restrict, char **restrict, int) |
951 | _GL_ARG_NONNULL ((1))); | |
770d76d7 | 952 | # endif |
698be2d8 CB |
953 | _GL_CXXALIAS_SYS (strtoimax, intmax_t, |
954 | (const char *restrict, char **restrict, int)); | |
55a8c076 | 955 | # endif |
770d76d7 | 956 | _GL_CXXALIASWARN (strtoimax); |
55a8c076 YQ |
957 | #elif defined GNULIB_POSIXCHECK |
958 | # undef strtoimax | |
959 | # if HAVE_RAW_DECL_STRTOIMAX | |
960 | _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " | |
961 | "use gnulib module strtoimax for portability"); | |
962 | # endif | |
963 | #endif | |
964 | ||
965 | #if @GNULIB_STRTOUMAX@ | |
4a626d0a PA |
966 | # if @REPLACE_STRTOUMAX@ |
967 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
968 | # undef strtoumax | |
969 | # define strtoumax rpl_strtoumax | |
970 | # endif | |
971 | _GL_FUNCDECL_RPL (strtoumax, uintmax_t, | |
698be2d8 CB |
972 | (const char *restrict, char **restrict, int) |
973 | _GL_ARG_NONNULL ((1))); | |
974 | _GL_CXXALIAS_RPL (strtoumax, uintmax_t, | |
975 | (const char *restrict, char **restrict, int)); | |
4a626d0a PA |
976 | # else |
977 | # if !@HAVE_DECL_STRTOUMAX@ | |
978 | # undef strtoumax | |
770d76d7 | 979 | _GL_FUNCDECL_SYS (strtoumax, uintmax_t, |
698be2d8 CB |
980 | (const char *restrict, char **restrict, int) |
981 | _GL_ARG_NONNULL ((1))); | |
4a626d0a | 982 | # endif |
698be2d8 CB |
983 | _GL_CXXALIAS_SYS (strtoumax, uintmax_t, |
984 | (const char *restrict, char **restrict, int)); | |
4a626d0a | 985 | # endif |
770d76d7 | 986 | _GL_CXXALIASWARN (strtoumax); |
55a8c076 YQ |
987 | #elif defined GNULIB_POSIXCHECK |
988 | # undef strtoumax | |
989 | # if HAVE_RAW_DECL_STRTOUMAX | |
990 | _GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " | |
991 | "use gnulib module strtoumax for portability"); | |
992 | # endif | |
993 | #endif | |
994 | ||
995 | /* Don't bother defining or declaring wcstoimax and wcstoumax, since | |
996 | wide-character functions like this are hardly ever useful. */ | |
997 | ||
998 | #ifdef __cplusplus | |
999 | } | |
1000 | #endif | |
1001 | ||
1002 | #endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ |