inttypes.in.h 26 KB

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