From 6b56d5f57de2d5608e3ad04649dc6bcba45c942d Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 24 Dec 2016 12:15:44 +0100 Subject: [PATCH] re PR middle-end/78901 (ICE: verify_gimple failed (error: statement marked for throw in middle of block)) PR middle-end/78901 * except.c (nothrow_libfn_p): Expect libc_name_p to return const struct libc_name_struct *, if it returns NULL, return 0, otherwise check c_ver and use flag_isoc99 or flag_isoc11. * cfns.gperf: Add %struct-type and libc_name_struct definition. For all C89 C library functions add , 89 after the name, add C99 C library functions with , 99 and C11 C library functions with , 11 suffix. * cfns.h: Regenerated. From-SVN: r243914 --- gcc/cp/ChangeLog | 12 + gcc/cp/cfns.gperf | 713 +++++++++++++++++++++--------- gcc/cp/cfns.h | 1241 +++++++++++++++++++++++++++++++++++++++++++---------- gcc/cp/except.c | 13 +- 4 files changed, 1539 insertions(+), 440 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2969762..7aca3ac 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,15 @@ +2016-12-24 Jakub Jelinek + + PR middle-end/78901 + * except.c (nothrow_libfn_p): Expect libc_name_p to return + const struct libc_name_struct *, if it returns NULL, return 0, + otherwise check c_ver and use flag_isoc99 or flag_isoc11. + * cfns.gperf: Add %struct-type and libc_name_struct definition. + For all C89 C library functions add , 89 after the name, add + C99 C library functions with , 99 and C11 C library functions + with , 11 suffix. + * cfns.h: Regenerated. + 2016-12-22 Jason Merrill PR c++/78906 diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf index 8d7f015..5453f5a 100644 --- a/gcc/cp/cfns.gperf +++ b/gcc/cp/cfns.gperf @@ -1,5 +1,6 @@ %language=C++ %define class-name libc_name +%struct-type %{ /* Copyright (C) 2000-2016 Free Software Foundation, Inc. @@ -19,6 +20,7 @@ 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. @@ -30,212 +32,505 @@ along with GCC; see the file COPYING3. If not see # # Specific functions are commented out for the reason noted in each case. # -# abort -- synchronous exception from SIGABRT handler -abs -acos -asctime -asin -atan -atan2 -atexit -atof -atoi -atol -#bsearch -- calls user function which may throw exception -btowc -calloc -ceil -clearerr -clock -cos -cosh -ctime -difftime -div -exit -exp -fabs -#fclose -- POSIX thread cancellation point -feof -ferror -#fflush -- POSIX thread cancellation point -#fgetc -- POSIX thread cancellation point -#fgetpos -- POSIX thread cancellation point -#fgets -- POSIX thread cancellation point -#fgetwc -- POSIX thread cancellation point -#fgetws -- POSIX thread cancellation point -floor -fmod -#fopen -- POSIX thread cancellation point -#fprintf -- POSIX thread cancellation point -#fputc -- POSIX thread cancellation point -#fputs -- POSIX thread cancellation point -#fputwc -- POSIX thread cancellation point -#fputws -- POSIX thread cancellation point -#fread -- POSIX thread cancellation point -free -#freopen -- POSIX thread cancellation point -frexp -#fscanf -- POSIX thread cancellation point -fseek -#fsetpos -- POSIX thread cancellation point -#ftell -- POSIX thread cancellation point -fwide -#fwprintf -- POSIX thread cancellation point -#fwrite -- POSIX thread cancellation point -#fwscanf -- POSIX thread cancellation point -#getc -- POSIX thread cancellation point -#getchar -- POSIX thread cancellation point -getenv -#gets -- POSIX thread cancellation point -#getwc -- POSIX thread cancellation point -#getwchar -- POSIX thread cancellation point -gmtime -isalnum -isalpha -iscntrl -isdigit -isgraph -islower -isprint -ispunct -isspace -isupper -iswalnum -iswalpha -iswcntrl -iswctype -iswdigit -iswgraph -iswlower -iswprint -iswpunct -iswspace -iswupper -iswxdigit -isxdigit -labs -ldexp -ldiv -localeconv -localtime -log -log10 -longjmp -malloc -mblen -mbrlen -mbrtowc -mbsinit -mbsrtowcs -mbstowcs -mbtowc -memchr -memcmp -memcpy -memmove -memset -mktime -modf -#perror -- POSIX thread cancellation point -pow -#printf -- POSIX thread cancellation point -#putc -- POSIX thread cancellation point -#putchar -- POSIX thread cancellation point -#puts -- POSIX thread cancellation point -#putwc -- POSIX thread cancellation point -#putwchar -- POSIX thread cancellation point -#qsort -- calls user function which may throw exception -#raise -- synchronous exception from signal handler -rand -realloc -#remove -- POSIX thread cancellation point -#rename -- POSIX thread cancellation point -#rewind -- POSIX thread cancellation point -#scanf -- POSIX thread cancellation point -setbuf -setlocale -setvbuf -signal -sin -sinh -sprintf -sqrt -srand -sscanf -strcat -strchr -strcmp -strcoll -strcpy -strcspn -#strerror -- POSIX thread cancellation point -strftime -strlen -strncat -strncmp -strncpy -strpbrk -strrchr -strspn -strstr -strtod -strtok -strtol -strtoul -strxfrm -swprintf -swscanf -#system -- POSIX thread cancellation point -tan -tanh -time -#tmpfile -- POSIX thread cancellation point -#tmpnam -- POSIX thread cancellation point -tolower -toupper -towctrans -towlower -towupper -#ungetc -- POSIX thread cancellation point -#ungetwc -- POSIX thread cancellation point -#vfprintf -- POSIX thread cancellation point -#vfwprintf -- POSIX thread cancellation point -#vprintf -- POSIX thread cancellation point -vsprintf -vswprintf -#vwprintf -- POSIX thread cancellation point -wcrtomb -wcscat -wcschr -wcscmp -wcscoll -wcscpy -wcscspn -wcsftime -wcslen -wcsncat -wcsncmp -wcsncpy -wcspbrk -wcsrchr -wcsrtombs -wcsspn -wcsstr -wcstod -wcstok -wcstol -wcstombs -wcstoul -wcsxfrm -wctob -wctomb -wctrans -wctype -wmemchr -wmemcmp -wmemcpy -wmemmove -wmemset -#wprintf -- POSIX thread cancellation point -#wscanf -- POSIX thread cancellation point +#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 diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h index 9a37249..5634ab6 100644 --- a/gcc/cp/cfns.h +++ b/gcc/cp/cfns.h @@ -28,7 +28,7 @@ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif -#line 3 "cfns.gperf" +#line 4 "cfns.gperf" /* Copyright (C) 2000-2016 Free Software Foundation, Inc. @@ -47,14 +47,16 @@ 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 . */ -/* maximum key range = 391, duplicates = 0 */ +#line 23 "cfns.gperf" +struct libc_name_struct { const char *name; int c_ver; }; +/* maximum key range = 1478, duplicates = 0 */ class libc_name { private: static inline unsigned int hash (const char *str, unsigned int len); public: - static const char *libc_name_p (const char *str, unsigned int len); + static const struct libc_name_struct *libc_name_p (const char *str, unsigned int len); }; inline unsigned int @@ -62,32 +64,32 @@ libc_name::hash (register const char *str, register unsigned int len) { static const unsigned short asso_values[] = { - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 0, 0, - 1, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 28, 90, 0, - 95, 0, 51, 93, 114, 26, 109, 124, 5, 1, - 6, 13, 37, 128, 3, 0, 0, 49, 38, 0, - 104, 45, 0, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400 + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 0, 1, + 82, 1488, 4, 1488, 1, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 0, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 0, 0, 29, 7, 6, + 228, 136, 0, 284, 232, 17, 447, 31, 2, 51, + 0, 78, 358, 433, 31, 0, 17, 52, 356, 230, + 377, 5, 89, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488 }; register int hval = len; @@ -106,7 +108,7 @@ libc_name::hash (register const char *str, register unsigned int len) hval += asso_values[(unsigned char)str[2]]; /*FALLTHROUGH*/ case 2: - hval += asso_values[(unsigned char)str[1]]; + hval += asso_values[(unsigned char)str[1]+1]; /*FALLTHROUGH*/ case 1: hval += asso_values[(unsigned char)str[0]]; @@ -115,220 +117,1001 @@ libc_name::hash (register const char *str, register unsigned int len) return hval + asso_values[(unsigned char)str[len - 1]]; } -const char * +const struct libc_name_struct * libc_name::libc_name_p (register const char *str, register unsigned int len) { enum { - TOTAL_KEYWORDS = 156, + TOTAL_KEYWORDS = 414, MIN_WORD_LENGTH = 3, - MAX_WORD_LENGTH = 10, - MIN_HASH_VALUE = 9, - MAX_HASH_VALUE = 399 + MAX_WORD_LENGTH = 15, + MIN_HASH_VALUE = 10, + MAX_HASH_VALUE = 1487 }; - static const char * const wordlist[] = + static const struct libc_name_struct wordlist[] = { - "wcsstr", - "strstr", - "cos", - "towctrans", - "memmove", - "wcstol", - "wcscoll", - "wcstombs", - "strtol", - "strcoll", - "wcslen", - "time", - "ctime", - "strlen", - "iswctype", - "wmemchr", - "wcsrchr", - "ceil", - "sin", - "strrchr", - "tan", - "iscntrl", - "acos", - "wmemmove", - "wcsrtombs", - "wctrans", - "wmemcmp", - "pow", - "atol", - "wcsncmp", - "memset", - "free", - "strncmp", - "wmemset", - "wcsspn", - "wcstoul", - "strspn", - "strtoul", - "asctime", - "atan2", - "asin", - "atan", - "ferror", - "iswalnum", - "wcscat", - "realloc", - "strcat", - "wcscpy", - "memcpy", - "strcpy", - "tolower", - "floor", - "iswcntrl", - "atoi", - "clearerr", - "swscanf", - "wcsncat", - "islower", - "strncat", - "btowc", - "localtime", - "wctomb", - "isalnum", - "isprint", - "mblen", - "wcstod", - "log10", - "strtod", - "wcrtomb", - "abs", - "setlocale", - "wcschr", - "mbrlen", - "memchr", - "strchr", - "labs", - "iswpunct", - "exit", - "sqrt", - "swprintf", - "wctype", - "mbsrtowcs", - "wcscspn", - "getenv", - "strcspn", - "towlower", - "atof", - "wcstok", - "localeconv", - "strtok", - "calloc", - "malloc", - "isalpha", - "iswlower", - "iswspace", - "wcsxfrm", - "signal", - "strxfrm", - "wcsftime", - "feof", - "strftime", - "wcscmp", - "fabs", - "memcmp", - "strcmp", - "vsprintf", - "fwide", - "gmtime", - "sprintf", - "exp", - "wmemcpy", - "iswprint", - "sscanf", - "wcsncpy", - "strncpy", - "isspace", - "toupper", - "wctob", - "div", - "mbtowc", - "ldiv", - "log", - "mktime", - "isupper", - "atexit", - "modf", - "mbstowcs", - "mbrtowc", - "ispunct", - "iswalpha", - "setvbuf", - "rand", - "srand", - "frexp", - "towupper", - "mbsinit", - "cosh", - "vswprintf", - "iswupper", - "wcspbrk", - "fmod", - "strpbrk", - "sinh", - "tanh", - "iswdigit", - "clock", - "longjmp", - "ldexp", - "setbuf", - "fseek", - "iswgraph", - "difftime", - "iswxdigit", - "isdigit", - "isxdigit", - "isgraph" +#line 456 "cfns.gperf" + {"nan", 99}, +#line 457 "cfns.gperf" + {"nanf", 99}, +#line 458 "cfns.gperf" + {"nanl", 99}, +#line 59 "cfns.gperf" + {"fabs", 89}, +#line 396 "cfns.gperf" + {"fabsf", 99}, +#line 119 "cfns.gperf" + {"labs", 89}, +#line 471 "cfns.gperf" + {"fmin", 99}, +#line 472 "cfns.gperf" + {"fminf", 99}, +#line 397 "cfns.gperf" + {"fabsl", 99}, +#line 286 "cfns.gperf" + {"cabs", 99}, +#line 287 "cfns.gperf" + {"cabsf", 99}, +#line 473 "cfns.gperf" + {"fminl", 99}, +#line 192 "cfns.gperf" + {"tan", 89}, +#line 340 "cfns.gperf" + {"tanf", 99}, +#line 288 "cfns.gperf" + {"cabsl", 99}, +#line 417 "cfns.gperf" + {"ceilf", 99}, +#line 49 "cfns.gperf" + {"ceil", 89}, +#line 341 "cfns.gperf" + {"tanl", 99}, +#line 475 "cfns.gperf" + {"fmaf", 99}, +#line 418 "cfns.gperf" + {"ceill", 99}, +#line 247 "cfns.gperf" + {"casin", 99}, +#line 476 "cfns.gperf" + {"fmal", 99}, +#line 36 "cfns.gperf" + {"abs", 89}, +#line 256 "cfns.gperf" + {"csin", 99}, +#line 257 "cfns.gperf" + {"csinf", 99}, +#line 258 "cfns.gperf" + {"csinl", 99}, +#line 266 "cfns.gperf" + {"casinhf", 99}, +#line 267 "cfns.gperf" + {"casinhl", 99}, +#line 427 "cfns.gperf" + {"lrint", 99}, +#line 474 "cfns.gperf" + {"fma", 99}, +#line 250 "cfns.gperf" + {"catan", 99}, +#line 394 "cfns.gperf" + {"cbrtf", 99}, +#line 98 "cfns.gperf" + {"iscntrl", 89}, +#line 39 "cfns.gperf" + {"asin", 89}, +#line 330 "cfns.gperf" + {"asinf", 99}, +#line 395 "cfns.gperf" + {"cbrtl", 99}, +#line 331 "cfns.gperf" + {"asinl", 99}, +#line 393 "cfns.gperf" + {"cbrt", 99}, +#line 61 "cfns.gperf" + {"feof", 89}, +#line 269 "cfns.gperf" + {"catanhf", 99}, +#line 403 "cfns.gperf" + {"sqrtf", 99}, +#line 270 "cfns.gperf" + {"catanhl", 99}, +#line 442 "cfns.gperf" + {"trunc", 99}, +#line 404 "cfns.gperf" + {"sqrtl", 99}, +#line 249 "cfns.gperf" + {"casinl", 99}, +#line 259 "cfns.gperf" + {"ctan", 99}, +#line 260 "cfns.gperf" + {"ctanf", 99}, +#line 488 "cfns.gperf" + {"llabs", 99}, +#line 429 "cfns.gperf" + {"lrintl", 99}, +#line 261 "cfns.gperf" + {"ctanl", 99}, +#line 165 "cfns.gperf" + {"sqrt", 89}, +#line 244 "cfns.gperf" + {"cacos", 99}, +#line 40 "cfns.gperf" + {"atan", 89}, +#line 332 "cfns.gperf" + {"atanf", 99}, +#line 252 "cfns.gperf" + {"catanl", 99}, +#line 333 "cfns.gperf" + {"atanl", 99}, +#line 177 "cfns.gperf" + {"strncat", 89}, +#line 263 "cfns.gperf" + {"cacoshf", 99}, +#line 264 "cfns.gperf" + {"cacoshl", 99}, +#line 313 "cfns.gperf" + {"feraiseexcept", 99}, +#line 444 "cfns.gperf" + {"truncl", 99}, +#line 183 "cfns.gperf" + {"strstr", 89}, +#line 405 "cfns.gperf" + {"erf", 99}, +#line 406 "cfns.gperf" + {"erff", 99}, +#line 407 "cfns.gperf" + {"erfl", 99}, +#line 409 "cfns.gperf" + {"erfcf", 99}, +#line 410 "cfns.gperf" + {"erfcl", 99}, +#line 408 "cfns.gperf" + {"erfc", 99}, +#line 246 "cfns.gperf" + {"cacosl", 99}, +#line 431 "cfns.gperf" + {"llrintf", 99}, +#line 432 "cfns.gperf" + {"llrintl", 99}, +#line 43 "cfns.gperf" + {"atof", 89}, +#line 422 "cfns.gperf" + {"nearbyintf", 99}, +#line 45 "cfns.gperf" + {"atol", 89}, +#line 423 "cfns.gperf" + {"nearbyintl", 99}, +#line 482 "cfns.gperf" + {"atoll", 99}, +#line 181 "cfns.gperf" + {"strrchr", 89}, +#line 430 "cfns.gperf" + {"llrint", 99}, +#line 62 "cfns.gperf" + {"ferror", 89}, +#line 307 "cfns.gperf" + {"creal", 99}, +#line 311 "cfns.gperf" + {"feclearexcept", 99}, +#line 421 "cfns.gperf" + {"nearbyint", 99}, +#line 310 "cfns.gperf" + {"isblank", 99}, +#line 168 "cfns.gperf" + {"strcat", 89}, +#line 57 "cfns.gperf" + {"exit", 89}, +#line 44 "cfns.gperf" + {"atoi", 89}, +#line 128 "cfns.gperf" + {"mblen", 89}, +#line 51 "cfns.gperf" + {"clock", 89}, +#line 466 "cfns.gperf" + {"fdimf", 99}, +#line 467 "cfns.gperf" + {"fdiml", 99}, +#line 448 "cfns.gperf" + {"remainderf", 99}, +#line 185 "cfns.gperf" + {"strtok", 89}, +#line 449 "cfns.gperf" + {"remainderl", 99}, +#line 171 "cfns.gperf" + {"strcoll", 89}, +#line 38 "cfns.gperf" + {"asctime", 89}, +#line 309 "cfns.gperf" + {"creall", 99}, +#line 315 "cfns.gperf" + {"fetestexcept", 99}, +#line 186 "cfns.gperf" + {"strtol", 89}, +#line 485 "cfns.gperf" + {"strtoll", 99}, +#line 447 "cfns.gperf" + {"remainder", 99}, +#line 335 "cfns.gperf" + {"atan2l", 99}, +#line 465 "cfns.gperf" + {"fdim", 99}, +#line 355 "cfns.gperf" + {"tanhf", 99}, +#line 356 "cfns.gperf" + {"tanhl", 99}, +#line 69 "cfns.gperf" + {"floor", 89}, +#line 437 "cfns.gperf" + {"lroundf", 99}, +#line 438 "cfns.gperf" + {"lroundl", 99}, +#line 41 "cfns.gperf" + {"atan2", 89}, +#line 140 "cfns.gperf" + {"mktime", 89}, +#line 265 "cfns.gperf" + {"casinh", 99}, +#line 50 "cfns.gperf" + {"clearerr", 89}, +#line 420 "cfns.gperf" + {"floorl", 99}, +#line 440 "cfns.gperf" + {"llroundf", 99}, +#line 441 "cfns.gperf" + {"llroundl", 99}, +#line 176 "cfns.gperf" + {"strlen", 89}, +#line 129 "cfns.gperf" + {"mbrlen", 89}, +#line 445 "cfns.gperf" + {"fmodf", 99}, +#line 139 "cfns.gperf" + {"memset", 89}, +#line 268 "cfns.gperf" + {"catanh", 99}, +#line 446 "cfns.gperf" + {"fmodl", 99}, +#line 253 "cfns.gperf" + {"ccos", 99}, +#line 254 "cfns.gperf" + {"ccosf", 99}, +#line 497 "cfns.gperf" + {"iswblank", 99}, +#line 248 "cfns.gperf" + {"casinf", 99}, +#line 255 "cfns.gperf" + {"ccosl", 99}, +#line 390 "cfns.gperf" + {"scalbln", 99}, +#line 391 "cfns.gperf" + {"scalblnf", 99}, +#line 428 "cfns.gperf" + {"lrintf", 99}, +#line 392 "cfns.gperf" + {"scalblnl", 99}, +#line 276 "cfns.gperf" + {"csinhl", 99}, +#line 108 "cfns.gperf" + {"iswcntrl", 89}, +#line 296 "cfns.gperf" + {"cargf", 99}, +#line 48 "cfns.gperf" + {"calloc", 89}, +#line 297 "cfns.gperf" + {"cargl", 99}, +#line 37 "cfns.gperf" + {"acos", 89}, +#line 328 "cfns.gperf" + {"acosf", 99}, +#line 167 "cfns.gperf" + {"sscanf", 89}, +#line 329 "cfns.gperf" + {"acosl", 99}, +#line 251 "cfns.gperf" + {"catanf", 99}, +#line 387 "cfns.gperf" + {"scalbn", 99}, +#line 388 "cfns.gperf" + {"scalbnf", 99}, +#line 262 "cfns.gperf" + {"cacosh", 99}, +#line 389 "cfns.gperf" + {"scalbnl", 99}, +#line 347 "cfns.gperf" + {"asinhl", 99}, +#line 82 "cfns.gperf" + {"fseek", 89}, +#line 169 "cfns.gperf" + {"strchr", 89}, +#line 443 "cfns.gperf" + {"truncf", 99}, +#line 158 "cfns.gperf" + {"setbuf", 89}, +#line 52 "cfns.gperf" + {"cos", 89}, +#line 336 "cfns.gperf" + {"cosf", 99}, +#line 337 "cfns.gperf" + {"cosl", 99}, +#line 135 "cfns.gperf" + {"memchr", 89}, +#line 279 "cfns.gperf" + {"ctanhl", 99}, +#line 412 "cfns.gperf" + {"lgammaf", 99}, +#line 127 "cfns.gperf" + {"malloc", 89}, +#line 413 "cfns.gperf" + {"lgammal", 99}, +#line 101 "cfns.gperf" + {"islower", 89}, +#line 47 "cfns.gperf" + {"btowc", 89}, +#line 245 "cfns.gperf" + {"cacosf", 99}, +#line 317 "cfns.gperf" + {"fesetround", 99}, +#line 415 "cfns.gperf" + {"tgammaf", 99}, +#line 416 "cfns.gperf" + {"tgammal", 99}, +#line 504 "cfns.gperf" + {"aligned_alloc", 11}, +#line 350 "cfns.gperf" + {"atanhl", 99}, +#line 54 "cfns.gperf" + {"ctime", 89}, +#line 411 "cfns.gperf" + {"lgamma", 99}, +#line 469 "cfns.gperf" + {"fmaxf", 99}, +#line 78 "cfns.gperf" + {"free", 89}, +#line 470 "cfns.gperf" + {"fmaxl", 99}, +#line 533 "cfns.gperf" + {"mbrtoc16", 11}, +#line 414 "cfns.gperf" + {"tgamma", 99}, +#line 284 "cfns.gperf" + {"clogf", 99}, +#line 285 "cfns.gperf" + {"clogl", 99}, +#line 106 "cfns.gperf" + {"iswalnum", 89}, +#line 487 "cfns.gperf" + {"_Exit", 99}, +#line 153 "cfns.gperf" + {"realloc", 89}, +#line 241 "cfns.gperf" + {"wmemset", 89}, +#line 367 "cfns.gperf" + {"ilogb", 99}, +#line 162 "cfns.gperf" + {"sin", 89}, +#line 338 "cfns.gperf" + {"sinf", 99}, +#line 314 "cfns.gperf" + {"fesetexceptflag", 99}, +#line 178 "cfns.gperf" + {"strncmp", 89}, +#line 339 "cfns.gperf" + {"sinl", 99}, +#line 308 "cfns.gperf" + {"crealf", 99}, +#line 484 "cfns.gperf" + {"strtold", 99}, +#line 322 "cfns.gperf" + {"imaxabs", 99}, +#line 483 "cfns.gperf" + {"strtof", 99}, +#line 159 "cfns.gperf" + {"setlocale", 89}, +#line 132 "cfns.gperf" + {"mbsrtowcs", 89}, +#line 97 "cfns.gperf" + {"isalpha", 89}, +#line 319 "cfns.gperf" + {"feholdexcept", 99}, +#line 237 "cfns.gperf" + {"wmemchr", 89}, +#line 96 "cfns.gperf" + {"isalnum", 89}, +#line 334 "cfns.gperf" + {"atan2f", 99}, +#line 180 "cfns.gperf" + {"strpbrk", 89}, +#line 166 "cfns.gperf" + {"srand", 89}, +#line 193 "cfns.gperf" + {"tanh", 89}, +#line 481 "cfns.gperf" + {"vsscanf", 99}, +#line 219 "cfns.gperf" + {"wcsncat", 89}, +#line 369 "cfns.gperf" + {"ilogbl", 99}, +#line 190 "cfns.gperf" + {"swscanf", 89}, +#line 152 "cfns.gperf" + {"rand", 89}, +#line 425 "cfns.gperf" + {"rintf", 99}, +#line 535 "cfns.gperf" + {"mbrtoc32", 11}, +#line 436 "cfns.gperf" + {"lround", 99}, +#line 357 "cfns.gperf" + {"expf", 99}, +#line 426 "cfns.gperf" + {"rintl", 99}, +#line 358 "cfns.gperf" + {"expl", 99}, +#line 274 "cfns.gperf" + {"csinh", 99}, +#line 534 "cfns.gperf" + {"c16rtomb", 11}, +#line 95 "cfns.gperf" + {"gmtime", 89}, +#line 226 "cfns.gperf" + {"wcsstr", 89}, +#line 536 "cfns.gperf" + {"c32rtomb", 11}, +#line 424 "cfns.gperf" + {"rint", 99}, +#line 320 "cfns.gperf" + {"fesetenv", 99}, +#line 188 "cfns.gperf" + {"strxfrm", 89}, +#line 109 "cfns.gperf" + {"iswctype", 89}, +#line 182 "cfns.gperf" + {"strspn", 89}, +#line 292 "cfns.gperf" + {"csqrt", 99}, +#line 439 "cfns.gperf" + {"llround", 99}, +#line 419 "cfns.gperf" + {"floorf", 99}, +#line 173 "cfns.gperf" + {"strcspn", 89}, +#line 345 "cfns.gperf" + {"asinh", 99}, +#line 179 "cfns.gperf" + {"strncpy", 89}, +#line 133 "cfns.gperf" + {"mbstowcs", 89}, +#line 70 "cfns.gperf" + {"fmod", 89}, +#line 164 "cfns.gperf" + {"sprintf", 89}, +#line 102 "cfns.gperf" + {"isprint", 89}, +#line 187 "cfns.gperf" + {"strtoul", 89}, +#line 486 "cfns.gperf" + {"strtoull", 99}, +#line 131 "cfns.gperf" + {"mbsinit", 89}, +#line 172 "cfns.gperf" + {"strcpy", 89}, +#line 184 "cfns.gperf" + {"strtod", 89}, +#line 223 "cfns.gperf" + {"wcsrchr", 89}, +#line 277 "cfns.gperf" + {"ctanh", 99}, +#line 362 "cfns.gperf" + {"expm1", 99}, +#line 230 "cfns.gperf" + {"wcstombs", 89}, +#line 275 "cfns.gperf" + {"csinhf", 99}, +#line 294 "cfns.gperf" + {"csqrtl", 99}, +#line 137 "cfns.gperf" + {"memcpy", 89}, +#line 211 "cfns.gperf" + {"wcscat", 89}, +#line 477 "cfns.gperf" + {"snprintf", 99}, +#line 233 "cfns.gperf" + {"wctob", 89}, +#line 130 "cfns.gperf" + {"mbrtowc", 89}, +#line 348 "cfns.gperf" + {"atanh", 99}, +#line 346 "cfns.gperf" + {"asinhf", 99}, +#line 360 "cfns.gperf" + {"exp2f", 99}, +#line 361 "cfns.gperf" + {"exp2l", 99}, +#line 228 "cfns.gperf" + {"wcstok", 89}, +#line 123 "cfns.gperf" + {"localtime", 89}, +#line 210 "cfns.gperf" + {"wcrtomb", 89}, +#line 351 "cfns.gperf" + {"coshf", 99}, +#line 214 "cfns.gperf" + {"wcscoll", 89}, +#line 273 "cfns.gperf" + {"ccoshl", 99}, +#line 138 "cfns.gperf" + {"memmove", 89}, +#line 352 "cfns.gperf" + {"coshl", 99}, +#line 278 "cfns.gperf" + {"ctanhf", 99}, +#line 364 "cfns.gperf" + {"expm1l", 99}, +#line 229 "cfns.gperf" + {"wcstol", 89}, +#line 495 "cfns.gperf" + {"wcstoll", 99}, +#line 295 "cfns.gperf" + {"carg", 99}, +#line 235 "cfns.gperf" + {"wctrans", 89}, +#line 134 "cfns.gperf" + {"mbtowc", 89}, +#line 234 "cfns.gperf" + {"wctomb", 89}, +#line 491 "cfns.gperf" + {"vswscanf", 99}, +#line 344 "cfns.gperf" + {"acoshl", 99}, +#line 349 "cfns.gperf" + {"atanhf", 99}, +#line 199 "cfns.gperf" + {"towctrans", 89}, +#line 141 "cfns.gperf" + {"modf", 89}, +#line 385 "cfns.gperf" + {"modff", 99}, +#line 386 "cfns.gperf" + {"modfl", 99}, +#line 372 "cfns.gperf" + {"logf", 99}, +#line 125 "cfns.gperf" + {"log10", 89}, +#line 373 "cfns.gperf" + {"logl", 99}, +#line 383 "cfns.gperf" + {"logbf", 99}, +#line 384 "cfns.gperf" + {"logbl", 99}, +#line 382 "cfns.gperf" + {"logb", 99}, +#line 359 "cfns.gperf" + {"exp2", 99}, +#line 316 "cfns.gperf" + {"fegetround", 99}, +#line 218 "cfns.gperf" + {"wcslen", 89}, +#line 353 "cfns.gperf" + {"sinhf", 99}, +#line 42 "cfns.gperf" + {"atexit", 89}, +#line 354 "cfns.gperf" + {"sinhl", 99}, +#line 175 "cfns.gperf" + {"strftime", 89}, +#line 103 "cfns.gperf" + {"ispunct", 89}, +#line 375 "cfns.gperf" + {"log10l", 99}, +#line 283 "cfns.gperf" + {"clog", 99}, +#line 460 "cfns.gperf" + {"nextafterf", 99}, +#line 461 "cfns.gperf" + {"nextafterl", 99}, +#line 197 "cfns.gperf" + {"tolower", 89}, +#line 368 "cfns.gperf" + {"ilogbf", 99}, +#line 435 "cfns.gperf" + {"roundl", 99}, +#line 380 "cfns.gperf" + {"log2f", 99}, +#line 212 "cfns.gperf" + {"wcschr", 89}, +#line 381 "cfns.gperf" + {"log2l", 99}, +#line 312 "cfns.gperf" + {"fegetexceptflag", 99}, +#line 160 "cfns.gperf" + {"setvbuf", 89}, +#line 281 "cfns.gperf" + {"cexpf", 99}, +#line 459 "cfns.gperf" + {"nextafter", 99}, +#line 282 "cfns.gperf" + {"cexpl", 99}, +#line 290 "cfns.gperf" + {"cpowf", 99}, +#line 291 "cfns.gperf" + {"cpowl", 99}, +#line 112 "cfns.gperf" + {"iswlower", 89}, +#line 122 "cfns.gperf" + {"localeconv", 89}, +#line 107 "cfns.gperf" + {"iswalpha", 89}, +#line 110 "cfns.gperf" + {"iswdigit", 89}, +#line 115 "cfns.gperf" + {"iswspace", 89}, +#line 114 "cfns.gperf" + {"iswpunct", 89}, +#line 463 "cfns.gperf" + {"nexttowardf", 99}, +#line 271 "cfns.gperf" + {"ccosh", 99}, +#line 464 "cfns.gperf" + {"nexttowardl", 99}, +#line 468 "cfns.gperf" + {"fmax", 99}, +#line 238 "cfns.gperf" + {"wmemcmp", 89}, +#line 194 "cfns.gperf" + {"time", 89}, +#line 104 "cfns.gperf" + {"isspace", 89}, +#line 293 "cfns.gperf" + {"csqrtf", 99}, +#line 398 "cfns.gperf" + {"hypot", 99}, +#line 318 "cfns.gperf" + {"fegetenv", 99}, +#line 342 "cfns.gperf" + {"acosh", 99}, +#line 379 "cfns.gperf" + {"log2", 99}, +#line 302 "cfns.gperf" + {"conjf", 99}, +#line 161 "cfns.gperf" + {"signal", 89}, +#line 303 "cfns.gperf" + {"conjl", 99}, +#line 111 "cfns.gperf" + {"iswgraph", 89}, +#line 220 "cfns.gperf" + {"wcsncmp", 89}, +#line 53 "cfns.gperf" + {"cosh", 89}, +#line 400 "cfns.gperf" + {"hypotl", 99}, +#line 272 "cfns.gperf" + {"ccoshf", 99}, +#line 494 "cfns.gperf" + {"wcstold", 99}, +#line 105 "cfns.gperf" + {"isupper", 89}, +#line 363 "cfns.gperf" + {"expm1f", 99}, +#line 493 "cfns.gperf" + {"wcstof", 99}, +#line 343 "cfns.gperf" + {"acoshf", 99}, +#line 58 "cfns.gperf" + {"exp", 89}, +#line 222 "cfns.gperf" + {"wcspbrk", 89}, +#line 207 "cfns.gperf" + {"vsprintf", 89}, +#line 239 "cfns.gperf" + {"wmemcpy", 89}, +#line 189 "cfns.gperf" + {"swprintf", 89}, +#line 506 "cfns.gperf" + {"quick_exit", 11}, +#line 121 "cfns.gperf" + {"ldiv", 89}, +#line 224 "cfns.gperf" + {"wcsrtombs", 89}, +#line 300 "cfns.gperf" + {"cimagl", 99}, +#line 232 "cfns.gperf" + {"wcsxfrm", 89}, +#line 85 "cfns.gperf" + {"fwide", 89}, +#line 225 "cfns.gperf" + {"wcsspn", 89}, +#line 433 "cfns.gperf" + {"round", 99}, +#line 216 "cfns.gperf" + {"wcscspn", 89}, +#line 221 "cfns.gperf" + {"wcsncpy", 89}, +#line 118 "cfns.gperf" + {"isxdigit", 89}, +#line 163 "cfns.gperf" + {"sinh", 89}, +#line 231 "cfns.gperf" + {"wcstoul", 89}, +#line 496 "cfns.gperf" + {"wcstoull", 99}, +#line 325 "cfns.gperf" + {"strtoumax", 99}, +#line 215 "cfns.gperf" + {"wcscpy", 89}, +#line 227 "cfns.gperf" + {"wcstod", 89}, +#line 366 "cfns.gperf" + {"frexpl", 99}, +#line 124 "cfns.gperf" + {"log", 89}, +#line 451 "cfns.gperf" + {"remquof", 99}, +#line 452 "cfns.gperf" + {"remquol", 99}, +#line 374 "cfns.gperf" + {"log10f", 99}, +#line 170 "cfns.gperf" + {"strcmp", 89}, +#line 401 "cfns.gperf" + {"powf", 99}, +#line 402 "cfns.gperf" + {"powl", 99}, +#line 136 "cfns.gperf" + {"memcmp", 89}, +#line 434 "cfns.gperf" + {"roundf", 99}, +#line 240 "cfns.gperf" + {"wmemmove", 89}, +#line 236 "cfns.gperf" + {"wctype", 89}, +#line 289 "cfns.gperf" + {"cpow", 99}, +#line 462 "cfns.gperf" + {"nexttoward", 99}, +#line 450 "cfns.gperf" + {"remquo", 99}, +#line 324 "cfns.gperf" + {"strtoimax", 99}, +#line 321 "cfns.gperf" + {"feupdateenv", 99}, +#line 489 "cfns.gperf" + {"lldiv", 99}, +#line 91 "cfns.gperf" + {"getenv", 89}, +#line 99 "cfns.gperf" + {"isdigit", 89}, +#line 505 "cfns.gperf" + {"at_quick_exit", 11}, +#line 100 "cfns.gperf" + {"isgraph", 89}, +#line 306 "cfns.gperf" + {"cprojl", 99}, +#line 378 "cfns.gperf" + {"log1pl", 99}, +#line 399 "cfns.gperf" + {"hypotf", 99}, +#line 217 "cfns.gperf" + {"wcsftime", 89}, +#line 371 "cfns.gperf" + {"ldexpl", 99}, +#line 200 "cfns.gperf" + {"towlower", 89}, +#line 280 "cfns.gperf" + {"cexp", 99}, +#line 298 "cfns.gperf" + {"cimag", 99}, +#line 299 "cfns.gperf" + {"cimagf", 99}, +#line 532 "cfns.gperf" + {"timespec_get", 11}, +#line 113 "cfns.gperf" + {"iswprint", 89}, +#line 116 "cfns.gperf" + {"iswupper", 89}, +#line 365 "cfns.gperf" + {"frexpf", 99}, +#line 143 "cfns.gperf" + {"pow", 89}, +#line 198 "cfns.gperf" + {"toupper", 89}, +#line 453 "cfns.gperf" + {"copysign", 99}, +#line 454 "cfns.gperf" + {"copysignf", 99}, +#line 455 "cfns.gperf" + {"copysignl", 99}, +#line 480 "cfns.gperf" + {"vsnprintf", 99}, +#line 80 "cfns.gperf" + {"frexp", 89}, +#line 301 "cfns.gperf" + {"conj", 99}, +#line 55 "cfns.gperf" + {"difftime", 89}, +#line 305 "cfns.gperf" + {"cprojf", 99}, +#line 377 "cfns.gperf" + {"log1pf", 99}, +#line 327 "cfns.gperf" + {"wcstoumax", 99}, +#line 370 "cfns.gperf" + {"ldexpf", 99}, +#line 213 "cfns.gperf" + {"wcscmp", 89}, +#line 117 "cfns.gperf" + {"iswxdigit", 89}, +#line 376 "cfns.gperf" + {"log1p", 99}, +#line 120 "cfns.gperf" + {"ldexp", 89}, +#line 326 "cfns.gperf" + {"wcstoimax", 99}, +#line 56 "cfns.gperf" + {"div", 89}, +#line 304 "cfns.gperf" + {"cproj", 99}, +#line 208 "cfns.gperf" + {"vswprintf", 89}, +#line 126 "cfns.gperf" + {"longjmp", 89}, +#line 323 "cfns.gperf" + {"imaxdiv", 99}, +#line 201 "cfns.gperf" + {"towupper", 89} }; static const short lookup[] = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, - -1, -1, 1, -1, -1, -1, 2, -1, -1, -1, - -1, -1, 3, 4, -1, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, -1, -1, -1, 15, 16, - 17, 18, 19, 20, 21, 22, -1, -1, 23, 24, - -1, 25, 26, 27, -1, 28, 29, 30, 31, 32, - 33, -1, 34, 35, -1, 36, 37, 38, -1, 39, - 40, -1, 41, -1, -1, -1, -1, -1, -1, 42, - -1, 43, -1, 44, -1, 45, 46, -1, 47, -1, - 48, 49, 50, 51, 52, -1, -1, 53, 54, 55, - -1, -1, -1, 56, -1, 57, 58, -1, 59, 60, - 61, 62, 63, 64, 65, -1, 66, 67, -1, 68, - -1, 69, 70, 71, 72, 73, 74, 75, -1, -1, - -1, -1, -1, 76, 77, 78, -1, -1, 79, 80, - 81, 82, -1, 83, 84, -1, 85, 86, 87, -1, - 88, 89, 90, 91, -1, -1, -1, 92, -1, 93, - -1, 94, -1, 95, -1, 96, 97, -1, 98, -1, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - -1, 109, 110, 111, 112, -1, 113, -1, -1, 114, - -1, -1, -1, 115, -1, -1, -1, 116, 117, -1, - 118, -1, -1, -1, -1, 119, 120, 121, -1, 122, - 123, -1, -1, 124, -1, 125, 126, -1, 127, -1, - 128, -1, -1, 129, 130, -1, -1, -1, -1, -1, - -1, 131, 132, -1, -1, -1, -1, 133, 134, 135, - -1, -1, -1, -1, -1, 136, -1, 137, -1, -1, - -1, 138, -1, -1, -1, -1, -1, -1, 139, 140, - -1, 141, -1, -1, 142, -1, 143, -1, -1, 144, - -1, 145, -1, -1, -1, -1, 146, -1, -1, -1, - -1, -1, -1, 147, -1, -1, -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + 0, 1, -1, -1, -1, 2, -1, -1, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, -1, 21, 22, -1, + -1, -1, -1, -1, 23, 24, -1, -1, -1, 25, + -1, -1, -1, -1, 26, -1, 27, -1, 28, -1, + -1, 29, -1, -1, 30, 31, 32, 33, 34, 35, + -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, + -1, 37, 38, 39, 40, 41, 42, -1, 43, 44, + -1, 45, 46, -1, 47, 48, 49, -1, -1, -1, + 50, -1, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 52, 53, -1, -1, 54, 55, + 56, 57, -1, 58, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 60, -1, -1, 61, -1, 62, + 63, -1, -1, -1, 64, -1, -1, 65, -1, -1, + -1, 66, 67, -1, -1, -1, 68, -1, -1, -1, + 69, -1, 70, 71, -1, -1, 72, 73, 74, -1, + 75, -1, -1, -1, -1, 76, 77, 78, -1, -1, + 79, 80, 81, -1, -1, -1, -1, -1, 82, -1, + -1, -1, -1, 83, -1, -1, 84, 85, -1, -1, + 86, -1, -1, -1, -1, -1, -1, -1, 87, 88, + -1, -1, -1, 89, -1, -1, 90, 91, 92, -1, + -1, -1, -1, -1, -1, -1, -1, 93, -1, 94, + -1, -1, 95, -1, 96, -1, -1, 97, 98, -1, + -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, + -1, 100, -1, -1, -1, -1, -1, -1, -1, 101, + -1, 102, -1, -1, -1, 103, -1, -1, -1, -1, + -1, -1, -1, -1, 104, 105, -1, 106, -1, 107, + 108, -1, -1, -1, -1, 109, -1, -1, -1, -1, + -1, -1, 110, -1, -1, -1, -1, 111, -1, -1, + 112, -1, 113, -1, -1, 114, -1, -1, -1, -1, + 115, 116, -1, 117, 118, 119, 120, 121, -1, 122, + 123, 124, -1, -1, 125, 126, 127, 128, -1, -1, + -1, 129, 130, 131, -1, 132, -1, 133, -1, 134, + 135, -1, 136, -1, 137, -1, -1, -1, -1, 138, + 139, 140, 141, 142, 143, -1, 144, -1, 145, -1, + -1, -1, -1, -1, -1, 146, 147, 148, 149, -1, + -1, -1, 150, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, -1, 157, -1, -1, 158, -1, -1, + -1, 159, -1, -1, 160, -1, 161, -1, -1, -1, + 162, 163, -1, 164, -1, -1, -1, 165, -1, -1, + -1, 166, 167, -1, -1, 168, -1, -1, -1, -1, + 169, -1, 170, -1, 171, -1, -1, -1, 172, -1, + -1, -1, 173, 174, -1, 175, -1, -1, -1, -1, + -1, 176, -1, -1, -1, -1, -1, -1, -1, 177, + 178, 179, 180, -1, 181, 182, -1, -1, -1, -1, + -1, -1, -1, 183, 184, 185, -1, -1, 186, -1, + 187, -1, 188, -1, -1, -1, 189, 190, 191, 192, + -1, -1, 193, -1, -1, -1, 194, -1, -1, -1, + 195, -1, 196, 197, -1, 198, 199, 200, 201, -1, + 202, 203, 204, 205, 206, -1, -1, 207, -1, 208, + 209, 210, 211, 212, -1, -1, 213, 214, 215, -1, + 216, -1, -1, -1, -1, 217, 218, 219, 220, 221, + -1, -1, 222, -1, 223, -1, -1, 224, 225, -1, + 226, -1, 227, 228, 229, 230, -1, 231, 232, -1, + 233, -1, -1, -1, -1, -1, 234, 235, -1, -1, + -1, 236, 237, 238, -1, -1, 239, -1, 240, -1, + 241, -1, 242, 243, -1, -1, -1, -1, -1, 244, + -1, -1, -1, -1, -1, 245, 246, -1, -1, -1, + 247, -1, 248, -1, 249, -1, -1, -1, 250, -1, + -1, 251, 252, 253, 254, 255, -1, -1, -1, 256, + 257, -1, 258, 259, -1, -1, 260, -1, -1, -1, + 261, -1, 262, 263, 264, -1, 265, -1, -1, -1, + -1, -1, 266, -1, -1, -1, -1, 267, -1, -1, + -1, 268, 269, -1, -1, -1, 270, -1, 271, -1, + 272, -1, 273, -1, -1, -1, 274, -1, -1, -1, + 275, -1, 276, -1, -1, -1, -1, 277, -1, -1, + -1, -1, -1, -1, -1, 278, -1, -1, -1, -1, + 279, -1, -1, -1, 280, -1, 281, -1, 282, -1, + -1, 283, -1, -1, -1, -1, 284, -1, -1, -1, + -1, -1, -1, -1, 285, -1, -1, 286, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 287, -1, 288, + -1, -1, -1, 289, -1, -1, -1, 290, 291, -1, + -1, 292, -1, 293, -1, 294, 295, -1, -1, -1, + -1, -1, -1, 296, -1, -1, 297, 298, -1, -1, + 299, -1, 300, -1, -1, -1, 301, -1, -1, -1, + 302, -1, -1, 303, -1, 304, 305, -1, -1, -1, + -1, -1, -1, 306, -1, -1, -1, 307, -1, -1, + 308, 309, 310, -1, -1, -1, -1, 311, 312, -1, + -1, 313, 314, -1, 315, -1, 316, -1, -1, -1, + -1, 317, -1, -1, 318, -1, -1, -1, -1, -1, + -1, -1, 319, -1, -1, -1, 320, -1, -1, 321, + 322, -1, -1, -1, -1, -1, 323, -1, -1, 324, + -1, -1, 325, 326, 327, -1, -1, -1, -1, 328, + 329, 330, -1, 331, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 332, -1, -1, + 333, 334, -1, -1, -1, 335, -1, -1, 336, 337, + 338, 339, -1, 340, -1, -1, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 342, -1, -1, -1, -1, -1, 343, + 344, -1, 345, -1, 346, -1, -1, -1, -1, 347, + -1, -1, -1, 348, -1, 349, -1, -1, 350, 351, + 352, -1, 353, 354, -1, -1, -1, -1, -1, -1, + 355, 356, 357, -1, 358, 359, -1, 360, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 150, -1, -1, -1, -1, -1, - 151, -1, -1, 152, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 153, -1, -1, -1, + 361, -1, -1, -1, 362, -1, 363, -1, -1, 364, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, + 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 366, 367, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 155 + -1, -1, -1, -1, -1, -1, -1, 368, -1, 369, + -1, 370, 371, -1, -1, 372, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 373, + -1, -1, -1, -1, 374, -1, -1, -1, -1, -1, + -1, -1, -1, 375, -1, -1, -1, -1, -1, -1, + 376, -1, -1, -1, 377, -1, -1, -1, -1, -1, + -1, -1, 378, -1, 379, -1, 380, -1, 381, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 382, -1, 383, -1, -1, 384, 385, -1, -1, + -1, -1, -1, 386, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 387, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 388, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 389, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 390, + -1, 391, 392, 393, -1, 394, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 395, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 396, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 397, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 398, -1, 399, -1, -1, -1, -1, + -1, -1, -1, 400, -1, 401, -1, -1, -1, 402, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 403, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 404, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 405, -1, -1, -1, + -1, -1, 406, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 407, -1, -1, -1, + 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 409, 410, -1, + -1, -1, -1, -1, -1, -1, 411, -1, -1, -1, + -1, 412, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 413 }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) @@ -341,10 +1124,10 @@ libc_name::libc_name_p (register const char *str, register unsigned int len) if (index >= 0) { - register const char *s = wordlist[index]; + register const char *s = wordlist[index].name; if (*str == *s && !strcmp (str + 1, s + 1)) - return s; + return &wordlist[index]; } } } diff --git a/gcc/cp/except.c b/gcc/cp/except.c index 1c60b08..f2d7cd1 100644 --- a/gcc/cp/except.c +++ b/gcc/cp/except.c @@ -892,8 +892,17 @@ nothrow_libfn_p (const_tree fn) unless the system headers are playing rename tricks, and if they are, we don't want to be confused by them. */ id = DECL_NAME (fn); - return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id), - IDENTIFIER_LENGTH (id)); + const struct libc_name_struct *s + = libc_name::libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id)); + if (s == NULL) + return 0; + switch (s->c_ver) + { + case 89: return 1; + case 99: return !flag_iso || flag_isoc99; + case 11: return !flag_iso || flag_isoc11; + default: gcc_unreachable (); + } } /* Returns nonzero if an exception of type FROM will be caught by a -- 2.7.4