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