1/* This file is automatically generated. DO NOT EDIT! */ 2/* Generated from: NetBSD: mknative-gdb,v 1.12 2020/09/17 16:54:31 christos Exp */ 3/* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp */ 4 5/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ 6/* Copyright (C) 2006-2020 Free Software Foundation, Inc. 7 Written by Paul Eggert, Bruno Haible, Derek Price. 8 This file is part of gnulib. 9 10 This program is free software: you can redistribute it and/or modify 11 it under the terms of the GNU General Public License as published by 12 the Free Software Foundation; either version 3 of the License, or 13 (at your option) any later version. 14 15 This program is distributed in the hope that it will be useful, 16 but WITHOUT ANY WARRANTY; without even the implied warranty of 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 GNU General Public License for more details. 19 20 You should have received a copy of the GNU General Public License 21 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 22 23/* 24 * ISO C 99 <inttypes.h> for platforms that lack it. 25 * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/inttypes.h.html> 26 */ 27 28#if __GNUC__ >= 3 29#pragma GCC system_header 30#endif 31 32 33/* Include the original <inttypes.h> if it exists, and if this file 34 has not been included yet or if this file includes gnulib stdint.h 35 which in turn includes this file. 36 The include_next requires a split double-inclusion guard. */ 37#if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H 38# if 1 39 40 /* Some pre-C++11 <stdint.h> implementations need this. */ 41# if defined __cplusplus && ! defined __STDC_FORMAT_MACROS 42# define __STDC_FORMAT_MACROS 1 43# endif 44 45# include_next <inttypes.h> 46 47# define _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H 48# endif 49#endif 50 51#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H 52#define INTTYPES_H 53 54/* Include <stdint.h> or the gnulib replacement. 55 But avoid namespace pollution on glibc systems. */ 56#ifndef __GLIBC__ 57# include <stdint.h> 58#endif 59/* Get CHAR_BIT, INT_MAX, LONG_MAX, etc. */ 60#include <limits.h> 61/* On mingw, __USE_MINGW_ANSI_STDIO only works if <stdio.h> is also included */ 62#if defined _WIN32 && ! defined __CYGWIN__ 63# include <stdio.h> 64#endif 65 66#if !(INT_MAX == 0x7fffffff && INT_MIN + INT_MAX == -1) 67# error "This file assumes that 'int' is 32-bit two's complement. Please report your platform and compiler to <bug-gnulib@gnu.org>." 68#endif 69 70/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ 71/* C++ compatible function declaration macros. 72 Copyright (C) 2010-2020 Free Software Foundation, Inc. 73 74 This program is free software: you can redistribute it and/or modify it 75 under the terms of the GNU General Public License as published 76 by the Free Software Foundation; either version 3 of the License, or 77 (at your option) any later version. 78 79 This program is distributed in the hope that it will be useful, 80 but WITHOUT ANY WARRANTY; without even the implied warranty of 81 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 82 General Public License for more details. 83 84 You should have received a copy of the GNU General Public License 85 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 86 87#ifndef _GL_CXXDEFS_H 88#define _GL_CXXDEFS_H 89 90/* Begin/end the GNULIB_NAMESPACE namespace. */ 91#if defined __cplusplus && defined GNULIB_NAMESPACE 92# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { 93# define _GL_END_NAMESPACE } 94#else 95# define _GL_BEGIN_NAMESPACE 96# define _GL_END_NAMESPACE 97#endif 98 99/* The three most frequent use cases of these macros are: 100 101 * For providing a substitute for a function that is missing on some 102 platforms, but is declared and works fine on the platforms on which 103 it exists: 104 105 #if @GNULIB_FOO@ 106 # if !@HAVE_FOO@ 107 _GL_FUNCDECL_SYS (foo, ...); 108 # endif 109 _GL_CXXALIAS_SYS (foo, ...); 110 _GL_CXXALIASWARN (foo); 111 #elif defined GNULIB_POSIXCHECK 112 ... 113 #endif 114 115 * For providing a replacement for a function that exists on all platforms, 116 but is broken/insufficient and needs to be replaced on some platforms: 117 118 #if @GNULIB_FOO@ 119 # if @REPLACE_FOO@ 120 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 121 # undef foo 122 # define foo rpl_foo 123 # endif 124 _GL_FUNCDECL_RPL (foo, ...); 125 _GL_CXXALIAS_RPL (foo, ...); 126 # else 127 _GL_CXXALIAS_SYS (foo, ...); 128 # endif 129 _GL_CXXALIASWARN (foo); 130 #elif defined GNULIB_POSIXCHECK 131 ... 132 #endif 133 134 * For providing a replacement for a function that exists on some platforms 135 but is broken/insufficient and needs to be replaced on some of them and 136 is additionally either missing or undeclared on some other platforms: 137 138 #if @GNULIB_FOO@ 139 # if @REPLACE_FOO@ 140 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 141 # undef foo 142 # define foo rpl_foo 143 # endif 144 _GL_FUNCDECL_RPL (foo, ...); 145 _GL_CXXALIAS_RPL (foo, ...); 146 # else 147 # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ 148 _GL_FUNCDECL_SYS (foo, ...); 149 # endif 150 _GL_CXXALIAS_SYS (foo, ...); 151 # endif 152 _GL_CXXALIASWARN (foo); 153 #elif defined GNULIB_POSIXCHECK 154 ... 155 #endif 156*/ 157 158/* _GL_EXTERN_C declaration; 159 performs the declaration with C linkage. */ 160#if defined __cplusplus 161# define _GL_EXTERN_C extern "C" 162#else 163# define _GL_EXTERN_C extern 164#endif 165 166/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); 167 declares a replacement function, named rpl_func, with the given prototype, 168 consisting of return type, parameters, and attributes. 169 Example: 170 _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) 171 _GL_ARG_NONNULL ((1))); 172 */ 173#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ 174 _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) 175#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ 176 _GL_EXTERN_C rettype rpl_func parameters_and_attributes 177 178/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); 179 declares the system function, named func, with the given prototype, 180 consisting of return type, parameters, and attributes. 181 Example: 182 _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) 183 _GL_ARG_NONNULL ((1))); 184 */ 185#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ 186 _GL_EXTERN_C rettype func parameters_and_attributes 187 188/* _GL_CXXALIAS_RPL (func, rettype, parameters); 189 declares a C++ alias called GNULIB_NAMESPACE::func 190 that redirects to rpl_func, if GNULIB_NAMESPACE is defined. 191 Example: 192 _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); 193 194 Wrapping rpl_func in an object with an inline conversion operator 195 avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is 196 actually used in the program. */ 197#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ 198 _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) 199#if defined __cplusplus && defined GNULIB_NAMESPACE 200# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ 201 namespace GNULIB_NAMESPACE \ 202 { \ 203 static const struct _gl_ ## func ## _wrapper \ 204 { \ 205 typedef rettype (*type) parameters; \ 206 \ 207 inline operator type () const \ 208 { \ 209 return ::rpl_func; \ 210 } \ 211 } func = {}; \ 212 } \ 213 _GL_EXTERN_C int _gl_cxxalias_dummy 214#else 215# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ 216 _GL_EXTERN_C int _gl_cxxalias_dummy 217#endif 218 219/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); 220 is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); 221 except that the C function rpl_func may have a slightly different 222 declaration. A cast is used to silence the "invalid conversion" error 223 that would otherwise occur. */ 224#if defined __cplusplus && defined GNULIB_NAMESPACE 225# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ 226 namespace GNULIB_NAMESPACE \ 227 { \ 228 static const struct _gl_ ## func ## _wrapper \ 229 { \ 230 typedef rettype (*type) parameters; \ 231 \ 232 inline operator type () const \ 233 { \ 234 return reinterpret_cast<type>(::rpl_func); \ 235 } \ 236 } func = {}; \ 237 } \ 238 _GL_EXTERN_C int _gl_cxxalias_dummy 239#else 240# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ 241 _GL_EXTERN_C int _gl_cxxalias_dummy 242#endif 243 244/* _GL_CXXALIAS_SYS (func, rettype, parameters); 245 declares a C++ alias called GNULIB_NAMESPACE::func 246 that redirects to the system provided function func, if GNULIB_NAMESPACE 247 is defined. 248 Example: 249 _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); 250 251 Wrapping func in an object with an inline conversion operator 252 avoids a reference to func unless GNULIB_NAMESPACE::func is 253 actually used in the program. */ 254#if defined __cplusplus && defined GNULIB_NAMESPACE 255# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ 256 namespace GNULIB_NAMESPACE \ 257 { \ 258 static const struct _gl_ ## func ## _wrapper \ 259 { \ 260 typedef rettype (*type) parameters; \ 261 \ 262 inline operator type () const \ 263 { \ 264 return ::func; \ 265 } \ 266 } func = {}; \ 267 } \ 268 _GL_EXTERN_C int _gl_cxxalias_dummy 269#else 270# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ 271 _GL_EXTERN_C int _gl_cxxalias_dummy 272#endif 273 274/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); 275 is like _GL_CXXALIAS_SYS (func, rettype, parameters); 276 except that the C function func may have a slightly different declaration. 277 A cast is used to silence the "invalid conversion" error that would 278 otherwise occur. */ 279#if defined __cplusplus && defined GNULIB_NAMESPACE 280# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ 281 namespace GNULIB_NAMESPACE \ 282 { \ 283 static const struct _gl_ ## func ## _wrapper \ 284 { \ 285 typedef rettype (*type) parameters; \ 286 \ 287 inline operator type () const \ 288 { \ 289 return reinterpret_cast<type>(::func); \ 290 } \ 291 } func = {}; \ 292 } \ 293 _GL_EXTERN_C int _gl_cxxalias_dummy 294#else 295# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ 296 _GL_EXTERN_C int _gl_cxxalias_dummy 297#endif 298 299/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); 300 is like _GL_CXXALIAS_SYS (func, rettype, parameters); 301 except that the C function is picked among a set of overloaded functions, 302 namely the one with rettype2 and parameters2. Two consecutive casts 303 are used to silence the "cannot find a match" and "invalid conversion" 304 errors that would otherwise occur. */ 305#if defined __cplusplus && defined GNULIB_NAMESPACE 306 /* The outer cast must be a reinterpret_cast. 307 The inner cast: When the function is defined as a set of overloaded 308 functions, it works as a static_cast<>, choosing the designated variant. 309 When the function is defined as a single variant, it works as a 310 reinterpret_cast<>. The parenthesized cast syntax works both ways. */ 311# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ 312 namespace GNULIB_NAMESPACE \ 313 { \ 314 static const struct _gl_ ## func ## _wrapper \ 315 { \ 316 typedef rettype (*type) parameters; \ 317 \ 318 inline operator type () const \ 319 { \ 320 return reinterpret_cast<type>((rettype2 (*) parameters2)(::func)); \ 321 } \ 322 } func = {}; \ 323 } \ 324 _GL_EXTERN_C int _gl_cxxalias_dummy 325#else 326# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ 327 _GL_EXTERN_C int _gl_cxxalias_dummy 328#endif 329 330/* _GL_CXXALIASWARN (func); 331 causes a warning to be emitted when ::func is used but not when 332 GNULIB_NAMESPACE::func is used. func must be defined without overloaded 333 variants. */ 334#if defined __cplusplus && defined GNULIB_NAMESPACE 335# define _GL_CXXALIASWARN(func) \ 336 _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) 337# define _GL_CXXALIASWARN_1(func,namespace) \ 338 _GL_CXXALIASWARN_2 (func, namespace) 339/* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, 340 we enable the warning only when not optimizing. */ 341# if !__OPTIMIZE__ 342# define _GL_CXXALIASWARN_2(func,namespace) \ 343 _GL_WARN_ON_USE (func, \ 344 "The symbol ::" #func " refers to the system function. " \ 345 "Use " #namespace "::" #func " instead.") 346# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 347# define _GL_CXXALIASWARN_2(func,namespace) \ 348 extern __typeof__ (func) func 349# else 350# define _GL_CXXALIASWARN_2(func,namespace) \ 351 _GL_EXTERN_C int _gl_cxxalias_dummy 352# endif 353#else 354# define _GL_CXXALIASWARN(func) \ 355 _GL_EXTERN_C int _gl_cxxalias_dummy 356#endif 357 358/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); 359 causes a warning to be emitted when the given overloaded variant of ::func 360 is used but not when GNULIB_NAMESPACE::func is used. */ 361#if defined __cplusplus && defined GNULIB_NAMESPACE 362# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ 363 _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ 364 GNULIB_NAMESPACE) 365# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ 366 _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) 367/* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, 368 we enable the warning only when not optimizing. */ 369# if !__OPTIMIZE__ 370# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ 371 _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ 372 "The symbol ::" #func " refers to the system function. " \ 373 "Use " #namespace "::" #func " instead.") 374# else 375# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ 376 _GL_EXTERN_C int _gl_cxxalias_dummy 377# endif 378#else 379# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ 380 _GL_EXTERN_C int _gl_cxxalias_dummy 381#endif 382 383#endif /* _GL_CXXDEFS_H */ 384 385/* The definition of _GL_ARG_NONNULL is copied here. */ 386/* A C macro for declaring that specific arguments must not be NULL. 387 Copyright (C) 2009-2020 Free Software Foundation, Inc. 388 389 This program is free software: you can redistribute it and/or modify it 390 under the terms of the GNU General Public License as published 391 by the Free Software Foundation; either version 3 of the License, or 392 (at your option) any later version. 393 394 This program is distributed in the hope that it will be useful, 395 but WITHOUT ANY WARRANTY; without even the implied warranty of 396 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 397 General Public License for more details. 398 399 You should have received a copy of the GNU General Public License 400 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 401 402/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools 403 that the values passed as arguments n, ..., m must be non-NULL pointers. 404 n = 1 stands for the first argument, n = 2 for the second argument etc. */ 405#ifndef _GL_ARG_NONNULL 406# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 407# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) 408# else 409# define _GL_ARG_NONNULL(params) 410# endif 411#endif 412 413/* The definition of _GL_WARN_ON_USE is copied here. */ 414/* A C macro for emitting warnings if a function is used. 415 Copyright (C) 2010-2020 Free Software Foundation, Inc. 416 417 This program is free software: you can redistribute it and/or modify it 418 under the terms of the GNU General Public License as published 419 by the Free Software Foundation; either version 3 of the License, or 420 (at your option) any later version. 421 422 This program is distributed in the hope that it will be useful, 423 but WITHOUT ANY WARRANTY; without even the implied warranty of 424 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 425 General Public License for more details. 426 427 You should have received a copy of the GNU General Public License 428 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 429 430/* _GL_WARN_ON_USE (function, "literal string") issues a declaration 431 for FUNCTION which will then trigger a compiler warning containing 432 the text of "literal string" anywhere that function is called, if 433 supported by the compiler. If the compiler does not support this 434 feature, the macro expands to an unused extern declaration. 435 436 _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the 437 attribute used in _GL_WARN_ON_USE. If the compiler does not support 438 this feature, it expands to empty. 439 440 These macros are useful for marking a function as a potential 441 portability trap, with the intent that "literal string" include 442 instructions on the replacement function that should be used 443 instead. 444 _GL_WARN_ON_USE is for functions with 'extern' linkage. 445 _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' 446 linkage. 447 448 However, one of the reasons that a function is a portability trap is 449 if it has the wrong signature. Declaring FUNCTION with a different 450 signature in C is a compilation error, so this macro must use the 451 same type as any existing declaration so that programs that avoid 452 the problematic FUNCTION do not fail to compile merely because they 453 included a header that poisoned the function. But this implies that 454 _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already 455 have a declaration. Use of this macro implies that there must not 456 be any other macro hiding the declaration of FUNCTION; but 457 undefining FUNCTION first is part of the poisoning process anyway 458 (although for symbols that are provided only via a macro, the result 459 is a compilation error rather than a warning containing 460 "literal string"). Also note that in C++, it is only safe to use if 461 FUNCTION has no overloads. 462 463 For an example, it is possible to poison 'getline' by: 464 - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]], 465 [getline]) in configure.ac, which potentially defines 466 HAVE_RAW_DECL_GETLINE 467 - adding this code to a header that wraps the system <stdio.h>: 468 #undef getline 469 #if HAVE_RAW_DECL_GETLINE 470 _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" 471 "not universally present; use the gnulib module getline"); 472 #endif 473 474 It is not possible to directly poison global variables. But it is 475 possible to write a wrapper accessor function, and poison that 476 (less common usage, like &environ, will cause a compilation error 477 rather than issue the nice warning, but the end result of informing 478 the developer about their portability problem is still achieved): 479 #if HAVE_RAW_DECL_ENVIRON 480 static char *** 481 rpl_environ (void) { return &environ; } 482 _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); 483 # undef environ 484 # define environ (*rpl_environ ()) 485 #endif 486 or better (avoiding contradictory use of 'static' and 'extern'): 487 #if HAVE_RAW_DECL_ENVIRON 488 static char *** 489 _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") 490 rpl_environ (void) { return &environ; } 491 # undef environ 492 # define environ (*rpl_environ ()) 493 #endif 494 */ 495#ifndef _GL_WARN_ON_USE 496 497# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) 498/* A compiler attribute is available in gcc versions 4.3.0 and later. */ 499# define _GL_WARN_ON_USE(function, message) \ 500extern __typeof__ (function) function __attribute__ ((__warning__ (message))) 501# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ 502 __attribute__ ((__warning__ (message))) 503# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 504/* Verify the existence of the function. */ 505# define _GL_WARN_ON_USE(function, message) \ 506extern __typeof__ (function) function 507# define _GL_WARN_ON_USE_ATTRIBUTE(message) 508# else /* Unsupported. */ 509# define _GL_WARN_ON_USE(function, message) \ 510_GL_WARN_EXTERN_C int _gl_warn_on_use 511# define _GL_WARN_ON_USE_ATTRIBUTE(message) 512# endif 513#endif 514 515/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string") 516 is like _GL_WARN_ON_USE (function, "string"), except that in C++ mode the 517 function is declared with the given prototype, consisting of return type, 518 parameters, and attributes. 519 This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does 520 not work in this case. */ 521#ifndef _GL_WARN_ON_USE_CXX 522# if !defined __cplusplus 523# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 524 _GL_WARN_ON_USE (function, msg) 525# else 526# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) 527# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 528extern rettype function parameters_and_attributes \ 529 __attribute__ ((__warning__ (msg))) 530# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 531/* Verify the existence of the function. */ 532# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 533extern rettype function parameters_and_attributes 534# else /* Unsupported. */ 535# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 536_GL_WARN_EXTERN_C int _gl_warn_on_use 537# endif 538# endif 539#endif 540 541/* _GL_WARN_EXTERN_C declaration; 542 performs the declaration with C linkage. */ 543#ifndef _GL_WARN_EXTERN_C 544# if defined __cplusplus 545# define _GL_WARN_EXTERN_C extern "C" 546# else 547# define _GL_WARN_EXTERN_C extern 548# endif 549#endif 550 551/* 7.8.1 Macros for format specifiers */ 552 553#if defined _TNS_R_TARGET 554 /* Tandem NonStop R series and compatible platforms released before 555 July 2005 support %Ld but not %lld. */ 556# define _LONG_LONG_FORMAT_PREFIX "L" 557#else 558# define _LONG_LONG_FORMAT_PREFIX "ll" 559#endif 560 561#if !defined PRId8 || 0 562# undef PRId8 563# ifdef INT8_MAX 564# define PRId8 "d" 565# endif 566#endif 567#if !defined PRIi8 || 0 568# undef PRIi8 569# ifdef INT8_MAX 570# define PRIi8 "i" 571# endif 572#endif 573#if !defined PRIo8 || 0 574# undef PRIo8 575# ifdef UINT8_MAX 576# define PRIo8 "o" 577# endif 578#endif 579#if !defined PRIu8 || 0 580# undef PRIu8 581# ifdef UINT8_MAX 582# define PRIu8 "u" 583# endif 584#endif 585#if !defined PRIx8 || 0 586# undef PRIx8 587# ifdef UINT8_MAX 588# define PRIx8 "x" 589# endif 590#endif 591#if !defined PRIX8 || 0 592# undef PRIX8 593# ifdef UINT8_MAX 594# define PRIX8 "X" 595# endif 596#endif 597#if !defined PRId16 || 0 598# undef PRId16 599# ifdef INT16_MAX 600# define PRId16 "d" 601# endif 602#endif 603#if !defined PRIi16 || 0 604# undef PRIi16 605# ifdef INT16_MAX 606# define PRIi16 "i" 607# endif 608#endif 609#if !defined PRIo16 || 0 610# undef PRIo16 611# ifdef UINT16_MAX 612# define PRIo16 "o" 613# endif 614#endif 615#if !defined PRIu16 || 0 616# undef PRIu16 617# ifdef UINT16_MAX 618# define PRIu16 "u" 619# endif 620#endif 621#if !defined PRIx16 || 0 622# undef PRIx16 623# ifdef UINT16_MAX 624# define PRIx16 "x" 625# endif 626#endif 627#if !defined PRIX16 || 0 628# undef PRIX16 629# ifdef UINT16_MAX 630# define PRIX16 "X" 631# endif 632#endif 633#if !defined PRId32 || 0 634# undef PRId32 635# ifdef INT32_MAX 636# define PRId32 "d" 637# endif 638#endif 639#if !defined PRIi32 || 0 640# undef PRIi32 641# ifdef INT32_MAX 642# define PRIi32 "i" 643# endif 644#endif 645#if !defined PRIo32 || 0 646# undef PRIo32 647# ifdef UINT32_MAX 648# define PRIo32 "o" 649# endif 650#endif 651#if !defined PRIu32 || 0 652# undef PRIu32 653# ifdef UINT32_MAX 654# define PRIu32 "u" 655# endif 656#endif 657#if !defined PRIx32 || 0 658# undef PRIx32 659# ifdef UINT32_MAX 660# define PRIx32 "x" 661# endif 662#endif 663#if !defined PRIX32 || 0 664# undef PRIX32 665# ifdef UINT32_MAX 666# define PRIX32 "X" 667# endif 668#endif 669#ifdef INT64_MAX 670# if (0 ? defined _LP64 : 0) 671# define _PRI64_PREFIX "l" 672# elif defined _MSC_VER || defined __MINGW32__ 673# define _PRI64_PREFIX "I64" 674# elif LONG_MAX >> 30 == 1 675# define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX 676# endif 677# if !defined PRId64 || 0 678# undef PRId64 679# define PRId64 _PRI64_PREFIX "d" 680# endif 681# if !defined PRIi64 || 0 682# undef PRIi64 683# define PRIi64 _PRI64_PREFIX "i" 684# endif 685#endif 686#ifdef UINT64_MAX 687# if (0 ? defined _LP64 : 0) 688# define _PRIu64_PREFIX "l" 689# elif defined _MSC_VER || defined __MINGW32__ 690# define _PRIu64_PREFIX "I64" 691# elif ULONG_MAX >> 31 == 1 692# define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX 693# endif 694# if !defined PRIo64 || 0 695# undef PRIo64 696# define PRIo64 _PRIu64_PREFIX "o" 697# endif 698# if !defined PRIu64 || 0 699# undef PRIu64 700# define PRIu64 _PRIu64_PREFIX "u" 701# endif 702# if !defined PRIx64 || 0 703# undef PRIx64 704# define PRIx64 _PRIu64_PREFIX "x" 705# endif 706# if !defined PRIX64 || 0 707# undef PRIX64 708# define PRIX64 _PRIu64_PREFIX "X" 709# endif 710#endif 711 712#if !defined PRIdLEAST8 || 0 713# undef PRIdLEAST8 714# define PRIdLEAST8 "d" 715#endif 716#if !defined PRIiLEAST8 || 0 717# undef PRIiLEAST8 718# define PRIiLEAST8 "i" 719#endif 720#if !defined PRIoLEAST8 || 0 721# undef PRIoLEAST8 722# define PRIoLEAST8 "o" 723#endif 724#if !defined PRIuLEAST8 || 0 725# undef PRIuLEAST8 726# define PRIuLEAST8 "u" 727#endif 728#if !defined PRIxLEAST8 || 0 729# undef PRIxLEAST8 730# define PRIxLEAST8 "x" 731#endif 732#if !defined PRIXLEAST8 || 0 733# undef PRIXLEAST8 734# define PRIXLEAST8 "X" 735#endif 736#if !defined PRIdLEAST16 || 0 737# undef PRIdLEAST16 738# define PRIdLEAST16 "d" 739#endif 740#if !defined PRIiLEAST16 || 0 741# undef PRIiLEAST16 742# define PRIiLEAST16 "i" 743#endif 744#if !defined PRIoLEAST16 || 0 745# undef PRIoLEAST16 746# define PRIoLEAST16 "o" 747#endif 748#if !defined PRIuLEAST16 || 0 749# undef PRIuLEAST16 750# define PRIuLEAST16 "u" 751#endif 752#if !defined PRIxLEAST16 || 0 753# undef PRIxLEAST16 754# define PRIxLEAST16 "x" 755#endif 756#if !defined PRIXLEAST16 || 0 757# undef PRIXLEAST16 758# define PRIXLEAST16 "X" 759#endif 760#if !defined PRIdLEAST32 || 0 761# undef PRIdLEAST32 762# define PRIdLEAST32 "d" 763#endif 764#if !defined PRIiLEAST32 || 0 765# undef PRIiLEAST32 766# define PRIiLEAST32 "i" 767#endif 768#if !defined PRIoLEAST32 || 0 769# undef PRIoLEAST32 770# define PRIoLEAST32 "o" 771#endif 772#if !defined PRIuLEAST32 || 0 773# undef PRIuLEAST32 774# define PRIuLEAST32 "u" 775#endif 776#if !defined PRIxLEAST32 || 0 777# undef PRIxLEAST32 778# define PRIxLEAST32 "x" 779#endif 780#if !defined PRIXLEAST32 || 0 781# undef PRIXLEAST32 782# define PRIXLEAST32 "X" 783#endif 784#ifdef INT64_MAX 785# if !defined PRIdLEAST64 || 0 786# undef PRIdLEAST64 787# define PRIdLEAST64 PRId64 788# endif 789# if !defined PRIiLEAST64 || 0 790# undef PRIiLEAST64 791# define PRIiLEAST64 PRIi64 792# endif 793#endif 794#ifdef UINT64_MAX 795# if !defined PRIoLEAST64 || 0 796# undef PRIoLEAST64 797# define PRIoLEAST64 PRIo64 798# endif 799# if !defined PRIuLEAST64 || 0 800# undef PRIuLEAST64 801# define PRIuLEAST64 PRIu64 802# endif 803# if !defined PRIxLEAST64 || 0 804# undef PRIxLEAST64 805# define PRIxLEAST64 PRIx64 806# endif 807# if !defined PRIXLEAST64 || 0 808# undef PRIXLEAST64 809# define PRIXLEAST64 PRIX64 810# endif 811#endif 812 813#if !defined PRIdFAST8 || 0 814# undef PRIdFAST8 815# if INT_FAST8_MAX > INT32_MAX 816# define PRIdFAST8 PRId64 817# else 818# define PRIdFAST8 "d" 819# endif 820#endif 821#if !defined PRIiFAST8 || 0 822# undef PRIiFAST8 823# if INT_FAST8_MAX > INT32_MAX 824# define PRIiFAST8 PRIi64 825# else 826# define PRIiFAST8 "i" 827# endif 828#endif 829#if !defined PRIoFAST8 || 0 830# undef PRIoFAST8 831# if UINT_FAST8_MAX > UINT32_MAX 832# define PRIoFAST8 PRIo64 833# else 834# define PRIoFAST8 "o" 835# endif 836#endif 837#if !defined PRIuFAST8 || 0 838# undef PRIuFAST8 839# if UINT_FAST8_MAX > UINT32_MAX 840# define PRIuFAST8 PRIu64 841# else 842# define PRIuFAST8 "u" 843# endif 844#endif 845#if !defined PRIxFAST8 || 0 846# undef PRIxFAST8 847# if UINT_FAST8_MAX > UINT32_MAX 848# define PRIxFAST8 PRIx64 849# else 850# define PRIxFAST8 "x" 851# endif 852#endif 853#if !defined PRIXFAST8 || 0 854# undef PRIXFAST8 855# if UINT_FAST8_MAX > UINT32_MAX 856# define PRIXFAST8 PRIX64 857# else 858# define PRIXFAST8 "X" 859# endif 860#endif 861#if !defined PRIdFAST16 || 0 862# undef PRIdFAST16 863# if INT_FAST16_MAX > INT32_MAX 864# define PRIdFAST16 PRId64 865# else 866# define PRIdFAST16 "d" 867# endif 868#endif 869#if !defined PRIiFAST16 || 0 870# undef PRIiFAST16 871# if INT_FAST16_MAX > INT32_MAX 872# define PRIiFAST16 PRIi64 873# else 874# define PRIiFAST16 "i" 875# endif 876#endif 877#if !defined PRIoFAST16 || 0 878# undef PRIoFAST16 879# if UINT_FAST16_MAX > UINT32_MAX 880# define PRIoFAST16 PRIo64 881# else 882# define PRIoFAST16 "o" 883# endif 884#endif 885#if !defined PRIuFAST16 || 0 886# undef PRIuFAST16 887# if UINT_FAST16_MAX > UINT32_MAX 888# define PRIuFAST16 PRIu64 889# else 890# define PRIuFAST16 "u" 891# endif 892#endif 893#if !defined PRIxFAST16 || 0 894# undef PRIxFAST16 895# if UINT_FAST16_MAX > UINT32_MAX 896# define PRIxFAST16 PRIx64 897# else 898# define PRIxFAST16 "x" 899# endif 900#endif 901#if !defined PRIXFAST16 || 0 902# undef PRIXFAST16 903# if UINT_FAST16_MAX > UINT32_MAX 904# define PRIXFAST16 PRIX64 905# else 906# define PRIXFAST16 "X" 907# endif 908#endif 909#if !defined PRIdFAST32 || 0 910# undef PRIdFAST32 911# if INT_FAST32_MAX > INT32_MAX 912# define PRIdFAST32 PRId64 913# else 914# define PRIdFAST32 "d" 915# endif 916#endif 917#if !defined PRIiFAST32 || 0 918# undef PRIiFAST32 919# if INT_FAST32_MAX > INT32_MAX 920# define PRIiFAST32 PRIi64 921# else 922# define PRIiFAST32 "i" 923# endif 924#endif 925#if !defined PRIoFAST32 || 0 926# undef PRIoFAST32 927# if UINT_FAST32_MAX > UINT32_MAX 928# define PRIoFAST32 PRIo64 929# else 930# define PRIoFAST32 "o" 931# endif 932#endif 933#if !defined PRIuFAST32 || 0 934# undef PRIuFAST32 935# if UINT_FAST32_MAX > UINT32_MAX 936# define PRIuFAST32 PRIu64 937# else 938# define PRIuFAST32 "u" 939# endif 940#endif 941#if !defined PRIxFAST32 || 0 942# undef PRIxFAST32 943# if UINT_FAST32_MAX > UINT32_MAX 944# define PRIxFAST32 PRIx64 945# else 946# define PRIxFAST32 "x" 947# endif 948#endif 949#if !defined PRIXFAST32 || 0 950# undef PRIXFAST32 951# if UINT_FAST32_MAX > UINT32_MAX 952# define PRIXFAST32 PRIX64 953# else 954# define PRIXFAST32 "X" 955# endif 956#endif 957#ifdef INT64_MAX 958# if !defined PRIdFAST64 || 0 959# undef PRIdFAST64 960# define PRIdFAST64 PRId64 961# endif 962# if !defined PRIiFAST64 || 0 963# undef PRIiFAST64 964# define PRIiFAST64 PRIi64 965# endif 966#endif 967#ifdef UINT64_MAX 968# if !defined PRIoFAST64 || 0 969# undef PRIoFAST64 970# define PRIoFAST64 PRIo64 971# endif 972# if !defined PRIuFAST64 || 0 973# undef PRIuFAST64 974# define PRIuFAST64 PRIu64 975# endif 976# if !defined PRIxFAST64 || 0 977# undef PRIxFAST64 978# define PRIxFAST64 PRIx64 979# endif 980# if !defined PRIXFAST64 || 0 981# undef PRIXFAST64 982# define PRIXFAST64 PRIX64 983# endif 984#endif 985 986#if !defined PRIdMAX || 0 987# undef PRIdMAX 988# if 1 989# define PRIdMAX PRId64 990# else 991# define PRIdMAX "ld" 992# endif 993#endif 994#if !defined PRIiMAX || 0 995# undef PRIiMAX 996# if 1 997# define PRIiMAX PRIi64 998# else 999# define PRIiMAX "li" 1000# endif 1001#endif 1002#if !defined PRIoMAX || 0 1003# undef PRIoMAX 1004# if 1 1005# define PRIoMAX PRIo64 1006# else 1007# define PRIoMAX "lo" 1008# endif 1009#endif 1010#if !defined PRIuMAX || 0 1011# undef PRIuMAX 1012# if 1 1013# define PRIuMAX PRIu64 1014# else 1015# define PRIuMAX "lu" 1016# endif 1017#endif 1018#if !defined PRIxMAX || 0 1019# undef PRIxMAX 1020# if 1 1021# define PRIxMAX PRIx64 1022# else 1023# define PRIxMAX "lx" 1024# endif 1025#endif 1026#if !defined PRIXMAX || 0 1027# undef PRIXMAX 1028# if 1 1029# define PRIXMAX PRIX64 1030# else 1031# define PRIXMAX "lX" 1032# endif 1033#endif 1034 1035#if !defined PRIdPTR || 0 1036# undef PRIdPTR 1037# ifdef INTPTR_MAX 1038# define PRIdPTR "l" "d" 1039# endif 1040#endif 1041#if !defined PRIiPTR || 0 1042# undef PRIiPTR 1043# ifdef INTPTR_MAX 1044# define PRIiPTR "l" "i" 1045# endif 1046#endif 1047#if !defined PRIoPTR || 0 1048# undef PRIoPTR 1049# ifdef UINTPTR_MAX 1050# define PRIoPTR "l" "o" 1051# endif 1052#endif 1053#if !defined PRIuPTR || 0 1054# undef PRIuPTR 1055# ifdef UINTPTR_MAX 1056# define PRIuPTR "l" "u" 1057# endif 1058#endif 1059#if !defined PRIxPTR || 0 1060# undef PRIxPTR 1061# ifdef UINTPTR_MAX 1062# define PRIxPTR "l" "x" 1063# endif 1064#endif 1065#if !defined PRIXPTR || 0 1066# undef PRIXPTR 1067# ifdef UINTPTR_MAX 1068# define PRIXPTR "l" "X" 1069# endif 1070#endif 1071 1072#if !defined SCNd8 || 0 1073# undef SCNd8 1074# ifdef INT8_MAX 1075# define SCNd8 "hhd" 1076# endif 1077#endif 1078#if !defined SCNi8 || 0 1079# undef SCNi8 1080# ifdef INT8_MAX 1081# define SCNi8 "hhi" 1082# endif 1083#endif 1084#if !defined SCNo8 || 0 1085# undef SCNo8 1086# ifdef UINT8_MAX 1087# define SCNo8 "hho" 1088# endif 1089#endif 1090#if !defined SCNu8 || 0 1091# undef SCNu8 1092# ifdef UINT8_MAX 1093# define SCNu8 "hhu" 1094# endif 1095#endif 1096#if !defined SCNx8 || 0 1097# undef SCNx8 1098# ifdef UINT8_MAX 1099# define SCNx8 "hhx" 1100# endif 1101#endif 1102#if !defined SCNd16 || 0 1103# undef SCNd16 1104# ifdef INT16_MAX 1105# define SCNd16 "hd" 1106# endif 1107#endif 1108#if !defined SCNi16 || 0 1109# undef SCNi16 1110# ifdef INT16_MAX 1111# define SCNi16 "hi" 1112# endif 1113#endif 1114#if !defined SCNo16 || 0 1115# undef SCNo16 1116# ifdef UINT16_MAX 1117# define SCNo16 "ho" 1118# endif 1119#endif 1120#if !defined SCNu16 || 0 1121# undef SCNu16 1122# ifdef UINT16_MAX 1123# define SCNu16 "hu" 1124# endif 1125#endif 1126#if !defined SCNx16 || 0 1127# undef SCNx16 1128# ifdef UINT16_MAX 1129# define SCNx16 "hx" 1130# endif 1131#endif 1132#if !defined SCNd32 || 0 1133# undef SCNd32 1134# ifdef INT32_MAX 1135# define SCNd32 "d" 1136# endif 1137#endif 1138#if !defined SCNi32 || 0 1139# undef SCNi32 1140# ifdef INT32_MAX 1141# define SCNi32 "i" 1142# endif 1143#endif 1144#if !defined SCNo32 || 0 1145# undef SCNo32 1146# ifdef UINT32_MAX 1147# define SCNo32 "o" 1148# endif 1149#endif 1150#if !defined SCNu32 || 0 1151# undef SCNu32 1152# ifdef UINT32_MAX 1153# define SCNu32 "u" 1154# endif 1155#endif 1156#if !defined SCNx32 || 0 1157# undef SCNx32 1158# ifdef UINT32_MAX 1159# define SCNx32 "x" 1160# endif 1161#endif 1162#ifdef INT64_MAX 1163# if (0 ? defined _LP64 : 0) 1164# define _SCN64_PREFIX "l" 1165# elif defined _MSC_VER || defined __MINGW32__ 1166# define _SCN64_PREFIX "I64" 1167# elif LONG_MAX >> 30 == 1 1168# define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX 1169# endif 1170# if !defined SCNd64 || 0 1171# undef SCNd64 1172# define SCNd64 _SCN64_PREFIX "d" 1173# endif 1174# if !defined SCNi64 || 0 1175# undef SCNi64 1176# define SCNi64 _SCN64_PREFIX "i" 1177# endif 1178#endif 1179#ifdef UINT64_MAX 1180# if (0 ? defined _LP64 : 0) 1181# define _SCNu64_PREFIX "l" 1182# elif defined _MSC_VER || defined __MINGW32__ 1183# define _SCNu64_PREFIX "I64" 1184# elif ULONG_MAX >> 31 == 1 1185# define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX 1186# endif 1187# if !defined SCNo64 || 0 1188# undef SCNo64 1189# define SCNo64 _SCNu64_PREFIX "o" 1190# endif 1191# if !defined SCNu64 || 0 1192# undef SCNu64 1193# define SCNu64 _SCNu64_PREFIX "u" 1194# endif 1195# if !defined SCNx64 || 0 1196# undef SCNx64 1197# define SCNx64 _SCNu64_PREFIX "x" 1198# endif 1199#endif 1200 1201#if !defined SCNdLEAST8 || 0 1202# undef SCNdLEAST8 1203# define SCNdLEAST8 "hhd" 1204#endif 1205#if !defined SCNiLEAST8 || 0 1206# undef SCNiLEAST8 1207# define SCNiLEAST8 "hhi" 1208#endif 1209#if !defined SCNoLEAST8 || 0 1210# undef SCNoLEAST8 1211# define SCNoLEAST8 "hho" 1212#endif 1213#if !defined SCNuLEAST8 || 0 1214# undef SCNuLEAST8 1215# define SCNuLEAST8 "hhu" 1216#endif 1217#if !defined SCNxLEAST8 || 0 1218# undef SCNxLEAST8 1219# define SCNxLEAST8 "hhx" 1220#endif 1221#if !defined SCNdLEAST16 || 0 1222# undef SCNdLEAST16 1223# define SCNdLEAST16 "hd" 1224#endif 1225#if !defined SCNiLEAST16 || 0 1226# undef SCNiLEAST16 1227# define SCNiLEAST16 "hi" 1228#endif 1229#if !defined SCNoLEAST16 || 0 1230# undef SCNoLEAST16 1231# define SCNoLEAST16 "ho" 1232#endif 1233#if !defined SCNuLEAST16 || 0 1234# undef SCNuLEAST16 1235# define SCNuLEAST16 "hu" 1236#endif 1237#if !defined SCNxLEAST16 || 0 1238# undef SCNxLEAST16 1239# define SCNxLEAST16 "hx" 1240#endif 1241#if !defined SCNdLEAST32 || 0 1242# undef SCNdLEAST32 1243# define SCNdLEAST32 "d" 1244#endif 1245#if !defined SCNiLEAST32 || 0 1246# undef SCNiLEAST32 1247# define SCNiLEAST32 "i" 1248#endif 1249#if !defined SCNoLEAST32 || 0 1250# undef SCNoLEAST32 1251# define SCNoLEAST32 "o" 1252#endif 1253#if !defined SCNuLEAST32 || 0 1254# undef SCNuLEAST32 1255# define SCNuLEAST32 "u" 1256#endif 1257#if !defined SCNxLEAST32 || 0 1258# undef SCNxLEAST32 1259# define SCNxLEAST32 "x" 1260#endif 1261#ifdef INT64_MAX 1262# if !defined SCNdLEAST64 || 0 1263# undef SCNdLEAST64 1264# define SCNdLEAST64 SCNd64 1265# endif 1266# if !defined SCNiLEAST64 || 0 1267# undef SCNiLEAST64 1268# define SCNiLEAST64 SCNi64 1269# endif 1270#endif 1271#ifdef UINT64_MAX 1272# if !defined SCNoLEAST64 || 0 1273# undef SCNoLEAST64 1274# define SCNoLEAST64 SCNo64 1275# endif 1276# if !defined SCNuLEAST64 || 0 1277# undef SCNuLEAST64 1278# define SCNuLEAST64 SCNu64 1279# endif 1280# if !defined SCNxLEAST64 || 0 1281# undef SCNxLEAST64 1282# define SCNxLEAST64 SCNx64 1283# endif 1284#endif 1285 1286#if !defined SCNdFAST8 || 0 1287# undef SCNdFAST8 1288# if INT_FAST8_MAX > INT32_MAX 1289# define SCNdFAST8 SCNd64 1290# elif INT_FAST8_MAX == 0x7fff 1291# define SCNdFAST8 "hd" 1292# elif INT_FAST8_MAX == 0x7f 1293# define SCNdFAST8 "hhd" 1294# else 1295# define SCNdFAST8 "d" 1296# endif 1297#endif 1298#if !defined SCNiFAST8 || 0 1299# undef SCNiFAST8 1300# if INT_FAST8_MAX > INT32_MAX 1301# define SCNiFAST8 SCNi64 1302# elif INT_FAST8_MAX == 0x7fff 1303# define SCNiFAST8 "hi" 1304# elif INT_FAST8_MAX == 0x7f 1305# define SCNiFAST8 "hhi" 1306# else 1307# define SCNiFAST8 "i" 1308# endif 1309#endif 1310#if !defined SCNoFAST8 || 0 1311# undef SCNoFAST8 1312# if UINT_FAST8_MAX > UINT32_MAX 1313# define SCNoFAST8 SCNo64 1314# elif UINT_FAST8_MAX == 0xffff 1315# define SCNoFAST8 "ho" 1316# elif UINT_FAST8_MAX == 0xff 1317# define SCNoFAST8 "hho" 1318# else 1319# define SCNoFAST8 "o" 1320# endif 1321#endif 1322#if !defined SCNuFAST8 || 0 1323# undef SCNuFAST8 1324# if UINT_FAST8_MAX > UINT32_MAX 1325# define SCNuFAST8 SCNu64 1326# elif UINT_FAST8_MAX == 0xffff 1327# define SCNuFAST8 "hu" 1328# elif UINT_FAST8_MAX == 0xff 1329# define SCNuFAST8 "hhu" 1330# else 1331# define SCNuFAST8 "u" 1332# endif 1333#endif 1334#if !defined SCNxFAST8 || 0 1335# undef SCNxFAST8 1336# if UINT_FAST8_MAX > UINT32_MAX 1337# define SCNxFAST8 SCNx64 1338# elif UINT_FAST8_MAX == 0xffff 1339# define SCNxFAST8 "hx" 1340# elif UINT_FAST8_MAX == 0xff 1341# define SCNxFAST8 "hhx" 1342# else 1343# define SCNxFAST8 "x" 1344# endif 1345#endif 1346#if !defined SCNdFAST16 || 0 1347# undef SCNdFAST16 1348# if INT_FAST16_MAX > INT32_MAX 1349# define SCNdFAST16 SCNd64 1350# elif INT_FAST16_MAX == 0x7fff 1351# define SCNdFAST16 "hd" 1352# else 1353# define SCNdFAST16 "d" 1354# endif 1355#endif 1356#if !defined SCNiFAST16 || 0 1357# undef SCNiFAST16 1358# if INT_FAST16_MAX > INT32_MAX 1359# define SCNiFAST16 SCNi64 1360# elif INT_FAST16_MAX == 0x7fff 1361# define SCNiFAST16 "hi" 1362# else 1363# define SCNiFAST16 "i" 1364# endif 1365#endif 1366#if !defined SCNoFAST16 || 0 1367# undef SCNoFAST16 1368# if UINT_FAST16_MAX > UINT32_MAX 1369# define SCNoFAST16 SCNo64 1370# elif UINT_FAST16_MAX == 0xffff 1371# define SCNoFAST16 "ho" 1372# else 1373# define SCNoFAST16 "o" 1374# endif 1375#endif 1376#if !defined SCNuFAST16 || 0 1377# undef SCNuFAST16 1378# if UINT_FAST16_MAX > UINT32_MAX 1379# define SCNuFAST16 SCNu64 1380# elif UINT_FAST16_MAX == 0xffff 1381# define SCNuFAST16 "hu" 1382# else 1383# define SCNuFAST16 "u" 1384# endif 1385#endif 1386#if !defined SCNxFAST16 || 0 1387# undef SCNxFAST16 1388# if UINT_FAST16_MAX > UINT32_MAX 1389# define SCNxFAST16 SCNx64 1390# elif UINT_FAST16_MAX == 0xffff 1391# define SCNxFAST16 "hx" 1392# else 1393# define SCNxFAST16 "x" 1394# endif 1395#endif 1396#if !defined SCNdFAST32 || 0 1397# undef SCNdFAST32 1398# if INT_FAST32_MAX > INT32_MAX 1399# define SCNdFAST32 SCNd64 1400# else 1401# define SCNdFAST32 "d" 1402# endif 1403#endif 1404#if !defined SCNiFAST32 || 0 1405# undef SCNiFAST32 1406# if INT_FAST32_MAX > INT32_MAX 1407# define SCNiFAST32 SCNi64 1408# else 1409# define SCNiFAST32 "i" 1410# endif 1411#endif 1412#if !defined SCNoFAST32 || 0 1413# undef SCNoFAST32 1414# if UINT_FAST32_MAX > UINT32_MAX 1415# define SCNoFAST32 SCNo64 1416# else 1417# define SCNoFAST32 "o" 1418# endif 1419#endif 1420#if !defined SCNuFAST32 || 0 1421# undef SCNuFAST32 1422# if UINT_FAST32_MAX > UINT32_MAX 1423# define SCNuFAST32 SCNu64 1424# else 1425# define SCNuFAST32 "u" 1426# endif 1427#endif 1428#if !defined SCNxFAST32 || 0 1429# undef SCNxFAST32 1430# if UINT_FAST32_MAX > UINT32_MAX 1431# define SCNxFAST32 SCNx64 1432# else 1433# define SCNxFAST32 "x" 1434# endif 1435#endif 1436#ifdef INT64_MAX 1437# if !defined SCNdFAST64 || 0 1438# undef SCNdFAST64 1439# define SCNdFAST64 SCNd64 1440# endif 1441# if !defined SCNiFAST64 || 0 1442# undef SCNiFAST64 1443# define SCNiFAST64 SCNi64 1444# endif 1445#endif 1446#ifdef UINT64_MAX 1447# if !defined SCNoFAST64 || 0 1448# undef SCNoFAST64 1449# define SCNoFAST64 SCNo64 1450# endif 1451# if !defined SCNuFAST64 || 0 1452# undef SCNuFAST64 1453# define SCNuFAST64 SCNu64 1454# endif 1455# if !defined SCNxFAST64 || 0 1456# undef SCNxFAST64 1457# define SCNxFAST64 SCNx64 1458# endif 1459#endif 1460 1461#if !defined SCNdMAX || 0 1462# undef SCNdMAX 1463# if 1 1464# define SCNdMAX SCNd64 1465# else 1466# define SCNdMAX "ld" 1467# endif 1468#endif 1469#if !defined SCNiMAX || 0 1470# undef SCNiMAX 1471# if 1 1472# define SCNiMAX SCNi64 1473# else 1474# define SCNiMAX "li" 1475# endif 1476#endif 1477#if !defined SCNoMAX || 0 1478# undef SCNoMAX 1479# if 1 1480# define SCNoMAX SCNo64 1481# else 1482# define SCNoMAX "lo" 1483# endif 1484#endif 1485#if !defined SCNuMAX || 0 1486# undef SCNuMAX 1487# if 1 1488# define SCNuMAX SCNu64 1489# else 1490# define SCNuMAX "lu" 1491# endif 1492#endif 1493#if !defined SCNxMAX || 0 1494# undef SCNxMAX 1495# if 1 1496# define SCNxMAX SCNx64 1497# else 1498# define SCNxMAX "lx" 1499# endif 1500#endif 1501 1502#if !defined SCNdPTR || 0 1503# undef SCNdPTR 1504# ifdef INTPTR_MAX 1505# define SCNdPTR "l" "d" 1506# endif 1507#endif 1508#if !defined SCNiPTR || 0 1509# undef SCNiPTR 1510# ifdef INTPTR_MAX 1511# define SCNiPTR "l" "i" 1512# endif 1513#endif 1514#if !defined SCNoPTR || 0 1515# undef SCNoPTR 1516# ifdef UINTPTR_MAX 1517# define SCNoPTR "l" "o" 1518# endif 1519#endif 1520#if !defined SCNuPTR || 0 1521# undef SCNuPTR 1522# ifdef UINTPTR_MAX 1523# define SCNuPTR "l" "u" 1524# endif 1525#endif 1526#if !defined SCNxPTR || 0 1527# undef SCNxPTR 1528# ifdef UINTPTR_MAX 1529# define SCNxPTR "l" "x" 1530# endif 1531#endif 1532 1533/* 7.8.2 Functions for greatest-width integer types */ 1534 1535#ifdef __cplusplus 1536extern "C" { 1537#endif 1538 1539#if 0 1540# if !1 1541extern intmax_t imaxabs (intmax_t); 1542# endif 1543#elif defined GNULIB_POSIXCHECK 1544# undef imaxabs 1545# if HAVE_RAW_DECL_IMAXABS 1546_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " 1547 "use gnulib module imaxabs for portability"); 1548# endif 1549#endif 1550 1551#if 0 1552# if !1 1553# if !GNULIB_defined_imaxdiv_t 1554typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; 1555# define GNULIB_defined_imaxdiv_t 1 1556# endif 1557# endif 1558# if !1 1559extern imaxdiv_t imaxdiv (intmax_t, intmax_t); 1560# endif 1561#elif defined GNULIB_POSIXCHECK 1562# undef imaxdiv 1563# if HAVE_RAW_DECL_IMAXDIV 1564_GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " 1565 "use gnulib module imaxdiv for portability"); 1566# endif 1567#endif 1568 1569#if 0 1570# if 0 1571# if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1572# undef strtoimax 1573# define strtoimax rpl_strtoimax 1574# endif 1575_GL_FUNCDECL_RPL (strtoimax, intmax_t, 1576 (const char *restrict, char **restrict, int) 1577 _GL_ARG_NONNULL ((1))); 1578_GL_CXXALIAS_RPL (strtoimax, intmax_t, 1579 (const char *restrict, char **restrict, int)); 1580# else 1581# if !1 1582# undef strtoimax 1583_GL_FUNCDECL_SYS (strtoimax, intmax_t, 1584 (const char *restrict, char **restrict, int) 1585 _GL_ARG_NONNULL ((1))); 1586# endif 1587_GL_CXXALIAS_SYS (strtoimax, intmax_t, 1588 (const char *restrict, char **restrict, int)); 1589# endif 1590_GL_CXXALIASWARN (strtoimax); 1591#elif defined GNULIB_POSIXCHECK 1592# undef strtoimax 1593# if HAVE_RAW_DECL_STRTOIMAX 1594_GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " 1595 "use gnulib module strtoimax for portability"); 1596# endif 1597#endif 1598 1599#if 0 1600# if 0 1601# if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1602# undef strtoumax 1603# define strtoumax rpl_strtoumax 1604# endif 1605_GL_FUNCDECL_RPL (strtoumax, uintmax_t, 1606 (const char *restrict, char **restrict, int) 1607 _GL_ARG_NONNULL ((1))); 1608_GL_CXXALIAS_RPL (strtoumax, uintmax_t, 1609 (const char *restrict, char **restrict, int)); 1610# else 1611# if !1 1612# undef strtoumax 1613_GL_FUNCDECL_SYS (strtoumax, uintmax_t, 1614 (const char *restrict, char **restrict, int) 1615 _GL_ARG_NONNULL ((1))); 1616# endif 1617_GL_CXXALIAS_SYS (strtoumax, uintmax_t, 1618 (const char *restrict, char **restrict, int)); 1619# endif 1620_GL_CXXALIASWARN (strtoumax); 1621#elif defined GNULIB_POSIXCHECK 1622# undef strtoumax 1623# if HAVE_RAW_DECL_STRTOUMAX 1624_GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " 1625 "use gnulib module strtoumax for portability"); 1626# endif 1627#endif 1628 1629/* Don't bother defining or declaring wcstoimax and wcstoumax, since 1630 wide-character functions like this are hardly ever useful. */ 1631 1632#ifdef __cplusplus 1633} 1634#endif 1635 1636#endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ 1637