%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
<http://www.gnu.org/licenses/>. */
%}
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