1%language=C++ 2%define class-name libc_name 3%struct-type 4%{ 5/* Copyright (C) 2000-2020 Free Software Foundation, Inc. 6 7This file is part of GCC. 8 9GCC is free software; you can redistribute it and/or modify it under 10the terms of the GNU General Public License as published by the Free 11Software Foundation; either version 3, or (at your option) any later 12version. 13 14GCC is distributed in the hope that it will be useful, but WITHOUT ANY 15WARRANTY; without even the implied warranty of MERCHANTABILITY or 16FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 17for more details. 18 19You should have received a copy of the GNU General Public License 20along with GCC; see the file COPYING3. If not see 21<http://www.gnu.org/licenses/>. */ 22%} 23struct libc_name_struct { const char *name; int c_ver; }; 24%% 25# The standard C library functions, for feeding to gperf; the result is used 26# by nothrow_libfn_p. 27# 28# [lib.res.on.exception.handling]: None of the functions from the 29# Standard C library shall report an error by throwing an 30# exception, unless it calls a program-supplied function that 31# throws an exception. 32# 33# Specific functions are commented out for the reason noted in each case. 34# 35#abort, 89 -- synchronous exception from SIGABRT handler 36abs, 89 37acos, 89 38asctime, 89 39asin, 89 40atan, 89 41atan2, 89 42atexit, 89 43atof, 89 44atoi, 89 45atol, 89 46#bsearch, 89 -- calls user function which may throw exception 47btowc, 89 48calloc, 89 49ceil, 89 50clearerr, 89 51clock, 89 52cos, 89 53cosh, 89 54ctime, 89 55difftime, 89 56div, 89 57exit, 89 58exp, 89 59fabs, 89 60#fclose, 89 -- POSIX thread cancellation point 61feof, 89 62ferror, 89 63#fflush, 89 -- POSIX thread cancellation point 64#fgetc, 89 -- POSIX thread cancellation point 65#fgetpos, 89 -- POSIX thread cancellation point 66#fgets, 89 -- POSIX thread cancellation point 67#fgetwc, 89 -- POSIX thread cancellation point 68#fgetws, 89 -- POSIX thread cancellation point 69floor, 89 70fmod, 89 71#fopen, 89 -- POSIX thread cancellation point 72#fprintf, 89 -- POSIX thread cancellation point 73#fputc, 89 -- POSIX thread cancellation point 74#fputs, 89 -- POSIX thread cancellation point 75#fputwc, 89 -- POSIX thread cancellation point 76#fputws, 89 -- POSIX thread cancellation point 77#fread, 89 -- POSIX thread cancellation point 78free, 89 79#freopen, 89 -- POSIX thread cancellation point 80frexp, 89 81#fscanf, 89 -- POSIX thread cancellation point 82fseek, 89 83#fsetpos, 89 -- POSIX thread cancellation point 84#ftell, 89 -- POSIX thread cancellation point 85fwide, 89 86#fwprintf, 89 -- POSIX thread cancellation point 87#fwrite, 89 -- POSIX thread cancellation point 88#fwscanf, 89 -- POSIX thread cancellation point 89#getc, 89 -- POSIX thread cancellation point 90#getchar, 89 -- POSIX thread cancellation point 91getenv, 89 92#gets, 89 -- POSIX thread cancellation point 93#getwc, 89 -- POSIX thread cancellation point 94#getwchar, 89 -- POSIX thread cancellation point 95gmtime, 89 96isalnum, 89 97isalpha, 89 98iscntrl, 89 99isdigit, 89 100isgraph, 89 101islower, 89 102isprint, 89 103ispunct, 89 104isspace, 89 105isupper, 89 106iswalnum, 89 107iswalpha, 89 108iswcntrl, 89 109iswctype, 89 110iswdigit, 89 111iswgraph, 89 112iswlower, 89 113iswprint, 89 114iswpunct, 89 115iswspace, 89 116iswupper, 89 117iswxdigit, 89 118isxdigit, 89 119labs, 89 120ldexp, 89 121ldiv, 89 122localeconv, 89 123localtime, 89 124log, 89 125log10, 89 126longjmp, 89 127malloc, 89 128mblen, 89 129mbrlen, 89 130mbrtowc, 89 131mbsinit, 89 132mbsrtowcs, 89 133mbstowcs, 89 134mbtowc, 89 135memchr, 89 136memcmp, 89 137memcpy, 89 138memmove, 89 139memset, 89 140mktime, 89 141modf, 89 142#perror, 89 -- POSIX thread cancellation point 143pow, 89 144#printf, 89 -- POSIX thread cancellation point 145#putc, 89 -- POSIX thread cancellation point 146#putchar, 89 -- POSIX thread cancellation point 147#puts, 89 -- POSIX thread cancellation point 148#putwc, 89 -- POSIX thread cancellation point 149#putwchar, 89 -- POSIX thread cancellation point 150#qsort, 89 -- calls user function which may throw exception 151#raise, 89 -- synchronous exception from signal handler 152rand, 89 153realloc, 89 154#remove, 89 -- POSIX thread cancellation point 155#rename, 89 -- POSIX thread cancellation point 156#rewind, 89 -- POSIX thread cancellation point 157#scanf, 89 -- POSIX thread cancellation point 158setbuf, 89 159setlocale, 89 160setvbuf, 89 161signal, 89 162sin, 89 163sinh, 89 164sprintf, 89 165sqrt, 89 166srand, 89 167sscanf, 89 168strcat, 89 169strchr, 89 170strcmp, 89 171strcoll, 89 172strcpy, 89 173strcspn, 89 174#strerror, 89 -- POSIX thread cancellation point 175strftime, 89 176strlen, 89 177strncat, 89 178strncmp, 89 179strncpy, 89 180strpbrk, 89 181strrchr, 89 182strspn, 89 183strstr, 89 184strtod, 89 185strtok, 89 186strtol, 89 187strtoul, 89 188strxfrm, 89 189swprintf, 89 190swscanf, 89 191#system, 89 -- POSIX thread cancellation point 192tan, 89 193tanh, 89 194time, 89 195#tmpfile, 89 -- POSIX thread cancellation point 196#tmpnam, 89 -- POSIX thread cancellation point 197tolower, 89 198toupper, 89 199towctrans, 89 200towlower, 89 201towupper, 89 202#ungetc, 89 -- POSIX thread cancellation point 203#ungetwc, 89 -- POSIX thread cancellation point 204#vfprintf, 89 -- POSIX thread cancellation point 205#vfwprintf, 89 -- POSIX thread cancellation point 206#vprintf, 89 -- POSIX thread cancellation point 207vsprintf, 89 208vswprintf, 89 209#vwprintf, 89 -- POSIX thread cancellation point 210wcrtomb, 89 211wcscat, 89 212wcschr, 89 213wcscmp, 89 214wcscoll, 89 215wcscpy, 89 216wcscspn, 89 217wcsftime, 89 218wcslen, 89 219wcsncat, 89 220wcsncmp, 89 221wcsncpy, 89 222wcspbrk, 89 223wcsrchr, 89 224wcsrtombs, 89 225wcsspn, 89 226wcsstr, 89 227wcstod, 89 228wcstok, 89 229wcstol, 89 230wcstombs, 89 231wcstoul, 89 232wcsxfrm, 89 233wctob, 89 234wctomb, 89 235wctrans, 89 236wctype, 89 237wmemchr, 89 238wmemcmp, 89 239wmemcpy, 89 240wmemmove, 89 241wmemset, 89 242#wprintf, 89 -- POSIX thread cancellation point 243#wscanf, 89 -- POSIX thread cancellation point 244cacos, 99 245cacosf, 99 246cacosl, 99 247casin, 99 248casinf, 99 249casinl, 99 250catan, 99 251catanf, 99 252catanl, 99 253ccos, 99 254ccosf, 99 255ccosl, 99 256csin, 99 257csinf, 99 258csinl, 99 259ctan, 99 260ctanf, 99 261ctanl, 99 262cacosh, 99 263cacoshf, 99 264cacoshl, 99 265casinh, 99 266casinhf, 99 267casinhl, 99 268catanh, 99 269catanhf, 99 270catanhl, 99 271ccosh, 99 272ccoshf, 99 273ccoshl, 99 274csinh, 99 275csinhf, 99 276csinhl, 99 277ctanh, 99 278ctanhf, 99 279ctanhl, 99 280cexp, 99 281cexpf, 99 282cexpl, 99 283clog, 99 284clogf, 99 285clogl, 99 286cabs, 99 287cabsf, 99 288cabsl, 99 289cpow, 99 290cpowf, 99 291cpowl, 99 292csqrt, 99 293csqrtf, 99 294csqrtl, 99 295carg, 99 296cargf, 99 297cargl, 99 298cimag, 99 299cimagf, 99 300cimagl, 99 301conj, 99 302conjf, 99 303conjl, 99 304cproj, 99 305cprojf, 99 306cprojl, 99 307creal, 99 308crealf, 99 309creall, 99 310isblank, 99 311feclearexcept, 99 312fegetexceptflag, 99 313feraiseexcept, 99 314fesetexceptflag, 99 315fetestexcept, 99 316fegetround, 99 317fesetround, 99 318fegetenv, 99 319feholdexcept, 99 320fesetenv, 99 321feupdateenv, 99 322imaxabs, 99 323imaxdiv, 99 324strtoimax, 99 325strtoumax, 99 326wcstoimax, 99 327wcstoumax, 99 328acosf, 99 329acosl, 99 330asinf, 99 331asinl, 99 332atanf, 99 333atanl, 99 334atan2f, 99 335atan2l, 99 336cosf, 99 337cosl, 99 338sinf, 99 339sinl, 99 340tanf, 99 341tanl, 99 342acosh, 99 343acoshf, 99 344acoshl, 99 345asinh, 99 346asinhf, 99 347asinhl, 99 348atanh, 99 349atanhf, 99 350atanhl, 99 351coshf, 99 352coshl, 99 353sinhf, 99 354sinhl, 99 355tanhf, 99 356tanhl, 99 357expf, 99 358expl, 99 359exp2, 99 360exp2f, 99 361exp2l, 99 362expm1, 99 363expm1f, 99 364expm1l, 99 365frexpf, 99 366frexpl, 99 367ilogb, 99 368ilogbf, 99 369ilogbl, 99 370ldexpf, 99 371ldexpl, 99 372logf, 99 373logl, 99 374log10f, 99 375log10l, 99 376log1p, 99 377log1pf, 99 378log1pl, 99 379log2, 99 380log2f, 99 381log2l, 99 382logb, 99 383logbf, 99 384logbl, 99 385modff, 99 386modfl, 99 387scalbn, 99 388scalbnf, 99 389scalbnl, 99 390scalbln, 99 391scalblnf, 99 392scalblnl, 99 393cbrt, 99 394cbrtf, 99 395cbrtl, 99 396fabsf, 99 397fabsl, 99 398hypot, 99 399hypotf, 99 400hypotl, 99 401powf, 99 402powl, 99 403sqrtf, 99 404sqrtl, 99 405erf, 99 406erff, 99 407erfl, 99 408erfc, 99 409erfcf, 99 410erfcl, 99 411lgamma, 99 412lgammaf, 99 413lgammal, 99 414tgamma, 99 415tgammaf, 99 416tgammal, 99 417ceilf, 99 418ceill, 99 419floorf, 99 420floorl, 99 421nearbyint, 99 422nearbyintf, 99 423nearbyintl, 99 424rint, 99 425rintf, 99 426rintl, 99 427lrint, 99 428lrintf, 99 429lrintl, 99 430llrint, 99 431llrintf, 99 432llrintl, 99 433round, 99 434roundf, 99 435roundl, 99 436lround, 99 437lroundf, 99 438lroundl, 99 439llround, 99 440llroundf, 99 441llroundl, 99 442trunc, 99 443truncf, 99 444truncl, 99 445fmodf, 99 446fmodl, 99 447remainder, 99 448remainderf, 99 449remainderl, 99 450remquo, 99 451remquof, 99 452remquol, 99 453copysign, 99 454copysignf, 99 455copysignl, 99 456nan, 99 457nanf, 99 458nanl, 99 459nextafter, 99 460nextafterf, 99 461nextafterl, 99 462nexttoward, 99 463nexttowardf, 99 464nexttowardl, 99 465fdim, 99 466fdimf, 99 467fdiml, 99 468fmax, 99 469fmaxf, 99 470fmaxl, 99 471fmin, 99 472fminf, 99 473fminl, 99 474fma, 99 475fmaf, 99 476fmal, 99 477snprintf, 99 478#vfscanf, 99 -- POSIX thread cancellation point 479#vscanf, 99 -- POSIX thread cancellation point 480vsnprintf, 99 481vsscanf, 99 482atoll, 99 483strtof, 99 484strtold, 99 485strtoll, 99 486strtoull, 99 487_Exit, 99 488llabs, 99 489lldiv, 99 490#vfwscanf, 99 -- POSIX thread cancellation point 491vswscanf, 99 492#vwscanf, 99 -- POSIX thread cancellation point 493wcstof, 99 494wcstold, 99 495wcstoll, 99 496wcstoull, 99 497iswblank, 99 498#atomic_thread_fence, 11 -- usually implemented as a macro 499#atomic_signal_fence, 11 -- usually implemented as a macro 500#atomic_flag_test_and_set, 11 -- usually implemented as a macro 501#atomic_flag_test_and_set_explicit, 11 -- usually implemented as a macro 502#atomic_flag_clear, 11 -- usually implemented as a macro 503#atomic_flag_clear_explicit, 11 -- usually implemented as a macro 504aligned_alloc, 11 505at_quick_exit, 11 506quick_exit, 11 507#call_once, 11 -- C11 threads 508#cnd_broadcast, 11 -- C11 threads 509#cnd_destroy, 11 -- C11 threads 510#cnd_init, 11 -- C11 threads 511#cnd_signal, 11 -- C11 threads 512#cnd_timedwait, 11 -- C11 threads 513#cnd_wait, 11 -- C11 threads 514#mtx_destroy, 11 -- C11 threads 515#mtx_init, 11 -- C11 threads 516#mtx_lock, 11 -- C11 threads 517#mtx_timedlock, 11 -- C11 threads 518#mtx_trylock, 11 -- C11 threads 519#mtx_unlock, 11 -- C11 threads 520#thrd_create, 11 -- C11 threads 521#thrd_current, 11 -- C11 threads 522#thrd_detach, 11 -- C11 threads 523#thrd_equal, 11 -- C11 threads 524#thrd_exit, 11 -- C11 threads 525#thrd_join, 11 -- C11 threads 526#thrd_sleep, 11 -- C11 threads 527#thrd_yield, 11 -- C11 threads 528#tss_create, 11 -- C11 threads 529#tss_delete, 11 -- C11 threads 530#tss_get, 11 -- C11 threads 531#tss_set, 11 -- C11 threads 532timespec_get, 11 533mbrtoc16, 11 534c16rtomb, 11 535mbrtoc32, 11 536c32rtomb, 11 537