1 /* ANSI-C code produced by gperf version 3.0.3 */
2 /* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf */
3
4 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
5 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
6 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
7 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
8 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
9 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
10 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
11 && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
12 && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
13 && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
14 && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
15 && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
16 && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
17 && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
18 && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
19 && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
20 && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
21 && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
22 && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
23 && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
24 && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
25 && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
26 && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
27 /* The character set is not based on ISO-646. */
28 #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
29 #endif
30
31 #line 1 "cfns.gperf"
32
33 /* Copyright (C) 2000-2013 Free Software Foundation, Inc.
34
35 This file is part of GCC.
36
37 GCC is free software; you can redistribute it and/or modify it under
38 the terms of the GNU General Public License as published by the Free
39 Software Foundation; either version 3, or (at your option) any later
40 version.
41
42 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
43 WARRANTY; without even the implied warranty of MERCHANTABILITY or
44 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
45 for more details.
46
47 You should have received a copy of the GNU General Public License
48 along with GCC; see the file COPYING3. If not see
49 <http://www.gnu.org/licenses/>. */
50 #ifdef __GNUC__
51 __inline
52 #endif
53 static unsigned int hash (const char *, unsigned int);
54 #ifdef __GNUC__
55 __inline
56 #ifdef __GNUC_STDC_INLINE__
57 __attribute__ ((__gnu_inline__)) __attribute__((__always_inline__))
58 #endif
59 #endif
60 const char * libc_name_p (const char *, unsigned int);
61 /* maximum key range = 391, duplicates = 0 */
62
63 #ifdef __GNUC__
64 __inline
65 #else
66 #ifdef __cplusplus
67 inline
68 #endif
69 #endif
70 static unsigned int
hash(register const char * str,register unsigned int len)71 hash (register const char *str, register unsigned int len)
72 {
73 static const unsigned short asso_values[] =
74 {
75 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
76 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
77 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
78 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
79 400, 400, 400, 400, 400, 400, 400, 400, 0, 0,
80 1, 400, 400, 400, 400, 400, 400, 400, 400, 400,
81 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
82 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
83 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
84 400, 400, 400, 400, 400, 400, 400, 28, 90, 0,
85 95, 0, 51, 93, 114, 26, 109, 124, 5, 1,
86 6, 13, 37, 128, 3, 0, 0, 49, 38, 0,
87 104, 45, 0, 400, 400, 400, 400, 400, 400, 400,
88 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
89 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
90 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
91 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
92 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
93 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
94 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
95 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
96 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
97 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
98 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
99 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
100 400, 400, 400, 400, 400, 400, 400
101 };
102 register int hval = len;
103
104 switch (hval)
105 {
106 default:
107 hval += asso_values[(unsigned char)str[5]+1];
108 /*FALLTHROUGH*/
109 case 5:
110 hval += asso_values[(unsigned char)str[4]];
111 /*FALLTHROUGH*/
112 case 4:
113 hval += asso_values[(unsigned char)str[3]];
114 /*FALLTHROUGH*/
115 case 3:
116 hval += asso_values[(unsigned char)str[2]];
117 /*FALLTHROUGH*/
118 case 2:
119 hval += asso_values[(unsigned char)str[1]];
120 /*FALLTHROUGH*/
121 case 1:
122 hval += asso_values[(unsigned char)str[0]];
123 break;
124 }
125 return hval + asso_values[(unsigned char)str[len - 1]];
126 }
127
128 #ifdef __GNUC__
129 __inline
130 #ifdef __GNUC_STDC_INLINE__
131 __attribute__ ((__gnu_inline__))
132 #endif
133 #endif
134 const char *
libc_name_p(register const char * str,register unsigned int len)135 libc_name_p (register const char *str, register unsigned int len)
136 {
137 enum
138 {
139 TOTAL_KEYWORDS = 156,
140 MIN_WORD_LENGTH = 3,
141 MAX_WORD_LENGTH = 10,
142 MIN_HASH_VALUE = 9,
143 MAX_HASH_VALUE = 399
144 };
145
146 static const char * const wordlist[] =
147 {
148 "wcsstr",
149 "strstr",
150 "cos",
151 "towctrans",
152 "memmove",
153 "wcstol",
154 "wcscoll",
155 "wcstombs",
156 "strtol",
157 "strcoll",
158 "wcslen",
159 "time",
160 "ctime",
161 "strlen",
162 "iswctype",
163 "wmemchr",
164 "wcsrchr",
165 "ceil",
166 "sin",
167 "strrchr",
168 "tan",
169 "iscntrl",
170 "acos",
171 "wmemmove",
172 "wcsrtombs",
173 "wctrans",
174 "wmemcmp",
175 "pow",
176 "atol",
177 "wcsncmp",
178 "memset",
179 "free",
180 "strncmp",
181 "wmemset",
182 "wcsspn",
183 "wcstoul",
184 "strspn",
185 "strtoul",
186 "asctime",
187 "atan2",
188 "asin",
189 "atan",
190 "ferror",
191 "iswalnum",
192 "wcscat",
193 "realloc",
194 "strcat",
195 "wcscpy",
196 "memcpy",
197 "strcpy",
198 "tolower",
199 "floor",
200 "iswcntrl",
201 "atoi",
202 "clearerr",
203 "swscanf",
204 "wcsncat",
205 "islower",
206 "strncat",
207 "btowc",
208 "localtime",
209 "wctomb",
210 "isalnum",
211 "isprint",
212 "mblen",
213 "wcstod",
214 "log10",
215 "strtod",
216 "wcrtomb",
217 "abs",
218 "setlocale",
219 "wcschr",
220 "mbrlen",
221 "memchr",
222 "strchr",
223 "labs",
224 "iswpunct",
225 "exit",
226 "sqrt",
227 "swprintf",
228 "wctype",
229 "mbsrtowcs",
230 "wcscspn",
231 "getenv",
232 "strcspn",
233 "towlower",
234 "atof",
235 "wcstok",
236 "localeconv",
237 "strtok",
238 "calloc",
239 "malloc",
240 "isalpha",
241 "iswlower",
242 "iswspace",
243 "wcsxfrm",
244 "signal",
245 "strxfrm",
246 "wcsftime",
247 "feof",
248 "strftime",
249 "wcscmp",
250 "fabs",
251 "memcmp",
252 "strcmp",
253 "vsprintf",
254 "fwide",
255 "gmtime",
256 "sprintf",
257 "exp",
258 "wmemcpy",
259 "iswprint",
260 "sscanf",
261 "wcsncpy",
262 "strncpy",
263 "isspace",
264 "toupper",
265 "wctob",
266 "div",
267 "mbtowc",
268 "ldiv",
269 "log",
270 "mktime",
271 "isupper",
272 "atexit",
273 "modf",
274 "mbstowcs",
275 "mbrtowc",
276 "ispunct",
277 "iswalpha",
278 "setvbuf",
279 "rand",
280 "srand",
281 "frexp",
282 "towupper",
283 "mbsinit",
284 "cosh",
285 "vswprintf",
286 "iswupper",
287 "wcspbrk",
288 "fmod",
289 "strpbrk",
290 "sinh",
291 "tanh",
292 "iswdigit",
293 "clock",
294 "longjmp",
295 "ldexp",
296 "setbuf",
297 "fseek",
298 "iswgraph",
299 "difftime",
300 "iswxdigit",
301 "isdigit",
302 "isxdigit",
303 "isgraph"
304 };
305
306 static const short lookup[] =
307 {
308 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
309 -1, -1, 1, -1, -1, -1, 2, -1, -1, -1,
310 -1, -1, 3, 4, -1, 5, 6, 7, 8, 9,
311 10, 11, 12, 13, 14, -1, -1, -1, 15, 16,
312 17, 18, 19, 20, 21, 22, -1, -1, 23, 24,
313 -1, 25, 26, 27, -1, 28, 29, 30, 31, 32,
314 33, -1, 34, 35, -1, 36, 37, 38, -1, 39,
315 40, -1, 41, -1, -1, -1, -1, -1, -1, 42,
316 -1, 43, -1, 44, -1, 45, 46, -1, 47, -1,
317 48, 49, 50, 51, 52, -1, -1, 53, 54, 55,
318 -1, -1, -1, 56, -1, 57, 58, -1, 59, 60,
319 61, 62, 63, 64, 65, -1, 66, 67, -1, 68,
320 -1, 69, 70, 71, 72, 73, 74, 75, -1, -1,
321 -1, -1, -1, 76, 77, 78, -1, -1, 79, 80,
322 81, 82, -1, 83, 84, -1, 85, 86, 87, -1,
323 88, 89, 90, 91, -1, -1, -1, 92, -1, 93,
324 -1, 94, -1, 95, -1, 96, 97, -1, 98, -1,
325 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
326 -1, 109, 110, 111, 112, -1, 113, -1, -1, 114,
327 -1, -1, -1, 115, -1, -1, -1, 116, 117, -1,
328 118, -1, -1, -1, -1, 119, 120, 121, -1, 122,
329 123, -1, -1, 124, -1, 125, 126, -1, 127, -1,
330 128, -1, -1, 129, 130, -1, -1, -1, -1, -1,
331 -1, 131, 132, -1, -1, -1, -1, 133, 134, 135,
332 -1, -1, -1, -1, -1, 136, -1, 137, -1, -1,
333 -1, 138, -1, -1, -1, -1, -1, -1, 139, 140,
334 -1, 141, -1, -1, 142, -1, 143, -1, -1, 144,
335 -1, 145, -1, -1, -1, -1, 146, -1, -1, -1,
336 -1, -1, -1, 147, -1, -1, -1, -1, -1, 148,
337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
338 -1, -1, -1, -1, 149, -1, -1, -1, -1, -1,
339 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
340 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
341 -1, -1, -1, -1, 150, -1, -1, -1, -1, -1,
342 151, -1, -1, 152, -1, -1, -1, -1, -1, -1,
343 -1, -1, -1, -1, -1, -1, 153, -1, -1, -1,
344 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
345 -1, -1, -1, 154, -1, -1, -1, -1, -1, -1,
346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
347 -1, -1, -1, -1, -1, -1, -1, -1, -1, 155
348 };
349
350 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
351 {
352 register int key = hash (str, len);
353
354 if (key <= MAX_HASH_VALUE && key >= 0)
355 {
356 register int index = lookup[key];
357
358 if (index >= 0)
359 {
360 register const char *s = wordlist[index];
361
362 if (*str == *s && !strcmp (str + 1, s + 1))
363 return s;
364 }
365 }
366 }
367 return 0;
368 }
369