Merge branch 'vendor/GCC50' - gcc 5.0 snapshot 1 FEB 2015
[dragonfly.git] / contrib / gcc-5.0 / gcc / cp / cfns.h
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-2015 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 #endif
57 const char * libc_name_p (const char *, unsigned int);
58 /* maximum key range = 391, duplicates = 0 */
59
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)
69 {
70   static const unsigned short asso_values[] =
71     {
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
98     };
99   register int hval = len;
100
101   switch (hval)
102     {
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;
121     }
122   return hval + asso_values[(unsigned char)str[len - 1]];
123 }
124
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)
133 {
134   enum
135     {
136       TOTAL_KEYWORDS = 156,
137       MIN_WORD_LENGTH = 3,
138       MAX_WORD_LENGTH = 10,
139       MIN_HASH_VALUE = 9,
140       MAX_HASH_VALUE = 399
141     };
142
143   static const char * const wordlist[] =
144     {
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"
301     };
302
303   static const short lookup[] =
304     {
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
345     };
346
347   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
348     {
349       register int key = hash (str, len);
350
351       if (key <= MAX_HASH_VALUE && key >= 0)
352         {
353           register int index = lookup[key];
354
355           if (index >= 0)
356             {
357               register const char *s = wordlist[index];
358
359               if (*str == *s && !strcmp (str + 1, s + 1))
360                 return s;
361             }
362         }
363     }
364   return 0;
365 }