%language=C++ %define class-name libc_name %struct-type %{ /* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ %} struct libc_name_struct { const char *name; int c_ver; }; %% # The standard C library functions, for feeding to gperf; the result is used # by nothrow_libfn_p. # # [lib.res.on.exception.handling]: None of the functions from the # Standard C library shall report an error by throwing an # exception, unless it calls a program-supplied function that # throws an exception. # # Specific functions are commented out for the reason noted in each case. # #abort, 89 -- synchronous exception from SIGABRT handler abs, 89 acos, 89 asctime, 89 asin, 89 atan, 89 atan2, 89 atexit, 89 atof, 89 atoi, 89 atol, 89 #bsearch, 89 -- calls user function which may throw exception btowc, 89 calloc, 89 ceil, 89 clearerr, 89 clock, 89 cos, 89 cosh, 89 ctime, 89 difftime, 89 div, 89 exit, 89 exp, 89 fabs, 89 #fclose, 89 -- POSIX thread cancellation point feof, 89 ferror, 89 #fflush, 89 -- POSIX thread cancellation point #fgetc, 89 -- POSIX thread cancellation point #fgetpos, 89 -- POSIX thread cancellation point #fgets, 89 -- POSIX thread cancellation point #fgetwc, 89 -- POSIX thread cancellation point #fgetws, 89 -- POSIX thread cancellation point floor, 89 fmod, 89 #fopen, 89 -- POSIX thread cancellation point #fprintf, 89 -- POSIX thread cancellation point #fputc, 89 -- POSIX thread cancellation point #fputs, 89 -- POSIX thread cancellation point #fputwc, 89 -- POSIX thread cancellation point #fputws, 89 -- POSIX thread cancellation point #fread, 89 -- POSIX thread cancellation point free, 89 #freopen, 89 -- POSIX thread cancellation point frexp, 89 #fscanf, 89 -- POSIX thread cancellation point fseek, 89 #fsetpos, 89 -- POSIX thread cancellation point #ftell, 89 -- POSIX thread cancellation point fwide, 89 #fwprintf, 89 -- POSIX thread cancellation point #fwrite, 89 -- POSIX thread cancellation point #fwscanf, 89 -- POSIX thread cancellation point #getc, 89 -- POSIX thread cancellation point #getchar, 89 -- POSIX thread cancellation point getenv, 89 #gets, 89 -- POSIX thread cancellation point #getwc, 89 -- POSIX thread cancellation point #getwchar, 89 -- POSIX thread cancellation point gmtime, 89 isalnum, 89 isalpha, 89 iscntrl, 89 isdigit, 89 isgraph, 89 islower, 89 isprint, 89 ispunct, 89 isspace, 89 isupper, 89 iswalnum, 89 iswalpha, 89 iswcntrl, 89 iswctype, 89 iswdigit, 89 iswgraph, 89 iswlower, 89 iswprint, 89 iswpunct, 89 iswspace, 89 iswupper, 89 iswxdigit, 89 isxdigit, 89 labs, 89 ldexp, 89 ldiv, 89 localeconv, 89 localtime, 89 log, 89 log10, 89 longjmp, 89 malloc, 89 mblen, 89 mbrlen, 89 mbrtowc, 89 mbsinit, 89 mbsrtowcs, 89 mbstowcs, 89 mbtowc, 89 memchr, 89 memcmp, 89 memcpy, 89 memmove, 89 memset, 89 mktime, 89 modf, 89 #perror, 89 -- POSIX thread cancellation point pow, 89 #printf, 89 -- POSIX thread cancellation point #putc, 89 -- POSIX thread cancellation point #putchar, 89 -- POSIX thread cancellation point #puts, 89 -- POSIX thread cancellation point #putwc, 89 -- POSIX thread cancellation point #putwchar, 89 -- POSIX thread cancellation point #qsort, 89 -- calls user function which may throw exception #raise, 89 -- synchronous exception from signal handler rand, 89 realloc, 89 #remove, 89 -- POSIX thread cancellation point #rename, 89 -- POSIX thread cancellation point #rewind, 89 -- POSIX thread cancellation point #scanf, 89 -- POSIX thread cancellation point setbuf, 89 setlocale, 89 setvbuf, 89 signal, 89 sin, 89 sinh, 89 sprintf, 89 sqrt, 89 srand, 89 sscanf, 89 strcat, 89 strchr, 89 strcmp, 89 strcoll, 89 strcpy, 89 strcspn, 89 #strerror, 89 -- POSIX thread cancellation point strftime, 89 strlen, 89 strncat, 89 strncmp, 89 strncpy, 89 strpbrk, 89 strrchr, 89 strspn, 89 strstr, 89 strtod, 89 strtok, 89 strtol, 89 strtoul, 89 strxfrm, 89 swprintf, 89 swscanf, 89 #system, 89 -- POSIX thread cancellation point tan, 89 tanh, 89 time, 89 #tmpfile, 89 -- POSIX thread cancellation point #tmpnam, 89 -- POSIX thread cancellation point tolower, 89 toupper, 89 towctrans, 89 towlower, 89 towupper, 89 #ungetc, 89 -- POSIX thread cancellation point #ungetwc, 89 -- POSIX thread cancellation point #vfprintf, 89 -- POSIX thread cancellation point #vfwprintf, 89 -- POSIX thread cancellation point #vprintf, 89 -- POSIX thread cancellation point vsprintf, 89 vswprintf, 89 #vwprintf, 89 -- POSIX thread cancellation point wcrtomb, 89 wcscat, 89 wcschr, 89 wcscmp, 89 wcscoll, 89 wcscpy, 89 wcscspn, 89 wcsftime, 89 wcslen, 89 wcsncat, 89 wcsncmp, 89 wcsncpy, 89 wcspbrk, 89 wcsrchr, 89 wcsrtombs, 89 wcsspn, 89 wcsstr, 89 wcstod, 89 wcstok, 89 wcstol, 89 wcstombs, 89 wcstoul, 89 wcsxfrm, 89 wctob, 89 wctomb, 89 wctrans, 89 wctype, 89 wmemchr, 89 wmemcmp, 89 wmemcpy, 89 wmemmove, 89 wmemset, 89 #wprintf, 89 -- POSIX thread cancellation point #wscanf, 89 -- POSIX thread cancellation point cacos, 99 cacosf, 99 cacosl, 99 casin, 99 casinf, 99 casinl, 99 catan, 99 catanf, 99 catanl, 99 ccos, 99 ccosf, 99 ccosl, 99 csin, 99 csinf, 99 csinl, 99 ctan, 99 ctanf, 99 ctanl, 99 cacosh, 99 cacoshf, 99 cacoshl, 99 casinh, 99 casinhf, 99 casinhl, 99 catanh, 99 catanhf, 99 catanhl, 99 ccosh, 99 ccoshf, 99 ccoshl, 99 csinh, 99 csinhf, 99 csinhl, 99 ctanh, 99 ctanhf, 99 ctanhl, 99 cexp, 99 cexpf, 99 cexpl, 99 clog, 99 clogf, 99 clogl, 99 cabs, 99 cabsf, 99 cabsl, 99 cpow, 99 cpowf, 99 cpowl, 99 csqrt, 99 csqrtf, 99 csqrtl, 99 carg, 99 cargf, 99 cargl, 99 cimag, 99 cimagf, 99 cimagl, 99 conj, 99 conjf, 99 conjl, 99 cproj, 99 cprojf, 99 cprojl, 99 creal, 99 crealf, 99 creall, 99 isblank, 99 feclearexcept, 99 fegetexceptflag, 99 feraiseexcept, 99 fesetexceptflag, 99 fetestexcept, 99 fegetround, 99 fesetround, 99 fegetenv, 99 feholdexcept, 99 fesetenv, 99 feupdateenv, 99 imaxabs, 99 imaxdiv, 99 strtoimax, 99 strtoumax, 99 wcstoimax, 99 wcstoumax, 99 acosf, 99 acosl, 99 asinf, 99 asinl, 99 atanf, 99 atanl, 99 atan2f, 99 atan2l, 99 cosf, 99 cosl, 99 sinf, 99 sinl, 99 tanf, 99 tanl, 99 acosh, 99 acoshf, 99 acoshl, 99 asinh, 99 asinhf, 99 asinhl, 99 atanh, 99 atanhf, 99 atanhl, 99 coshf, 99 coshl, 99 sinhf, 99 sinhl, 99 tanhf, 99 tanhl, 99 expf, 99 expl, 99 exp2, 99 exp2f, 99 exp2l, 99 expm1, 99 expm1f, 99 expm1l, 99 frexpf, 99 frexpl, 99 ilogb, 99 ilogbf, 99 ilogbl, 99 ldexpf, 99 ldexpl, 99 logf, 99 logl, 99 log10f, 99 log10l, 99 log1p, 99 log1pf, 99 log1pl, 99 log2, 99 log2f, 99 log2l, 99 logb, 99 logbf, 99 logbl, 99 modff, 99 modfl, 99 scalbn, 99 scalbnf, 99 scalbnl, 99 scalbln, 99 scalblnf, 99 scalblnl, 99 cbrt, 99 cbrtf, 99 cbrtl, 99 fabsf, 99 fabsl, 99 hypot, 99 hypotf, 99 hypotl, 99 powf, 99 powl, 99 sqrtf, 99 sqrtl, 99 erf, 99 erff, 99 erfl, 99 erfc, 99 erfcf, 99 erfcl, 99 lgamma, 99 lgammaf, 99 lgammal, 99 tgamma, 99 tgammaf, 99 tgammal, 99 ceilf, 99 ceill, 99 floorf, 99 floorl, 99 nearbyint, 99 nearbyintf, 99 nearbyintl, 99 rint, 99 rintf, 99 rintl, 99 lrint, 99 lrintf, 99 lrintl, 99 llrint, 99 llrintf, 99 llrintl, 99 round, 99 roundf, 99 roundl, 99 lround, 99 lroundf, 99 lroundl, 99 llround, 99 llroundf, 99 llroundl, 99 trunc, 99 truncf, 99 truncl, 99 fmodf, 99 fmodl, 99 remainder, 99 remainderf, 99 remainderl, 99 remquo, 99 remquof, 99 remquol, 99 copysign, 99 copysignf, 99 copysignl, 99 nan, 99 nanf, 99 nanl, 99 nextafter, 99 nextafterf, 99 nextafterl, 99 nexttoward, 99 nexttowardf, 99 nexttowardl, 99 fdim, 99 fdimf, 99 fdiml, 99 fmax, 99 fmaxf, 99 fmaxl, 99 fmin, 99 fminf, 99 fminl, 99 fma, 99 fmaf, 99 fmal, 99 snprintf, 99 #vfscanf, 99 -- POSIX thread cancellation point #vscanf, 99 -- POSIX thread cancellation point vsnprintf, 99 vsscanf, 99 atoll, 99 strtof, 99 strtold, 99 strtoll, 99 strtoull, 99 _Exit, 99 llabs, 99 lldiv, 99 #vfwscanf, 99 -- POSIX thread cancellation point vswscanf, 99 #vwscanf, 99 -- POSIX thread cancellation point wcstof, 99 wcstold, 99 wcstoll, 99 wcstoull, 99 iswblank, 99 #atomic_thread_fence, 11 -- usually implemented as a macro #atomic_signal_fence, 11 -- usually implemented as a macro #atomic_flag_test_and_set, 11 -- usually implemented as a macro #atomic_flag_test_and_set_explicit, 11 -- usually implemented as a macro #atomic_flag_clear, 11 -- usually implemented as a macro #atomic_flag_clear_explicit, 11 -- usually implemented as a macro aligned_alloc, 11 at_quick_exit, 11 quick_exit, 11 #call_once, 11 -- C11 threads #cnd_broadcast, 11 -- C11 threads #cnd_destroy, 11 -- C11 threads #cnd_init, 11 -- C11 threads #cnd_signal, 11 -- C11 threads #cnd_timedwait, 11 -- C11 threads #cnd_wait, 11 -- C11 threads #mtx_destroy, 11 -- C11 threads #mtx_init, 11 -- C11 threads #mtx_lock, 11 -- C11 threads #mtx_timedlock, 11 -- C11 threads #mtx_trylock, 11 -- C11 threads #mtx_unlock, 11 -- C11 threads #thrd_create, 11 -- C11 threads #thrd_current, 11 -- C11 threads #thrd_detach, 11 -- C11 threads #thrd_equal, 11 -- C11 threads #thrd_exit, 11 -- C11 threads #thrd_join, 11 -- C11 threads #thrd_sleep, 11 -- C11 threads #thrd_yield, 11 -- C11 threads #tss_create, 11 -- C11 threads #tss_delete, 11 -- C11 threads #tss_get, 11 -- C11 threads #tss_set, 11 -- C11 threads timespec_get, 11 mbrtoc16, 11 c16rtomb, 11 mbrtoc32, 11 c32rtomb, 11