00001
00002
00003
00004 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
00005 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
00006 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
00007 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
00008 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
00009 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
00010 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
00011 && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
00012 && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
00013 && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
00014 && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
00015 && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
00016 && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
00017 && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
00018 && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
00019 && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
00020 && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
00021 && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
00022 && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
00023 && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
00024 && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
00025 && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
00026 && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
00027
00028 #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
00029 #endif
00030
00031 #line 1 "../../gcc/gcc/cp/cfns.gperf"
00032
00033 #ifdef __GNUC__
00034 __inline
00035 #endif
00036 static unsigned int hash (const char *, unsigned int);
00037 #ifdef __GNUC__
00038 __inline
00039 #endif
00040 const char * libc_name_p (const char *, unsigned int);
00041
00042
00043 #ifdef __GNUC__
00044 __inline
00045 #else
00046 #ifdef __cplusplus
00047 inline
00048 #endif
00049 #endif
00050 static unsigned int
00051 hash (register const char *str, register unsigned int len)
00052 {
00053 static const unsigned short asso_values[] =
00054 {
00055 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00056 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00057 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00058 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00059 400, 400, 400, 400, 400, 400, 400, 400, 0, 0,
00060 1, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00061 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00062 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00063 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00064 400, 400, 400, 400, 400, 400, 400, 28, 90, 0,
00065 95, 0, 51, 93, 114, 26, 109, 124, 5, 1,
00066 6, 13, 37, 128, 3, 0, 0, 49, 38, 0,
00067 104, 45, 0, 400, 400, 400, 400, 400, 400, 400,
00068 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00069 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00070 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00071 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00072 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00073 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00074 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00075 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00076 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00077 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00078 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00079 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
00080 400, 400, 400, 400, 400, 400, 400
00081 };
00082 register int hval = len;
00083
00084 switch (hval)
00085 {
00086 default:
00087 hval += asso_values[(unsigned char)str[5]+1];
00088
00089 case 5:
00090 hval += asso_values[(unsigned char)str[4]];
00091
00092 case 4:
00093 hval += asso_values[(unsigned char)str[3]];
00094
00095 case 3:
00096 hval += asso_values[(unsigned char)str[2]];
00097
00098 case 2:
00099 hval += asso_values[(unsigned char)str[1]];
00100
00101 case 1:
00102 hval += asso_values[(unsigned char)str[0]];
00103 break;
00104 }
00105 return hval + asso_values[(unsigned char)str[len - 1]];
00106 }
00107
00108 #ifdef __GNUC__
00109 __inline
00110 #endif
00111 const char *
00112 libc_name_p (register const char *str, register unsigned int len)
00113 {
00114 enum
00115 {
00116 TOTAL_KEYWORDS = 156,
00117 MIN_WORD_LENGTH = 3,
00118 MAX_WORD_LENGTH = 10,
00119 MIN_HASH_VALUE = 9,
00120 MAX_HASH_VALUE = 399
00121 };
00122
00123 static const char * const wordlist[] =
00124 {
00125 "wcsstr",
00126 "strstr",
00127 "cos",
00128 "towctrans",
00129 "memmove",
00130 "wcstol",
00131 "wcscoll",
00132 "wcstombs",
00133 "strtol",
00134 "strcoll",
00135 "wcslen",
00136 "time",
00137 "ctime",
00138 "strlen",
00139 "iswctype",
00140 "wmemchr",
00141 "wcsrchr",
00142 "ceil",
00143 "sin",
00144 "strrchr",
00145 "tan",
00146 "iscntrl",
00147 "acos",
00148 "wmemmove",
00149 "wcsrtombs",
00150 "wctrans",
00151 "wmemcmp",
00152 "pow",
00153 "atol",
00154 "wcsncmp",
00155 "memset",
00156 "free",
00157 "strncmp",
00158 "wmemset",
00159 "wcsspn",
00160 "wcstoul",
00161 "strspn",
00162 "strtoul",
00163 "asctime",
00164 "atan2",
00165 "asin",
00166 "atan",
00167 "ferror",
00168 "iswalnum",
00169 "wcscat",
00170 "realloc",
00171 "strcat",
00172 "wcscpy",
00173 "memcpy",
00174 "strcpy",
00175 "tolower",
00176 "floor",
00177 "iswcntrl",
00178 "atoi",
00179 "clearerr",
00180 "swscanf",
00181 "wcsncat",
00182 "islower",
00183 "strncat",
00184 "btowc",
00185 "localtime",
00186 "wctomb",
00187 "isalnum",
00188 "isprint",
00189 "mblen",
00190 "wcstod",
00191 "log10",
00192 "strtod",
00193 "wcrtomb",
00194 "abs",
00195 "setlocale",
00196 "wcschr",
00197 "mbrlen",
00198 "memchr",
00199 "strchr",
00200 "labs",
00201 "iswpunct",
00202 "exit",
00203 "sqrt",
00204 "swprintf",
00205 "wctype",
00206 "mbsrtowcs",
00207 "wcscspn",
00208 "getenv",
00209 "strcspn",
00210 "towlower",
00211 "atof",
00212 "wcstok",
00213 "localeconv",
00214 "strtok",
00215 "calloc",
00216 "malloc",
00217 "isalpha",
00218 "iswlower",
00219 "iswspace",
00220 "wcsxfrm",
00221 "signal",
00222 "strxfrm",
00223 "wcsftime",
00224 "feof",
00225 "strftime",
00226 "wcscmp",
00227 "fabs",
00228 "memcmp",
00229 "strcmp",
00230 "vsprintf",
00231 "fwide",
00232 "gmtime",
00233 "sprintf",
00234 "exp",
00235 "wmemcpy",
00236 "iswprint",
00237 "sscanf",
00238 "wcsncpy",
00239 "strncpy",
00240 "isspace",
00241 "toupper",
00242 "wctob",
00243 "div",
00244 "mbtowc",
00245 "ldiv",
00246 "log",
00247 "mktime",
00248 "isupper",
00249 "atexit",
00250 "modf",
00251 "mbstowcs",
00252 "mbrtowc",
00253 "ispunct",
00254 "iswalpha",
00255 "setvbuf",
00256 "rand",
00257 "srand",
00258 "frexp",
00259 "towupper",
00260 "mbsinit",
00261 "cosh",
00262 "vswprintf",
00263 "iswupper",
00264 "wcspbrk",
00265 "fmod",
00266 "strpbrk",
00267 "sinh",
00268 "tanh",
00269 "iswdigit",
00270 "clock",
00271 "longjmp",
00272 "ldexp",
00273 "setbuf",
00274 "fseek",
00275 "iswgraph",
00276 "difftime",
00277 "iswxdigit",
00278 "isdigit",
00279 "isxdigit",
00280 "isgraph"
00281 };
00282
00283 static const short lookup[] =
00284 {
00285 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
00286 -1, -1, 1, -1, -1, -1, 2, -1, -1, -1,
00287 -1, -1, 3, 4, -1, 5, 6, 7, 8, 9,
00288 10, 11, 12, 13, 14, -1, -1, -1, 15, 16,
00289 17, 18, 19, 20, 21, 22, -1, -1, 23, 24,
00290 -1, 25, 26, 27, -1, 28, 29, 30, 31, 32,
00291 33, -1, 34, 35, -1, 36, 37, 38, -1, 39,
00292 40, -1, 41, -1, -1, -1, -1, -1, -1, 42,
00293 -1, 43, -1, 44, -1, 45, 46, -1, 47, -1,
00294 48, 49, 50, 51, 52, -1, -1, 53, 54, 55,
00295 -1, -1, -1, 56, -1, 57, 58, -1, 59, 60,
00296 61, 62, 63, 64, 65, -1, 66, 67, -1, 68,
00297 -1, 69, 70, 71, 72, 73, 74, 75, -1, -1,
00298 -1, -1, -1, 76, 77, 78, -1, -1, 79, 80,
00299 81, 82, -1, 83, 84, -1, 85, 86, 87, -1,
00300 88, 89, 90, 91, -1, -1, -1, 92, -1, 93,
00301 -1, 94, -1, 95, -1, 96, 97, -1, 98, -1,
00302 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
00303 -1, 109, 110, 111, 112, -1, 113, -1, -1, 114,
00304 -1, -1, -1, 115, -1, -1, -1, 116, 117, -1,
00305 118, -1, -1, -1, -1, 119, 120, 121, -1, 122,
00306 123, -1, -1, 124, -1, 125, 126, -1, 127, -1,
00307 128, -1, -1, 129, 130, -1, -1, -1, -1, -1,
00308 -1, 131, 132, -1, -1, -1, -1, 133, 134, 135,
00309 -1, -1, -1, -1, -1, 136, -1, 137, -1, -1,
00310 -1, 138, -1, -1, -1, -1, -1, -1, 139, 140,
00311 -1, 141, -1, -1, 142, -1, 143, -1, -1, 144,
00312 -1, 145, -1, -1, -1, -1, 146, -1, -1, -1,
00313 -1, -1, -1, 147, -1, -1, -1, -1, -1, 148,
00314 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00315 -1, -1, -1, -1, 149, -1, -1, -1, -1, -1,
00316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00317 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00318 -1, -1, -1, -1, 150, -1, -1, -1, -1, -1,
00319 151, -1, -1, 152, -1, -1, -1, -1, -1, -1,
00320 -1, -1, -1, -1, -1, -1, 153, -1, -1, -1,
00321 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00322 -1, -1, -1, 154, -1, -1, -1, -1, -1, -1,
00323 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00324 -1, -1, -1, -1, -1, -1, -1, -1, -1, 155
00325 };
00326
00327 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
00328 {
00329 register int key = hash (str, len);
00330
00331 if (key <= MAX_HASH_VALUE && key >= 0)
00332 {
00333 register int index = lookup[key];
00334
00335 if (index >= 0)
00336 {
00337 register const char *s = wordlist[index];
00338
00339 if (*str == *s && !strcmp (str + 1, s + 1))
00340 return s;
00341 }
00342 }
00343 }
00344 return 0;
00345 }