diff options
Diffstat (limited to 'gl/stdlib.in.h')
-rw-r--r-- | gl/stdlib.in.h | 374 |
1 files changed, 348 insertions, 26 deletions
diff --git a/gl/stdlib.in.h b/gl/stdlib.in.h index b79e5f7..e74e7c1 100644 --- a/gl/stdlib.in.h +++ b/gl/stdlib.in.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* A GNU-like <stdlib.h>. | 1 | /* A GNU-like <stdlib.h>. |
2 | 2 | ||
3 | Copyright (C) 1995, 2001-2004, 2006-2023 Free Software Foundation, Inc. | 3 | Copyright (C) 1995, 2001-2004, 2006-2024 Free Software Foundation, Inc. |
4 | 4 | ||
5 | This file is free software: you can redistribute it and/or modify | 5 | This file is free software: you can redistribute it and/or modify |
6 | it under the terms of the GNU Lesser General Public License as | 6 | it under the terms of the GNU Lesser General Public License as |
@@ -37,6 +37,13 @@ | |||
37 | #ifndef _@GUARD_PREFIX@_STDLIB_H | 37 | #ifndef _@GUARD_PREFIX@_STDLIB_H |
38 | #define _@GUARD_PREFIX@_STDLIB_H | 38 | #define _@GUARD_PREFIX@_STDLIB_H |
39 | 39 | ||
40 | /* This file uses _Noreturn, _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC, | ||
41 | _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, | ||
42 | HAVE_RAW_DECL_*. */ | ||
43 | #if !_GL_CONFIG_H_INCLUDED | ||
44 | #error "Please include config.h first." | ||
45 | #endif | ||
46 | |||
40 | /* NetBSD 5.0 mis-defines NULL. */ | 47 | /* NetBSD 5.0 mis-defines NULL. */ |
41 | #include <stddef.h> | 48 | #include <stddef.h> |
42 | 49 | ||
@@ -67,9 +74,7 @@ | |||
67 | # include <random.h> | 74 | # include <random.h> |
68 | # endif | 75 | # endif |
69 | 76 | ||
70 | # if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@ | 77 | # include <stdint.h> |
71 | # include <stdint.h> | ||
72 | # endif | ||
73 | 78 | ||
74 | # if !@HAVE_STRUCT_RANDOM_DATA@ | 79 | # if !@HAVE_STRUCT_RANDOM_DATA@ |
75 | /* Define 'struct random_data'. | 80 | /* Define 'struct random_data'. |
@@ -128,6 +133,28 @@ struct random_data | |||
128 | # endif | 133 | # endif |
129 | #endif | 134 | #endif |
130 | 135 | ||
136 | /* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. | ||
137 | */ | ||
138 | #ifndef _GL_ATTRIBUTE_NOTHROW | ||
139 | # if defined __cplusplus | ||
140 | # if (__GNUC__ + (__GNUC_MINOR__ >= 8) > 2) || __clang_major >= 4 | ||
141 | # if __cplusplus >= 201103L | ||
142 | # define _GL_ATTRIBUTE_NOTHROW noexcept (true) | ||
143 | # else | ||
144 | # define _GL_ATTRIBUTE_NOTHROW throw () | ||
145 | # endif | ||
146 | # else | ||
147 | # define _GL_ATTRIBUTE_NOTHROW | ||
148 | # endif | ||
149 | # else | ||
150 | # if (__GNUC__ + (__GNUC_MINOR__ >= 3) > 3) || defined __clang__ | ||
151 | # define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) | ||
152 | # else | ||
153 | # define _GL_ATTRIBUTE_NOTHROW | ||
154 | # endif | ||
155 | # endif | ||
156 | #endif | ||
157 | |||
131 | /* The __attribute__ feature is available in gcc versions 2.5 and later. | 158 | /* The __attribute__ feature is available in gcc versions 2.5 and later. |
132 | The attribute __pure__ was added in gcc 2.96. */ | 159 | The attribute __pure__ was added in gcc 2.96. */ |
133 | #ifndef _GL_ATTRIBUTE_PURE | 160 | #ifndef _GL_ATTRIBUTE_PURE |
@@ -164,11 +191,22 @@ struct random_data | |||
164 | #if @GNULIB__EXIT@ | 191 | #if @GNULIB__EXIT@ |
165 | /* Terminate the current process with the given return code, without running | 192 | /* Terminate the current process with the given return code, without running |
166 | the 'atexit' handlers. */ | 193 | the 'atexit' handlers. */ |
167 | # if !@HAVE__EXIT@ | 194 | # if @REPLACE__EXIT@ |
195 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
196 | # undef _Exit | ||
197 | # define _Exit rpl__Exit | ||
198 | # endif | ||
199 | _GL_FUNCDECL_RPL (_Exit, _Noreturn void, (int status)); | ||
200 | _GL_CXXALIAS_RPL (_Exit, void, (int status)); | ||
201 | # else | ||
202 | # if !@HAVE__EXIT@ | ||
168 | _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); | 203 | _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); |
169 | # endif | 204 | # endif |
170 | _GL_CXXALIAS_SYS (_Exit, void, (int status)); | 205 | _GL_CXXALIAS_SYS (_Exit, void, (int status)); |
206 | # endif | ||
207 | # if __GLIBC__ >= 2 | ||
171 | _GL_CXXALIASWARN (_Exit); | 208 | _GL_CXXALIASWARN (_Exit); |
209 | # endif | ||
172 | #elif defined GNULIB_POSIXCHECK | 210 | #elif defined GNULIB_POSIXCHECK |
173 | # undef _Exit | 211 | # undef _Exit |
174 | # if HAVE_RAW_DECL__EXIT | 212 | # if HAVE_RAW_DECL__EXIT |
@@ -185,7 +223,7 @@ _GL_WARN_ON_USE (_Exit, "_Exit is unportable - " | |||
185 | # define free rpl_free | 223 | # define free rpl_free |
186 | # endif | 224 | # endif |
187 | # if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) | 225 | # if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) |
188 | _GL_FUNCDECL_RPL (free, void, (void *ptr) throw ()); | 226 | _GL_FUNCDECL_RPL (free, void, (void *ptr) _GL_ATTRIBUTE_NOTHROW); |
189 | # else | 227 | # else |
190 | _GL_FUNCDECL_RPL (free, void, (void *ptr)); | 228 | _GL_FUNCDECL_RPL (free, void, (void *ptr)); |
191 | # endif | 229 | # endif |
@@ -219,9 +257,16 @@ _GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size)); | |||
219 | # if @HAVE_ALIGNED_ALLOC@ | 257 | # if @HAVE_ALIGNED_ALLOC@ |
220 | # if __GNUC__ >= 11 | 258 | # if __GNUC__ >= 11 |
221 | /* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ | 259 | /* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ |
260 | # if __GLIBC__ + (__GLIBC_MINOR__ >= 16) > 2 | ||
261 | _GL_FUNCDECL_SYS (aligned_alloc, void *, | ||
262 | (size_t alignment, size_t size) | ||
263 | _GL_ATTRIBUTE_NOTHROW | ||
264 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | ||
265 | # else | ||
222 | _GL_FUNCDECL_SYS (aligned_alloc, void *, | 266 | _GL_FUNCDECL_SYS (aligned_alloc, void *, |
223 | (size_t alignment, size_t size) | 267 | (size_t alignment, size_t size) |
224 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | 268 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); |
269 | # endif | ||
225 | # endif | 270 | # endif |
226 | _GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size)); | 271 | _GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size)); |
227 | # endif | 272 | # endif |
@@ -232,9 +277,16 @@ _GL_CXXALIASWARN (aligned_alloc); | |||
232 | #else | 277 | #else |
233 | # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined aligned_alloc | 278 | # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined aligned_alloc |
234 | /* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ | 279 | /* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ |
280 | # if __GLIBC__ + (__GLIBC_MINOR__ >= 16) > 2 | ||
235 | _GL_FUNCDECL_SYS (aligned_alloc, void *, | 281 | _GL_FUNCDECL_SYS (aligned_alloc, void *, |
236 | (size_t alignment, size_t size) | 282 | (size_t alignment, size_t size) |
283 | _GL_ATTRIBUTE_NOTHROW | ||
237 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | 284 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); |
285 | # else | ||
286 | _GL_FUNCDECL_SYS (aligned_alloc, void *, | ||
287 | (size_t alignment, size_t size) | ||
288 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | ||
289 | # endif | ||
238 | # endif | 290 | # endif |
239 | # if defined GNULIB_POSIXCHECK | 291 | # if defined GNULIB_POSIXCHECK |
240 | # undef aligned_alloc | 292 | # undef aligned_alloc |
@@ -277,9 +329,16 @@ _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); | |||
277 | # else | 329 | # else |
278 | # if __GNUC__ >= 11 | 330 | # if __GNUC__ >= 11 |
279 | /* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ | 331 | /* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ |
332 | # if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 | ||
280 | _GL_FUNCDECL_SYS (calloc, void *, | 333 | _GL_FUNCDECL_SYS (calloc, void *, |
281 | (size_t nmemb, size_t size) | 334 | (size_t nmemb, size_t size) |
335 | _GL_ATTRIBUTE_NOTHROW | ||
282 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | 336 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); |
337 | # else | ||
338 | _GL_FUNCDECL_SYS (calloc, void *, | ||
339 | (size_t nmemb, size_t size) | ||
340 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | ||
341 | # endif | ||
283 | # endif | 342 | # endif |
284 | _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); | 343 | _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); |
285 | # endif | 344 | # endif |
@@ -289,9 +348,16 @@ _GL_CXXALIASWARN (calloc); | |||
289 | #else | 348 | #else |
290 | # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined calloc | 349 | # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined calloc |
291 | /* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ | 350 | /* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ |
351 | # if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 | ||
352 | _GL_FUNCDECL_SYS (calloc, void *, | ||
353 | (size_t nmemb, size_t size) | ||
354 | _GL_ATTRIBUTE_NOTHROW | ||
355 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | ||
356 | # else | ||
292 | _GL_FUNCDECL_SYS (calloc, void *, | 357 | _GL_FUNCDECL_SYS (calloc, void *, |
293 | (size_t nmemb, size_t size) | 358 | (size_t nmemb, size_t size) |
294 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | 359 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); |
360 | # endif | ||
295 | # endif | 361 | # endif |
296 | # if defined GNULIB_POSIXCHECK | 362 | # if defined GNULIB_POSIXCHECK |
297 | # undef calloc | 363 | # undef calloc |
@@ -313,10 +379,18 @@ _GL_FUNCDECL_RPL (canonicalize_file_name, char *, | |||
313 | _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); | 379 | _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); |
314 | # else | 380 | # else |
315 | # if !@HAVE_CANONICALIZE_FILE_NAME@ || __GNUC__ >= 11 | 381 | # if !@HAVE_CANONICALIZE_FILE_NAME@ || __GNUC__ >= 11 |
382 | # if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 | ||
316 | _GL_FUNCDECL_SYS (canonicalize_file_name, char *, | 383 | _GL_FUNCDECL_SYS (canonicalize_file_name, char *, |
317 | (const char *name) | 384 | (const char *name) |
385 | _GL_ATTRIBUTE_NOTHROW | ||
318 | _GL_ARG_NONNULL ((1)) | 386 | _GL_ARG_NONNULL ((1)) |
319 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | 387 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); |
388 | # else | ||
389 | _GL_FUNCDECL_SYS (canonicalize_file_name, char *, | ||
390 | (const char *name) | ||
391 | _GL_ARG_NONNULL ((1)) | ||
392 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | ||
393 | # endif | ||
320 | # endif | 394 | # endif |
321 | _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); | 395 | _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); |
322 | # endif | 396 | # endif |
@@ -329,10 +403,18 @@ _GL_CXXALIASWARN (canonicalize_file_name); | |||
329 | # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined canonicalize_file_name | 403 | # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined canonicalize_file_name |
330 | /* For -Wmismatched-dealloc: Associate canonicalize_file_name with free or | 404 | /* For -Wmismatched-dealloc: Associate canonicalize_file_name with free or |
331 | rpl_free. */ | 405 | rpl_free. */ |
406 | # if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 | ||
332 | _GL_FUNCDECL_SYS (canonicalize_file_name, char *, | 407 | _GL_FUNCDECL_SYS (canonicalize_file_name, char *, |
333 | (const char *name) | 408 | (const char *name) |
409 | _GL_ATTRIBUTE_NOTHROW | ||
334 | _GL_ARG_NONNULL ((1)) | 410 | _GL_ARG_NONNULL ((1)) |
335 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | 411 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); |
412 | # else | ||
413 | _GL_FUNCDECL_SYS (canonicalize_file_name, char *, | ||
414 | (const char *name) | ||
415 | _GL_ARG_NONNULL ((1)) | ||
416 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | ||
417 | # endif | ||
336 | # endif | 418 | # endif |
337 | # if defined GNULIB_POSIXCHECK | 419 | # if defined GNULIB_POSIXCHECK |
338 | # undef canonicalize_file_name | 420 | # undef canonicalize_file_name |
@@ -416,12 +498,24 @@ _GL_CXXALIASWARN (gcvt); | |||
416 | The three numbers are the load average of the last 1 minute, the last 5 | 498 | The three numbers are the load average of the last 1 minute, the last 5 |
417 | minutes, and the last 15 minutes, respectively. | 499 | minutes, and the last 15 minutes, respectively. |
418 | LOADAVG is an array of NELEM numbers. */ | 500 | LOADAVG is an array of NELEM numbers. */ |
419 | # if !@HAVE_DECL_GETLOADAVG@ | 501 | # if @REPLACE_GETLOADAVG@ |
502 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
503 | # undef getloadavg | ||
504 | # define getloadavg rpl_getloadavg | ||
505 | # endif | ||
506 | _GL_FUNCDECL_RPL (getloadavg, int, (double loadavg[], int nelem) | ||
507 | _GL_ARG_NONNULL ((1))); | ||
508 | _GL_CXXALIAS_RPL (getloadavg, int, (double loadavg[], int nelem)); | ||
509 | # else | ||
510 | # if !@HAVE_DECL_GETLOADAVG@ | ||
420 | _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) | 511 | _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) |
421 | _GL_ARG_NONNULL ((1))); | 512 | _GL_ARG_NONNULL ((1))); |
422 | # endif | 513 | # endif |
423 | _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); | 514 | _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); |
515 | # endif | ||
516 | # if __GLIBC__ >= 2 | ||
424 | _GL_CXXALIASWARN (getloadavg); | 517 | _GL_CXXALIASWARN (getloadavg); |
518 | # endif | ||
425 | #elif defined GNULIB_POSIXCHECK | 519 | #elif defined GNULIB_POSIXCHECK |
426 | # undef getloadavg | 520 | # undef getloadavg |
427 | # if HAVE_RAW_DECL_GETLOADAVG | 521 | # if HAVE_RAW_DECL_GETLOADAVG |
@@ -430,6 +524,41 @@ _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " | |||
430 | # endif | 524 | # endif |
431 | #endif | 525 | #endif |
432 | 526 | ||
527 | #if @GNULIB_GETPROGNAME@ | ||
528 | /* Return the base name of the executing program. | ||
529 | On native Windows this will usually end in ".exe" or ".EXE". */ | ||
530 | # if @REPLACE_GETPROGNAME@ | ||
531 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
532 | # undef getprogname | ||
533 | # define getprogname rpl_getprogname | ||
534 | # endif | ||
535 | # if @HAVE_DECL_PROGRAM_INVOCATION_NAME@ | ||
536 | _GL_FUNCDECL_RPL (getprogname, const char *, (void) _GL_ATTRIBUTE_PURE); | ||
537 | # else | ||
538 | _GL_FUNCDECL_RPL (getprogname, const char *, (void)); | ||
539 | # endif | ||
540 | _GL_CXXALIAS_RPL (getprogname, const char *, (void)); | ||
541 | # else | ||
542 | # if !@HAVE_GETPROGNAME@ | ||
543 | # if @HAVE_DECL_PROGRAM_INVOCATION_NAME@ | ||
544 | _GL_FUNCDECL_SYS (getprogname, const char *, (void) _GL_ATTRIBUTE_PURE); | ||
545 | # else | ||
546 | _GL_FUNCDECL_SYS (getprogname, const char *, (void)); | ||
547 | # endif | ||
548 | # endif | ||
549 | _GL_CXXALIAS_SYS (getprogname, const char *, (void)); | ||
550 | # endif | ||
551 | # if __GLIBC__ >= 2 | ||
552 | _GL_CXXALIASWARN (getprogname); | ||
553 | # endif | ||
554 | #elif defined GNULIB_POSIXCHECK | ||
555 | # undef getprogname | ||
556 | # if HAVE_RAW_DECL_GETPROGNAME | ||
557 | _GL_WARN_ON_USE (getprogname, "getprogname is unportable - " | ||
558 | "use gnulib module getprogname for portability"); | ||
559 | # endif | ||
560 | #endif | ||
561 | |||
433 | #if @GNULIB_GETSUBOPT@ | 562 | #if @GNULIB_GETSUBOPT@ |
434 | /* Assuming *OPTIONP is a comma separated list of elements of the form | 563 | /* Assuming *OPTIONP is a comma separated list of elements of the form |
435 | "token" or "token=value", getsubopt parses the first of these elements. | 564 | "token" or "token=value", getsubopt parses the first of these elements. |
@@ -442,14 +571,28 @@ _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " | |||
442 | Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. | 571 | Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. |
443 | For more details see the POSIX specification. | 572 | For more details see the POSIX specification. |
444 | https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */ | 573 | https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */ |
445 | # if !@HAVE_GETSUBOPT@ | 574 | # if @REPLACE_GETSUBOPT@ |
575 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
576 | # undef getsubopt | ||
577 | # define getsubopt rpl_getsubopt | ||
578 | # endif | ||
579 | _GL_FUNCDECL_RPL (getsubopt, int, | ||
580 | (char **optionp, char *const *tokens, char **valuep) | ||
581 | _GL_ARG_NONNULL ((1, 2, 3))); | ||
582 | _GL_CXXALIAS_RPL (getsubopt, int, | ||
583 | (char **optionp, char *const *tokens, char **valuep)); | ||
584 | # else | ||
585 | # if !@HAVE_GETSUBOPT@ | ||
446 | _GL_FUNCDECL_SYS (getsubopt, int, | 586 | _GL_FUNCDECL_SYS (getsubopt, int, |
447 | (char **optionp, char *const *tokens, char **valuep) | 587 | (char **optionp, char *const *tokens, char **valuep) |
448 | _GL_ARG_NONNULL ((1, 2, 3))); | 588 | _GL_ARG_NONNULL ((1, 2, 3))); |
449 | # endif | 589 | # endif |
450 | _GL_CXXALIAS_SYS (getsubopt, int, | 590 | _GL_CXXALIAS_SYS (getsubopt, int, |
451 | (char **optionp, char *const *tokens, char **valuep)); | 591 | (char **optionp, char *const *tokens, char **valuep)); |
592 | # endif | ||
593 | # if __GLIBC__ >= 2 | ||
452 | _GL_CXXALIASWARN (getsubopt); | 594 | _GL_CXXALIASWARN (getsubopt); |
595 | # endif | ||
453 | #elif defined GNULIB_POSIXCHECK | 596 | #elif defined GNULIB_POSIXCHECK |
454 | # undef getsubopt | 597 | # undef getsubopt |
455 | # if HAVE_RAW_DECL_GETSUBOPT | 598 | # if HAVE_RAW_DECL_GETSUBOPT |
@@ -493,9 +636,16 @@ _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); | |||
493 | # else | 636 | # else |
494 | # if __GNUC__ >= 11 | 637 | # if __GNUC__ >= 11 |
495 | /* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ | 638 | /* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ |
639 | # if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 | ||
496 | _GL_FUNCDECL_SYS (malloc, void *, | 640 | _GL_FUNCDECL_SYS (malloc, void *, |
497 | (size_t size) | 641 | (size_t size) |
642 | _GL_ATTRIBUTE_NOTHROW | ||
498 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | 643 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); |
644 | # else | ||
645 | _GL_FUNCDECL_SYS (malloc, void *, | ||
646 | (size_t size) | ||
647 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | ||
648 | # endif | ||
499 | # endif | 649 | # endif |
500 | _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); | 650 | _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); |
501 | # endif | 651 | # endif |
@@ -505,9 +655,16 @@ _GL_CXXALIASWARN (malloc); | |||
505 | #else | 655 | #else |
506 | # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined malloc | 656 | # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined malloc |
507 | /* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ | 657 | /* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ |
658 | # if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 | ||
659 | _GL_FUNCDECL_SYS (malloc, void *, | ||
660 | (size_t size) | ||
661 | _GL_ATTRIBUTE_NOTHROW | ||
662 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | ||
663 | # else | ||
508 | _GL_FUNCDECL_SYS (malloc, void *, | 664 | _GL_FUNCDECL_SYS (malloc, void *, |
509 | (size_t size) | 665 | (size_t size) |
510 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); | 666 | _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); |
667 | # endif | ||
511 | # endif | 668 | # endif |
512 | # if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC | 669 | # if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC |
513 | # undef malloc | 670 | # undef malloc |
@@ -517,6 +674,51 @@ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " | |||
517 | # endif | 674 | # endif |
518 | #endif | 675 | #endif |
519 | 676 | ||
677 | /* Return maximum number of bytes of a multibyte character. */ | ||
678 | #if @REPLACE_MB_CUR_MAX@ | ||
679 | # if !GNULIB_defined_MB_CUR_MAX | ||
680 | static inline | ||
681 | int gl_MB_CUR_MAX (void) | ||
682 | { | ||
683 | /* Turn the value 3 to the value 4, as needed for the UTF-8 encoding. */ | ||
684 | return MB_CUR_MAX + (MB_CUR_MAX == 3); | ||
685 | } | ||
686 | # undef MB_CUR_MAX | ||
687 | # define MB_CUR_MAX gl_MB_CUR_MAX () | ||
688 | # define GNULIB_defined_MB_CUR_MAX 1 | ||
689 | # endif | ||
690 | #endif | ||
691 | |||
692 | /* Convert a string to a wide string. */ | ||
693 | #if @GNULIB_MBSTOWCS@ | ||
694 | # if @REPLACE_MBSTOWCS@ | ||
695 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
696 | # undef mbstowcs | ||
697 | # define mbstowcs rpl_mbstowcs | ||
698 | # endif | ||
699 | _GL_FUNCDECL_RPL (mbstowcs, size_t, | ||
700 | (wchar_t *restrict dest, const char *restrict src, | ||
701 | size_t len) | ||
702 | _GL_ARG_NONNULL ((2))); | ||
703 | _GL_CXXALIAS_RPL (mbstowcs, size_t, | ||
704 | (wchar_t *restrict dest, const char *restrict src, | ||
705 | size_t len)); | ||
706 | # else | ||
707 | _GL_CXXALIAS_SYS (mbstowcs, size_t, | ||
708 | (wchar_t *restrict dest, const char *restrict src, | ||
709 | size_t len)); | ||
710 | # endif | ||
711 | # if __GLIBC__ >= 2 | ||
712 | _GL_CXXALIASWARN (mbstowcs); | ||
713 | # endif | ||
714 | #elif defined GNULIB_POSIXCHECK | ||
715 | # undef mbstowcs | ||
716 | # if HAVE_RAW_DECL_MBSTOWCS | ||
717 | _GL_WARN_ON_USE (mbstowcs, "mbstowcs is unportable - " | ||
718 | "use gnulib module mbstowcs for portability"); | ||
719 | # endif | ||
720 | #endif | ||
721 | |||
520 | /* Convert a multibyte character to a wide character. */ | 722 | /* Convert a multibyte character to a wide character. */ |
521 | #if @GNULIB_MBTOWC@ | 723 | #if @GNULIB_MBTOWC@ |
522 | # if @REPLACE_MBTOWC@ | 724 | # if @REPLACE_MBTOWC@ |
@@ -579,12 +781,24 @@ _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " | |||
579 | implementation. | 781 | implementation. |
580 | Returns the open file descriptor if successful, otherwise -1 and errno | 782 | Returns the open file descriptor if successful, otherwise -1 and errno |
581 | set. */ | 783 | set. */ |
582 | # if !@HAVE_MKOSTEMP@ | 784 | # if @REPLACE_MKOSTEMP@ |
785 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
786 | # undef mkostemp | ||
787 | # define mkostemp rpl_mkostemp | ||
788 | # endif | ||
789 | _GL_FUNCDECL_RPL (mkostemp, int, (char * /*template*/, int /*flags*/) | ||
790 | _GL_ARG_NONNULL ((1))); | ||
791 | _GL_CXXALIAS_RPL (mkostemp, int, (char * /*template*/, int /*flags*/)); | ||
792 | # else | ||
793 | # if !@HAVE_MKOSTEMP@ | ||
583 | _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) | 794 | _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) |
584 | _GL_ARG_NONNULL ((1))); | 795 | _GL_ARG_NONNULL ((1))); |
585 | # endif | 796 | # endif |
586 | _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); | 797 | _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); |
798 | # endif | ||
799 | # if __GLIBC__ >= 2 | ||
587 | _GL_CXXALIASWARN (mkostemp); | 800 | _GL_CXXALIASWARN (mkostemp); |
801 | # endif | ||
588 | #elif defined GNULIB_POSIXCHECK | 802 | #elif defined GNULIB_POSIXCHECK |
589 | # undef mkostemp | 803 | # undef mkostemp |
590 | # if HAVE_RAW_DECL_MKOSTEMP | 804 | # if HAVE_RAW_DECL_MKOSTEMP |
@@ -607,14 +821,28 @@ _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " | |||
607 | implementation. | 821 | implementation. |
608 | Returns the open file descriptor if successful, otherwise -1 and errno | 822 | Returns the open file descriptor if successful, otherwise -1 and errno |
609 | set. */ | 823 | set. */ |
610 | # if !@HAVE_MKOSTEMPS@ | 824 | # if @REPLACE_MKOSTEMPS@ |
825 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
826 | # undef mkostemps | ||
827 | # define mkostemps rpl_mkostemps | ||
828 | # endif | ||
829 | _GL_FUNCDECL_RPL (mkostemps, int, | ||
830 | (char * /*template*/, int /*suffixlen*/, int /*flags*/) | ||
831 | _GL_ARG_NONNULL ((1))); | ||
832 | _GL_CXXALIAS_RPL (mkostemps, int, | ||
833 | (char * /*template*/, int /*suffixlen*/, int /*flags*/)); | ||
834 | # else | ||
835 | # if !@HAVE_MKOSTEMPS@ | ||
611 | _GL_FUNCDECL_SYS (mkostemps, int, | 836 | _GL_FUNCDECL_SYS (mkostemps, int, |
612 | (char * /*template*/, int /*suffixlen*/, int /*flags*/) | 837 | (char * /*template*/, int /*suffixlen*/, int /*flags*/) |
613 | _GL_ARG_NONNULL ((1))); | 838 | _GL_ARG_NONNULL ((1))); |
614 | # endif | 839 | # endif |
615 | _GL_CXXALIAS_SYS (mkostemps, int, | 840 | _GL_CXXALIAS_SYS (mkostemps, int, |
616 | (char * /*template*/, int /*suffixlen*/, int /*flags*/)); | 841 | (char * /*template*/, int /*suffixlen*/, int /*flags*/)); |
842 | # endif | ||
843 | # if __GLIBC__ >= 2 | ||
617 | _GL_CXXALIASWARN (mkostemps); | 844 | _GL_CXXALIASWARN (mkostemps); |
845 | # endif | ||
618 | #elif defined GNULIB_POSIXCHECK | 846 | #elif defined GNULIB_POSIXCHECK |
619 | # undef mkostemps | 847 | # undef mkostemps |
620 | # if HAVE_RAW_DECL_MKOSTEMPS | 848 | # if HAVE_RAW_DECL_MKOSTEMPS |
@@ -713,7 +941,7 @@ _GL_CXXALIAS_SYS (posix_memalign, int, | |||
713 | (void **memptr, size_t alignment, size_t size)); | 941 | (void **memptr, size_t alignment, size_t size)); |
714 | # endif | 942 | # endif |
715 | # endif | 943 | # endif |
716 | # if @HAVE_POSIX_MEMALIGN@ | 944 | # if __GLIBC__ >= 2 && @HAVE_POSIX_MEMALIGN@ |
717 | _GL_CXXALIASWARN (posix_memalign); | 945 | _GL_CXXALIASWARN (posix_memalign); |
718 | # endif | 946 | # endif |
719 | #elif defined GNULIB_POSIXCHECK | 947 | #elif defined GNULIB_POSIXCHECK |
@@ -727,11 +955,22 @@ _GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - " | |||
727 | #if @GNULIB_POSIX_OPENPT@ | 955 | #if @GNULIB_POSIX_OPENPT@ |
728 | /* Return an FD open to the master side of a pseudo-terminal. Flags should | 956 | /* Return an FD open to the master side of a pseudo-terminal. Flags should |
729 | include O_RDWR, and may also include O_NOCTTY. */ | 957 | include O_RDWR, and may also include O_NOCTTY. */ |
730 | # if !@HAVE_POSIX_OPENPT@ | 958 | # if @REPLACE_POSIX_OPENPT@ |
959 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
960 | # undef posix_openpt | ||
961 | # define posix_openpt rpl_posix_openpt | ||
962 | # endif | ||
963 | _GL_FUNCDECL_RPL (posix_openpt, int, (int flags)); | ||
964 | _GL_CXXALIAS_RPL (posix_openpt, int, (int flags)); | ||
965 | # else | ||
966 | # if !@HAVE_POSIX_OPENPT@ | ||
731 | _GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); | 967 | _GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); |
732 | # endif | 968 | # endif |
733 | _GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); | 969 | _GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); |
970 | # endif | ||
971 | # if __GLIBC__ >= 2 | ||
734 | _GL_CXXALIASWARN (posix_openpt); | 972 | _GL_CXXALIASWARN (posix_openpt); |
973 | # endif | ||
735 | #elif defined GNULIB_POSIXCHECK | 974 | #elif defined GNULIB_POSIXCHECK |
736 | # undef posix_openpt | 975 | # undef posix_openpt |
737 | # if HAVE_RAW_DECL_POSIX_OPENPT | 976 | # if HAVE_RAW_DECL_POSIX_OPENPT |
@@ -808,6 +1047,10 @@ _GL_CXXALIAS_RPL (putenv, int, (char *string)); | |||
808 | # define putenv _putenv | 1047 | # define putenv _putenv |
809 | # endif | 1048 | # endif |
810 | _GL_CXXALIAS_MDA (putenv, int, (char *string)); | 1049 | _GL_CXXALIAS_MDA (putenv, int, (char *string)); |
1050 | # elif defined __KLIBC__ | ||
1051 | /* Need to cast, because on OS/2 kLIBC, the first parameter is | ||
1052 | const char *string. */ | ||
1053 | _GL_CXXALIAS_SYS_CAST (putenv, int, (char *string)); | ||
811 | # else | 1054 | # else |
812 | _GL_CXXALIAS_SYS (putenv, int, (char *string)); | 1055 | _GL_CXXALIAS_SYS (putenv, int, (char *string)); |
813 | # endif | 1056 | # endif |
@@ -824,6 +1067,10 @@ _GL_CXXALIASWARN (putenv); | |||
824 | /* Need to cast, because on mingw, the parameter is either | 1067 | /* Need to cast, because on mingw, the parameter is either |
825 | 'const char *string' or 'char *string'. */ | 1068 | 'const char *string' or 'char *string'. */ |
826 | _GL_CXXALIAS_MDA_CAST (putenv, int, (char *string)); | 1069 | _GL_CXXALIAS_MDA_CAST (putenv, int, (char *string)); |
1070 | # elif defined __KLIBC__ | ||
1071 | /* Need to cast, because on OS/2 kLIBC, the first parameter is | ||
1072 | const char *string. */ | ||
1073 | _GL_CXXALIAS_SYS_CAST (putenv, int, (char *string)); | ||
827 | # else | 1074 | # else |
828 | _GL_CXXALIAS_SYS (putenv, int, (char *string)); | 1075 | _GL_CXXALIAS_SYS (putenv, int, (char *string)); |
829 | # endif | 1076 | # endif |
@@ -865,7 +1112,9 @@ _GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, | |||
865 | _gl_qsort_r_compar_fn compare, | 1112 | _gl_qsort_r_compar_fn compare, |
866 | void *arg)); | 1113 | void *arg)); |
867 | # endif | 1114 | # endif |
1115 | # if __GLIBC__ >= 2 | ||
868 | _GL_CXXALIASWARN (qsort_r); | 1116 | _GL_CXXALIASWARN (qsort_r); |
1117 | # endif | ||
869 | #elif defined GNULIB_POSIXCHECK | 1118 | #elif defined GNULIB_POSIXCHECK |
870 | # undef qsort_r | 1119 | # undef qsort_r |
871 | # if HAVE_RAW_DECL_QSORT_R | 1120 | # if HAVE_RAW_DECL_QSORT_R |
@@ -875,11 +1124,26 @@ _GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - " | |||
875 | #endif | 1124 | #endif |
876 | 1125 | ||
877 | 1126 | ||
878 | #if @GNULIB_RANDOM_R@ | 1127 | #if @GNULIB_RAND@ || (@GNULIB_RANDOM_R@ && !@HAVE_RANDOM_R@) |
879 | # if !@HAVE_RANDOM_R@ | 1128 | # ifndef RAND_MAX |
880 | # ifndef RAND_MAX | 1129 | # define RAND_MAX 2147483647 |
881 | # define RAND_MAX 2147483647 | 1130 | # endif |
1131 | #endif | ||
1132 | |||
1133 | |||
1134 | #if @GNULIB_RAND@ | ||
1135 | # if @REPLACE_RAND@ | ||
1136 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
1137 | # undef rand | ||
1138 | # define rand rpl_rand | ||
882 | # endif | 1139 | # endif |
1140 | _GL_FUNCDECL_RPL (rand, int, (void)); | ||
1141 | _GL_CXXALIAS_RPL (rand, int, (void)); | ||
1142 | # else | ||
1143 | _GL_CXXALIAS_SYS (rand, int, (void)); | ||
1144 | # endif | ||
1145 | # if __GLIBC__ >= 2 | ||
1146 | _GL_CXXALIASWARN (rand); | ||
883 | # endif | 1147 | # endif |
884 | #endif | 1148 | #endif |
885 | 1149 | ||
@@ -900,7 +1164,9 @@ _GL_FUNCDECL_SYS (random, long, (void)); | |||
900 | int. */ | 1164 | int. */ |
901 | _GL_CXXALIAS_SYS_CAST (random, long, (void)); | 1165 | _GL_CXXALIAS_SYS_CAST (random, long, (void)); |
902 | # endif | 1166 | # endif |
1167 | # if __GLIBC__ >= 2 | ||
903 | _GL_CXXALIASWARN (random); | 1168 | _GL_CXXALIASWARN (random); |
1169 | # endif | ||
904 | #elif defined GNULIB_POSIXCHECK | 1170 | #elif defined GNULIB_POSIXCHECK |
905 | # undef random | 1171 | # undef random |
906 | # if HAVE_RAW_DECL_RANDOM | 1172 | # if HAVE_RAW_DECL_RANDOM |
@@ -925,7 +1191,9 @@ _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); | |||
925 | unsigned long seed. */ | 1191 | unsigned long seed. */ |
926 | _GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed)); | 1192 | _GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed)); |
927 | # endif | 1193 | # endif |
1194 | # if __GLIBC__ >= 2 | ||
928 | _GL_CXXALIASWARN (srandom); | 1195 | _GL_CXXALIASWARN (srandom); |
1196 | # endif | ||
929 | #elif defined GNULIB_POSIXCHECK | 1197 | #elif defined GNULIB_POSIXCHECK |
930 | # undef srandom | 1198 | # undef srandom |
931 | # if HAVE_RAW_DECL_SRANDOM | 1199 | # if HAVE_RAW_DECL_SRANDOM |
@@ -956,7 +1224,9 @@ _GL_FUNCDECL_SYS (initstate, char *, | |||
956 | _GL_CXXALIAS_SYS_CAST (initstate, char *, | 1224 | _GL_CXXALIAS_SYS_CAST (initstate, char *, |
957 | (unsigned int seed, char *buf, size_t buf_size)); | 1225 | (unsigned int seed, char *buf, size_t buf_size)); |
958 | # endif | 1226 | # endif |
1227 | # if __GLIBC__ >= 2 | ||
959 | _GL_CXXALIASWARN (initstate); | 1228 | _GL_CXXALIASWARN (initstate); |
1229 | # endif | ||
960 | #elif defined GNULIB_POSIXCHECK | 1230 | #elif defined GNULIB_POSIXCHECK |
961 | # undef initstate | 1231 | # undef initstate |
962 | # if HAVE_RAW_DECL_INITSTATE | 1232 | # if HAVE_RAW_DECL_INITSTATE |
@@ -981,7 +1251,9 @@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); | |||
981 | is const char *arg_state. */ | 1251 | is const char *arg_state. */ |
982 | _GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state)); | 1252 | _GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state)); |
983 | # endif | 1253 | # endif |
1254 | # if __GLIBC__ >= 2 | ||
984 | _GL_CXXALIASWARN (setstate); | 1255 | _GL_CXXALIASWARN (setstate); |
1256 | # endif | ||
985 | #elif defined GNULIB_POSIXCHECK | 1257 | #elif defined GNULIB_POSIXCHECK |
986 | # undef setstate | 1258 | # undef setstate |
987 | # if HAVE_RAW_DECL_SETSTATE | 1259 | # if HAVE_RAW_DECL_SETSTATE |
@@ -1126,8 +1398,16 @@ _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); | |||
1126 | # else | 1398 | # else |
1127 | # if __GNUC__ >= 11 | 1399 | # if __GNUC__ >= 11 |
1128 | /* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ | 1400 | /* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ |
1129 | _GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) | 1401 | # if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 |
1130 | _GL_ATTRIBUTE_DEALLOC_FREE); | 1402 | _GL_FUNCDECL_SYS (realloc, void *, |
1403 | (void *ptr, size_t size) | ||
1404 | _GL_ATTRIBUTE_NOTHROW | ||
1405 | _GL_ATTRIBUTE_DEALLOC_FREE); | ||
1406 | # else | ||
1407 | _GL_FUNCDECL_SYS (realloc, void *, | ||
1408 | (void *ptr, size_t size) | ||
1409 | _GL_ATTRIBUTE_DEALLOC_FREE); | ||
1410 | # endif | ||
1131 | # endif | 1411 | # endif |
1132 | _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); | 1412 | _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); |
1133 | # endif | 1413 | # endif |
@@ -1137,8 +1417,16 @@ _GL_CXXALIASWARN (realloc); | |||
1137 | #else | 1417 | #else |
1138 | # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined realloc | 1418 | # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined realloc |
1139 | /* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ | 1419 | /* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ |
1140 | _GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) | 1420 | # if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 |
1141 | _GL_ATTRIBUTE_DEALLOC_FREE); | 1421 | _GL_FUNCDECL_SYS (realloc, void *, |
1422 | (void *ptr, size_t size) | ||
1423 | _GL_ATTRIBUTE_NOTHROW | ||
1424 | _GL_ATTRIBUTE_DEALLOC_FREE); | ||
1425 | # else | ||
1426 | _GL_FUNCDECL_SYS (realloc, void *, | ||
1427 | (void *ptr, size_t size) | ||
1428 | _GL_ATTRIBUTE_DEALLOC_FREE); | ||
1429 | # endif | ||
1142 | # endif | 1430 | # endif |
1143 | # if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC | 1431 | # if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC |
1144 | # undef realloc | 1432 | # undef realloc |
@@ -1167,7 +1455,9 @@ _GL_FUNCDECL_SYS (reallocarray, void *, | |||
1167 | _GL_CXXALIAS_SYS (reallocarray, void *, | 1455 | _GL_CXXALIAS_SYS (reallocarray, void *, |
1168 | (void *ptr, size_t nmemb, size_t size)); | 1456 | (void *ptr, size_t nmemb, size_t size)); |
1169 | # endif | 1457 | # endif |
1458 | # if __GLIBC__ >= 2 | ||
1170 | _GL_CXXALIASWARN (reallocarray); | 1459 | _GL_CXXALIASWARN (reallocarray); |
1460 | # endif | ||
1171 | #elif defined GNULIB_POSIXCHECK | 1461 | #elif defined GNULIB_POSIXCHECK |
1172 | # undef reallocarray | 1462 | # undef reallocarray |
1173 | # if HAVE_RAW_DECL_REALLOCARRAY | 1463 | # if HAVE_RAW_DECL_REALLOCARRAY |
@@ -1301,6 +1591,38 @@ _GL_WARN_ON_USE (strtod, "strtod is unportable - " | |||
1301 | # endif | 1591 | # endif |
1302 | #endif | 1592 | #endif |
1303 | 1593 | ||
1594 | #if @GNULIB_STRTOF@ | ||
1595 | /* Parse a float from STRING, updating ENDP if appropriate. */ | ||
1596 | # if @REPLACE_STRTOF@ | ||
1597 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
1598 | # define strtof rpl_strtof | ||
1599 | # endif | ||
1600 | # define GNULIB_defined_strtof_function 1 | ||
1601 | _GL_FUNCDECL_RPL (strtof, float, | ||
1602 | (const char *restrict str, char **restrict endp) | ||
1603 | _GL_ARG_NONNULL ((1))); | ||
1604 | _GL_CXXALIAS_RPL (strtof, float, | ||
1605 | (const char *restrict str, char **restrict endp)); | ||
1606 | # else | ||
1607 | # if !@HAVE_STRTOF@ | ||
1608 | _GL_FUNCDECL_SYS (strtof, float, | ||
1609 | (const char *restrict str, char **restrict endp) | ||
1610 | _GL_ARG_NONNULL ((1))); | ||
1611 | # endif | ||
1612 | _GL_CXXALIAS_SYS (strtof, float, | ||
1613 | (const char *restrict str, char **restrict endp)); | ||
1614 | # endif | ||
1615 | # if __GLIBC__ >= 2 | ||
1616 | _GL_CXXALIASWARN (strtof); | ||
1617 | # endif | ||
1618 | #elif defined GNULIB_POSIXCHECK | ||
1619 | # undef strtof | ||
1620 | # if HAVE_RAW_DECL_STRTOF | ||
1621 | _GL_WARN_ON_USE (strtof, "strtof is unportable - " | ||
1622 | "use gnulib module strtof for portability"); | ||
1623 | # endif | ||
1624 | #endif | ||
1625 | |||
1304 | #if @GNULIB_STRTOLD@ | 1626 | #if @GNULIB_STRTOLD@ |
1305 | /* Parse a 'long double' from STRING, updating ENDP if appropriate. */ | 1627 | /* Parse a 'long double' from STRING, updating ENDP if appropriate. */ |
1306 | # if @REPLACE_STRTOLD@ | 1628 | # if @REPLACE_STRTOLD@ |