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