PR c++/19755
[official-gcc.git] / gcc / cp / cfns.h
blob5dc71ce46cbf1842fd91d00bed2aefd63f3984fb
1 /* ANSI-C code produced by gperf version 3.0.1 */
2 /* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C ../../gcc/gcc/cp/cfns.gperf */
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
31 #line 1 "../../gcc/gcc/cp/cfns.gperf"
33 #ifdef __GNUC__
34 __inline
35 #endif
36 static unsigned int hash (const char *, unsigned int);
37 #ifdef __GNUC__
38 __inline
39 #endif
40 const char * libc_name_p (const char *, unsigned int);
41 /* maximum key range = 391, duplicates = 0 */
43 #ifdef __GNUC__
44 __inline
45 #else
46 #ifdef __cplusplus
47 inline
48 #endif
49 #endif
50 static unsigned int
51 hash (register const char *str, register unsigned int len)
53 static const unsigned short asso_values[] =
55 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
56 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
57 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
58 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
59 400, 400, 400, 400, 400, 400, 400, 400, 0, 0,
60 1, 400, 400, 400, 400, 400, 400, 400, 400, 400,
61 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
62 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
63 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
64 400, 400, 400, 400, 400, 400, 400, 28, 90, 0,
65 95, 0, 51, 93, 114, 26, 109, 124, 5, 1,
66 6, 13, 37, 128, 3, 0, 0, 49, 38, 0,
67 104, 45, 0, 400, 400, 400, 400, 400, 400, 400,
68 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
69 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
70 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
71 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
72 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
73 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
74 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
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, 400, 400,
80 400, 400, 400, 400, 400, 400, 400
82 register int hval = len;
84 switch (hval)
86 default:
87 hval += asso_values[(unsigned char)str[5]+1];
88 /*FALLTHROUGH*/
89 case 5:
90 hval += asso_values[(unsigned char)str[4]];
91 /*FALLTHROUGH*/
92 case 4:
93 hval += asso_values[(unsigned char)str[3]];
94 /*FALLTHROUGH*/
95 case 3:
96 hval += asso_values[(unsigned char)str[2]];
97 /*FALLTHROUGH*/
98 case 2:
99 hval += asso_values[(unsigned char)str[1]];
100 /*FALLTHROUGH*/
101 case 1:
102 hval += asso_values[(unsigned char)str[0]];
103 break;
105 return hval + asso_values[(unsigned char)str[len - 1]];
108 #ifdef __GNUC__
109 __inline
110 #endif
111 const char *
112 libc_name_p (register const char *str, register unsigned int len)
114 enum
116 TOTAL_KEYWORDS = 156,
117 MIN_WORD_LENGTH = 3,
118 MAX_WORD_LENGTH = 10,
119 MIN_HASH_VALUE = 9,
120 MAX_HASH_VALUE = 399
123 static const char * const wordlist[] =
125 "wcsstr",
126 "strstr",
127 "cos",
128 "towctrans",
129 "memmove",
130 "wcstol",
131 "wcscoll",
132 "wcstombs",
133 "strtol",
134 "strcoll",
135 "wcslen",
136 "time",
137 "ctime",
138 "strlen",
139 "iswctype",
140 "wmemchr",
141 "wcsrchr",
142 "ceil",
143 "sin",
144 "strrchr",
145 "tan",
146 "iscntrl",
147 "acos",
148 "wmemmove",
149 "wcsrtombs",
150 "wctrans",
151 "wmemcmp",
152 "pow",
153 "atol",
154 "wcsncmp",
155 "memset",
156 "free",
157 "strncmp",
158 "wmemset",
159 "wcsspn",
160 "wcstoul",
161 "strspn",
162 "strtoul",
163 "asctime",
164 "atan2",
165 "asin",
166 "atan",
167 "ferror",
168 "iswalnum",
169 "wcscat",
170 "realloc",
171 "strcat",
172 "wcscpy",
173 "memcpy",
174 "strcpy",
175 "tolower",
176 "floor",
177 "iswcntrl",
178 "atoi",
179 "clearerr",
180 "swscanf",
181 "wcsncat",
182 "islower",
183 "strncat",
184 "btowc",
185 "localtime",
186 "wctomb",
187 "isalnum",
188 "isprint",
189 "mblen",
190 "wcstod",
191 "log10",
192 "strtod",
193 "wcrtomb",
194 "abs",
195 "setlocale",
196 "wcschr",
197 "mbrlen",
198 "memchr",
199 "strchr",
200 "labs",
201 "iswpunct",
202 "exit",
203 "sqrt",
204 "swprintf",
205 "wctype",
206 "mbsrtowcs",
207 "wcscspn",
208 "getenv",
209 "strcspn",
210 "towlower",
211 "atof",
212 "wcstok",
213 "localeconv",
214 "strtok",
215 "calloc",
216 "malloc",
217 "isalpha",
218 "iswlower",
219 "iswspace",
220 "wcsxfrm",
221 "signal",
222 "strxfrm",
223 "wcsftime",
224 "feof",
225 "strftime",
226 "wcscmp",
227 "fabs",
228 "memcmp",
229 "strcmp",
230 "vsprintf",
231 "fwide",
232 "gmtime",
233 "sprintf",
234 "exp",
235 "wmemcpy",
236 "iswprint",
237 "sscanf",
238 "wcsncpy",
239 "strncpy",
240 "isspace",
241 "toupper",
242 "wctob",
243 "div",
244 "mbtowc",
245 "ldiv",
246 "log",
247 "mktime",
248 "isupper",
249 "atexit",
250 "modf",
251 "mbstowcs",
252 "mbrtowc",
253 "ispunct",
254 "iswalpha",
255 "setvbuf",
256 "rand",
257 "srand",
258 "frexp",
259 "towupper",
260 "mbsinit",
261 "cosh",
262 "vswprintf",
263 "iswupper",
264 "wcspbrk",
265 "fmod",
266 "strpbrk",
267 "sinh",
268 "tanh",
269 "iswdigit",
270 "clock",
271 "longjmp",
272 "ldexp",
273 "setbuf",
274 "fseek",
275 "iswgraph",
276 "difftime",
277 "iswxdigit",
278 "isdigit",
279 "isxdigit",
280 "isgraph"
283 static const short lookup[] =
285 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
286 -1, -1, 1, -1, -1, -1, 2, -1, -1, -1,
287 -1, -1, 3, 4, -1, 5, 6, 7, 8, 9,
288 10, 11, 12, 13, 14, -1, -1, -1, 15, 16,
289 17, 18, 19, 20, 21, 22, -1, -1, 23, 24,
290 -1, 25, 26, 27, -1, 28, 29, 30, 31, 32,
291 33, -1, 34, 35, -1, 36, 37, 38, -1, 39,
292 40, -1, 41, -1, -1, -1, -1, -1, -1, 42,
293 -1, 43, -1, 44, -1, 45, 46, -1, 47, -1,
294 48, 49, 50, 51, 52, -1, -1, 53, 54, 55,
295 -1, -1, -1, 56, -1, 57, 58, -1, 59, 60,
296 61, 62, 63, 64, 65, -1, 66, 67, -1, 68,
297 -1, 69, 70, 71, 72, 73, 74, 75, -1, -1,
298 -1, -1, -1, 76, 77, 78, -1, -1, 79, 80,
299 81, 82, -1, 83, 84, -1, 85, 86, 87, -1,
300 88, 89, 90, 91, -1, -1, -1, 92, -1, 93,
301 -1, 94, -1, 95, -1, 96, 97, -1, 98, -1,
302 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
303 -1, 109, 110, 111, 112, -1, 113, -1, -1, 114,
304 -1, -1, -1, 115, -1, -1, -1, 116, 117, -1,
305 118, -1, -1, -1, -1, 119, 120, 121, -1, 122,
306 123, -1, -1, 124, -1, 125, 126, -1, 127, -1,
307 128, -1, -1, 129, 130, -1, -1, -1, -1, -1,
308 -1, 131, 132, -1, -1, -1, -1, 133, 134, 135,
309 -1, -1, -1, -1, -1, 136, -1, 137, -1, -1,
310 -1, 138, -1, -1, -1, -1, -1, -1, 139, 140,
311 -1, 141, -1, -1, 142, -1, 143, -1, -1, 144,
312 -1, 145, -1, -1, -1, -1, 146, -1, -1, -1,
313 -1, -1, -1, 147, -1, -1, -1, -1, -1, 148,
314 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
315 -1, -1, -1, -1, 149, -1, -1, -1, -1, -1,
316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
317 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
318 -1, -1, -1, -1, 150, -1, -1, -1, -1, -1,
319 151, -1, -1, 152, -1, -1, -1, -1, -1, -1,
320 -1, -1, -1, -1, -1, -1, 153, -1, -1, -1,
321 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
322 -1, -1, -1, 154, -1, -1, -1, -1, -1, -1,
323 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
324 -1, -1, -1, -1, -1, -1, -1, -1, -1, 155
327 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
329 register int key = hash (str, len);
331 if (key <= MAX_HASH_VALUE && key >= 0)
333 register int index = lookup[key];
335 if (index >= 0)
337 register const char *s = wordlist[index];
339 if (*str == *s && !strcmp (str + 1, s + 1))
340 return s;
344 return 0;