Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
[dragonfly.git] / contrib / gcc-3.4 / gcc / cp / cfns.h
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  */
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 "../../gcc/gcc/cp/cfns.gperf"
32
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 */
42
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)
52 {
53   static const unsigned short asso_values[] =
54     {
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
81     };
82   register int hval = len;
83
84   switch (hval)
85     {
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;
104     }
105   return hval + asso_values[(unsigned char)str[len - 1]];
106 }
107
108 #ifdef __GNUC__
109 __inline
110 #endif
111 const char *
112 libc_name_p (register const char *str, register unsigned int len)
113 {
114   enum
115     {
116       TOTAL_KEYWORDS = 156,
117       MIN_WORD_LENGTH = 3,
118       MAX_WORD_LENGTH = 10,
119       MIN_HASH_VALUE = 9,
120       MAX_HASH_VALUE = 399
121     };
122
123   static const char * const wordlist[] =
124     {
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"
281     };
282
283   static const short lookup[] =
284     {
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
325     };
326
327   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
328     {
329       register int key = hash (str, len);
330
331       if (key <= MAX_HASH_VALUE && key >= 0)
332         {
333           register int index = lookup[key];
334
335           if (index >= 0)
336             {
337               register const char *s = wordlist[index];
338
339               if (*str == *s && !strcmp (str + 1, s + 1))
340                 return s;
341             }
342         }
343     }
344   return 0;
345 }