Commit bc6efdcb authored by Kai Germaschewski's avatar Kai Germaschewski

kbuild: Fix genksyms __typeof__ handling

genksyms used to fail generating a checksum for a symbol which was
defined using __typeof__.

This minimal patch fixes it to recognize the case which occurs in the
kernel, it's not a complete correct typeof handling, but it serves our
needs.
parent 57146c8a
/* ANSI-C code produced by gperf version 2.7.2 */
/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */
struct resword { const char *name; int token; };
/* maximum key range = 101, duplicates = 0 */
/* maximum key range = 109, duplicates = 0 */
#ifdef __GNUC__
__inline
......@@ -15,32 +15,32 @@ is_reserved_hash (register const char *str, register unsigned int len)
{
static const unsigned char asso_values[] =
{
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 5,
105, 105, 105, 105, 105, 105, 0, 105, 105, 105,
0, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 0, 105, 0, 105, 20,
25, 0, 35, 30, 105, 20, 105, 105, 40, 30,
30, 0, 0, 105, 0, 0, 0, 15, 5, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 5,
113, 113, 113, 113, 113, 113, 0, 113, 113, 113,
0, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 0, 113, 0, 113, 20,
25, 0, 35, 30, 113, 20, 113, 113, 40, 30,
30, 0, 0, 113, 0, 51, 0, 15, 5, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113
};
return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
}
......@@ -53,23 +53,22 @@ is_reserved_word (register const char *str, register unsigned int len)
{
enum
{
TOTAL_KEYWORDS = 39,
TOTAL_KEYWORDS = 41,
MIN_WORD_LENGTH = 3,
MAX_WORD_LENGTH = 17,
MIN_HASH_VALUE = 4,
MAX_HASH_VALUE = 104
MAX_HASH_VALUE = 112
};
static const struct resword wordlist[] =
{
{""}, {""}, {""}, {""},
{"auto", AUTO_KEYW},
{"short", SHORT_KEYW},
{"struct", STRUCT_KEYW},
{""}, {""},
{"__asm__", ASM_KEYW},
{"restrict", RESTRICT_KEYW},
{""},
{"_restrict", RESTRICT_KEYW},
{"__signed__", SIGNED_KEYW},
{"__typeof__", TYPEOF_KEYW},
{"__attribute", ATTRIBUTE_KEYW},
{"__restrict__", RESTRICT_KEYW},
{"__attribute__", ATTRIBUTE_KEYW},
......@@ -82,46 +81,52 @@ is_reserved_word (register const char *str, register unsigned int len)
{"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
{"int", INT_KEYW},
{"char", CHAR_KEYW},
{""},
{"static", STATIC_KEYW},
{""}, {""},
{"__const", CONST_KEYW},
{"__inline", INLINE_KEYW},
{"__const__", CONST_KEYW},
{"__inline__", INLINE_KEYW},
{""}, {""},
{"__signed", SIGNED_KEYW},
{""},
{""}, {""}, {""}, {""},
{"__asm", ASM_KEYW},
{"extern", EXTERN_KEYW},
{""},
{"register", REGISTER_KEYW},
{""},
{"float", FLOAT_KEYW},
{""},
{"typeof", TYPEOF_KEYW},
{"typedef", TYPEDEF_KEYW},
{""}, {""},
{"_Bool", BOOL_KEYW},
{"double", DOUBLE_KEYW},
{""},
{"unsigned", UNSIGNED_KEYW},
{""}, {""},
{"enum", ENUM_KEYW},
{""}, {""}, {""},
{"volatile", VOLATILE_KEYW},
{"void", VOID_KEYW},
{"const", CONST_KEYW},
{""}, {""}, {""}, {""}, {""},
{"signed", SIGNED_KEYW},
{"short", SHORT_KEYW},
{"struct", STRUCT_KEYW},
{""},
{"restrict", RESTRICT_KEYW},
{""},
{"__signed__", SIGNED_KEYW},
{""},
{"asm", ASM_KEYW},
{""}, {""},
{"inline", INLINE_KEYW},
{""}, {""}, {""},
{"union", UNION_KEYW},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
{"long", LONG_KEYW}
{"static", STATIC_KEYW},
{""}, {""}, {""}, {""}, {""}, {""},
{"__signed", SIGNED_KEYW},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
{"unsigned", UNSIGNED_KEYW},
{""}, {""}, {""}, {""},
{"long", LONG_KEYW},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
{"signed", SIGNED_KEYW}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
......
......@@ -46,3 +46,5 @@ union, UNION_KEYW
unsigned, UNSIGNED_KEYW
void, VOID_KEYW
volatile, VOLATILE_KEYW
typeof, TYPEOF_KEYW
__typeof__, TYPEOF_KEYW
......@@ -2061,21 +2061,22 @@ fini:
#define UNSIGNED_KEYW 278
#define VOID_KEYW 279
#define VOLATILE_KEYW 280
#define EXPORT_SYMBOL_KEYW 281
#define ASM_PHRASE 282
#define ATTRIBUTE_PHRASE 283
#define BRACE_PHRASE 284
#define BRACKET_PHRASE 285
#define EXPRESSION_PHRASE 286
#define CHAR 287
#define DOTS 288
#define IDENT 289
#define INT 290
#define REAL 291
#define STRING 292
#define TYPE 293
#define OTHER 294
#define FILENAME 295
#define TYPEOF_KEYW 281
#define EXPORT_SYMBOL_KEYW 282
#define ASM_PHRASE 283
#define ATTRIBUTE_PHRASE 284
#define BRACE_PHRASE 285
#define BRACKET_PHRASE 286
#define EXPRESSION_PHRASE 287
#define CHAR 288
#define DOTS 289
#define IDENT 290
#define INT 291
#define REAL 292
#define STRING 293
#define TYPE 294
#define OTHER 295
#define FILENAME 296
extern YYSTYPE yylval;
......@@ -28,21 +28,22 @@
#define UNSIGNED_KEYW 278
#define VOID_KEYW 279
#define VOLATILE_KEYW 280
#define EXPORT_SYMBOL_KEYW 281
#define ASM_PHRASE 282
#define ATTRIBUTE_PHRASE 283
#define BRACE_PHRASE 284
#define BRACKET_PHRASE 285
#define EXPRESSION_PHRASE 286
#define CHAR 287
#define DOTS 288
#define IDENT 289
#define INT 290
#define REAL 291
#define STRING 292
#define TYPE 293
#define OTHER 294
#define FILENAME 295
#define TYPEOF_KEYW 281
#define EXPORT_SYMBOL_KEYW 282
#define ASM_PHRASE 283
#define ATTRIBUTE_PHRASE 284
#define BRACE_PHRASE 285
#define BRACKET_PHRASE 286
#define EXPRESSION_PHRASE 287
#define CHAR 288
#define DOTS 289
#define IDENT 290
#define INT 291
#define REAL 292
#define STRING 293
#define TYPE 294
#define OTHER 295
#define FILENAME 296
#line 24 "scripts/genksyms/parse.y"
......@@ -91,26 +92,26 @@ remove_list(struct string_list **pb, struct string_list **pe)
#define YYFINAL 168
#define YYFINAL 172
#define YYFLAG -32768
#define YYNTBASE 51
#define YYNTBASE 52
#define YYTRANSLATE(x) ((unsigned)(x) <= 295 ? yytranslate[x] : 95)
#define YYTRANSLATE(x) ((unsigned)(x) <= 296 ? yytranslate[x] : 96)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 46,
47, 45, 2, 44, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 50, 42, 2,
48, 2, 2, 2, 2, 2, 2, 2, 2, 2,
47, 48, 2, 45, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 51, 43, 2,
49, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 49, 2, 43, 2, 2, 2, 2, 2,
2, 2, 50, 2, 44, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
......@@ -127,7 +128,7 @@ static const char yytranslate[] = { 0,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41
37, 38, 39, 40, 41, 42
};
#if YYDEBUG != 0
......@@ -135,70 +136,71 @@ static const short yyprhs[] = { 0,
0, 2, 5, 6, 9, 10, 14, 16, 18, 20,
22, 25, 28, 32, 33, 35, 37, 41, 46, 47,
49, 51, 54, 56, 58, 60, 62, 64, 66, 68,
70, 72, 75, 78, 81, 85, 89, 93, 96, 99,
102, 104, 106, 108, 110, 112, 114, 116, 118, 120,
122, 124, 127, 128, 130, 132, 135, 137, 139, 141,
143, 146, 148, 150, 155, 160, 163, 167, 171, 174,
176, 178, 180, 185, 190, 193, 197, 201, 204, 206,
210, 211, 213, 215, 219, 222, 225, 227, 228, 230,
232, 237, 242, 245, 249, 253, 257, 258, 260, 263,
267, 271, 272, 274, 276, 279, 283, 286, 287, 289,
291, 295, 298, 301, 303, 306, 307, 309, 312, 313,
315
70, 72, 77, 80, 83, 86, 90, 94, 98, 101,
104, 107, 109, 111, 113, 115, 117, 119, 121, 123,
125, 127, 129, 132, 133, 135, 137, 140, 142, 144,
146, 148, 151, 153, 155, 160, 165, 168, 172, 176,
179, 181, 183, 185, 190, 195, 198, 202, 206, 209,
211, 215, 216, 218, 220, 224, 227, 230, 232, 233,
235, 237, 242, 247, 250, 254, 258, 262, 263, 265,
268, 272, 276, 277, 279, 281, 284, 288, 291, 292,
294, 296, 300, 303, 306, 308, 311, 312, 314, 317,
318, 320
};
static const short yyrhs[] = { 52,
0, 51, 52, 0, 0, 53, 54, 0, 0, 22,
55, 56, 0, 56, 0, 80, 0, 92, 0, 94,
0, 1, 42, 0, 1, 43, 0, 60, 57, 42,
0, 0, 58, 0, 59, 0, 58, 44, 59, 0,
70, 93, 91, 81, 0, 0, 61, 0, 62, 0,
61, 62, 0, 63, 0, 64, 0, 5, 0, 16,
0, 20, 0, 11, 0, 13, 0, 65, 0, 69,
0, 21, 35, 0, 23, 35, 0, 10, 35, 0,
21, 35, 83, 0, 23, 35, 83, 0, 10, 35,
30, 0, 10, 30, 0, 21, 83, 0, 23, 83,
0, 7, 0, 18, 0, 14, 0, 15, 0, 19,
0, 24, 0, 12, 0, 9, 0, 25, 0, 6,
0, 39, 0, 45, 67, 0, 0, 68, 0, 69,
0, 68, 69, 0, 8, 0, 26, 0, 29, 0,
17, 0, 66, 70, 0, 71, 0, 35, 0, 71,
46, 74, 47, 0, 71, 46, 1, 47, 0, 71,
31, 0, 46, 70, 47, 0, 46, 1, 47, 0,
66, 72, 0, 73, 0, 35, 0, 39, 0, 73,
46, 74, 47, 0, 73, 46, 1, 47, 0, 73,
31, 0, 46, 72, 47, 0, 46, 1, 47, 0,
75, 34, 0, 75, 0, 76, 44, 34, 0, 0,
76, 0, 77, 0, 76, 44, 77, 0, 61, 78,
0, 66, 78, 0, 79, 0, 0, 35, 0, 39,
0, 79, 46, 74, 47, 0, 79, 46, 1, 47,
0, 79, 31, 0, 46, 78, 47, 0, 46, 1,
47, 0, 60, 70, 30, 0, 0, 82, 0, 48,
32, 0, 49, 84, 43, 0, 49, 1, 43, 0,
0, 85, 0, 86, 0, 85, 86, 0, 60, 87,
42, 0, 1, 42, 0, 0, 88, 0, 89, 0,
88, 44, 89, 0, 72, 91, 0, 35, 90, 0,
90, 0, 50, 32, 0, 0, 29, 0, 28, 42,
0, 0, 28, 0, 27, 46, 35, 47, 42, 0
static const short yyrhs[] = { 53,
0, 52, 53, 0, 0, 54, 55, 0, 0, 22,
56, 57, 0, 57, 0, 81, 0, 93, 0, 95,
0, 1, 43, 0, 1, 44, 0, 61, 58, 43,
0, 0, 59, 0, 60, 0, 59, 45, 60, 0,
71, 94, 92, 82, 0, 0, 62, 0, 63, 0,
62, 63, 0, 64, 0, 65, 0, 5, 0, 16,
0, 20, 0, 11, 0, 13, 0, 66, 0, 70,
0, 27, 46, 65, 47, 0, 21, 36, 0, 23,
36, 0, 10, 36, 0, 21, 36, 84, 0, 23,
36, 84, 0, 10, 36, 31, 0, 10, 31, 0,
21, 84, 0, 23, 84, 0, 7, 0, 18, 0,
14, 0, 15, 0, 19, 0, 24, 0, 12, 0,
9, 0, 25, 0, 6, 0, 40, 0, 48, 68,
0, 0, 69, 0, 70, 0, 69, 70, 0, 8,
0, 26, 0, 30, 0, 17, 0, 67, 71, 0,
72, 0, 36, 0, 72, 46, 75, 47, 0, 72,
46, 1, 47, 0, 72, 32, 0, 46, 71, 47,
0, 46, 1, 47, 0, 67, 73, 0, 74, 0,
36, 0, 40, 0, 74, 46, 75, 47, 0, 74,
46, 1, 47, 0, 74, 32, 0, 46, 73, 47,
0, 46, 1, 47, 0, 76, 35, 0, 76, 0,
77, 45, 35, 0, 0, 77, 0, 78, 0, 77,
45, 78, 0, 62, 79, 0, 67, 79, 0, 80,
0, 0, 36, 0, 40, 0, 80, 46, 75, 47,
0, 80, 46, 1, 47, 0, 80, 32, 0, 46,
79, 47, 0, 46, 1, 47, 0, 61, 71, 31,
0, 0, 83, 0, 49, 33, 0, 50, 85, 44,
0, 50, 1, 44, 0, 0, 86, 0, 87, 0,
86, 87, 0, 61, 88, 43, 0, 1, 43, 0,
0, 89, 0, 90, 0, 89, 45, 90, 0, 73,
92, 0, 36, 91, 0, 91, 0, 51, 33, 0,
0, 30, 0, 29, 43, 0, 0, 29, 0, 28,
46, 36, 47, 43, 0
};
#endif
#if YYDEBUG != 0
static const short yyrline[] = { 0,
100, 102, 105, 108, 111, 113, 114, 115, 116, 117,
118, 119, 122, 136, 138, 141, 150, 162, 168, 170,
173, 175, 178, 185, 188, 190, 191, 192, 193, 196,
198, 202, 204, 206, 210, 217, 224, 233, 234, 235,
238, 240, 241, 242, 243, 244, 245, 246, 247, 248,
249, 252, 257, 259, 262, 264, 267, 268, 268, 269,
276, 278, 281, 291, 293, 295, 297, 299, 305, 307,
310, 312, 313, 315, 317, 319, 321, 325, 327, 328,
331, 333, 336, 338, 342, 347, 350, 353, 355, 363,
367, 369, 371, 373, 375, 379, 388, 390, 394, 399,
401, 404, 406, 409, 411, 414, 417, 421, 423, 426,
428, 431, 433, 434, 437, 441, 443, 446, 450, 452,
455
101, 103, 106, 109, 112, 114, 115, 116, 117, 118,
119, 120, 123, 137, 139, 142, 151, 163, 169, 171,
174, 176, 179, 186, 189, 191, 192, 193, 194, 197,
199, 200, 204, 206, 208, 212, 219, 226, 235, 236,
237, 240, 242, 243, 244, 245, 246, 247, 248, 249,
250, 251, 254, 259, 261, 264, 266, 269, 270, 270,
271, 278, 280, 283, 293, 295, 297, 299, 301, 307,
309, 312, 314, 315, 317, 319, 321, 323, 327, 329,
330, 333, 335, 338, 340, 344, 349, 352, 355, 357,
365, 369, 371, 373, 375, 377, 381, 390, 392, 396,
401, 403, 406, 408, 411, 413, 416, 419, 423, 425,
428, 430, 433, 435, 436, 439, 443, 445, 448, 452,
454, 457
};
#endif
......@@ -209,212 +211,222 @@ static const char * const yytname[] = { "$","error","$undefined.","ASM_KEYW",
"ATTRIBUTE_KEYW","AUTO_KEYW","BOOL_KEYW","CHAR_KEYW","CONST_KEYW","DOUBLE_KEYW",
"ENUM_KEYW","EXTERN_KEYW","FLOAT_KEYW","INLINE_KEYW","INT_KEYW","LONG_KEYW",
"REGISTER_KEYW","RESTRICT_KEYW","SHORT_KEYW","SIGNED_KEYW","STATIC_KEYW","STRUCT_KEYW",
"TYPEDEF_KEYW","UNION_KEYW","UNSIGNED_KEYW","VOID_KEYW","VOLATILE_KEYW","EXPORT_SYMBOL_KEYW",
"ASM_PHRASE","ATTRIBUTE_PHRASE","BRACE_PHRASE","BRACKET_PHRASE","EXPRESSION_PHRASE",
"CHAR","DOTS","IDENT","INT","REAL","STRING","TYPE","OTHER","FILENAME","';'",
"'}'","','","'*'","'('","')'","'='","'{'","':'","declaration_seq","declaration",
"@1","declaration1","@2","simple_declaration","init_declarator_list_opt","init_declarator_list",
"init_declarator","decl_specifier_seq_opt","decl_specifier_seq","decl_specifier",
"storage_class_specifier","type_specifier","simple_type_specifier","ptr_operator",
"cvar_qualifier_seq_opt","cvar_qualifier_seq","cvar_qualifier","declarator",
"direct_declarator","nested_declarator","direct_nested_declarator","parameter_declaration_clause",
"parameter_declaration_list_opt","parameter_declaration_list","parameter_declaration",
"m_abstract_declarator","direct_m_abstract_declarator","function_definition",
"initializer_opt","initializer","class_body","member_specification_opt","member_specification",
"member_declaration","member_declarator_list_opt","member_declarator_list","member_declarator",
"member_bitfield_declarator","attribute_opt","asm_definition","asm_phrase_opt",
"export_definition", NULL
"TYPEDEF_KEYW","UNION_KEYW","UNSIGNED_KEYW","VOID_KEYW","VOLATILE_KEYW","TYPEOF_KEYW",
"EXPORT_SYMBOL_KEYW","ASM_PHRASE","ATTRIBUTE_PHRASE","BRACE_PHRASE","BRACKET_PHRASE",
"EXPRESSION_PHRASE","CHAR","DOTS","IDENT","INT","REAL","STRING","TYPE","OTHER",
"FILENAME","';'","'}'","','","'('","')'","'*'","'='","'{'","':'","declaration_seq",
"declaration","@1","declaration1","@2","simple_declaration","init_declarator_list_opt",
"init_declarator_list","init_declarator","decl_specifier_seq_opt","decl_specifier_seq",
"decl_specifier","storage_class_specifier","type_specifier","simple_type_specifier",
"ptr_operator","cvar_qualifier_seq_opt","cvar_qualifier_seq","cvar_qualifier",
"declarator","direct_declarator","nested_declarator","direct_nested_declarator",
"parameter_declaration_clause","parameter_declaration_list_opt","parameter_declaration_list",
"parameter_declaration","m_abstract_declarator","direct_m_abstract_declarator",
"function_definition","initializer_opt","initializer","class_body","member_specification_opt",
"member_specification","member_declaration","member_declarator_list_opt","member_declarator_list",
"member_declarator","member_bitfield_declarator","attribute_opt","asm_definition",
"asm_phrase_opt","export_definition", NULL
};
#endif
static const short yyr1[] = { 0,
51, 51, 53, 52, 55, 54, 54, 54, 54, 54,
54, 54, 56, 57, 57, 58, 58, 59, 60, 60,
61, 61, 62, 62, 63, 63, 63, 63, 63, 64,
64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
52, 52, 54, 53, 56, 55, 55, 55, 55, 55,
55, 55, 57, 58, 58, 59, 59, 60, 61, 61,
62, 62, 63, 63, 64, 64, 64, 64, 64, 65,
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
65, 66, 67, 67, 68, 68, 69, 69, 69, 69,
70, 70, 71, 71, 71, 71, 71, 71, 72, 72,
73, 73, 73, 73, 73, 73, 73, 74, 74, 74,
75, 75, 76, 76, 77, 78, 78, 79, 79, 79,
79, 79, 79, 79, 79, 80, 81, 81, 82, 83,
83, 84, 84, 85, 85, 86, 86, 87, 87, 88,
88, 89, 89, 89, 90, 91, 91, 92, 93, 93,
94
65, 66, 66, 66, 66, 66, 66, 66, 66, 66,
66, 66, 67, 68, 68, 69, 69, 70, 70, 70,
70, 71, 71, 72, 72, 72, 72, 72, 72, 73,
73, 74, 74, 74, 74, 74, 74, 74, 75, 75,
75, 76, 76, 77, 77, 78, 79, 79, 80, 80,
80, 80, 80, 80, 80, 80, 81, 82, 82, 83,
84, 84, 85, 85, 86, 86, 87, 87, 88, 88,
89, 89, 90, 90, 90, 91, 92, 92, 93, 94,
94, 95
};
static const short yyr2[] = { 0,
1, 2, 0, 2, 0, 3, 1, 1, 1, 1,
2, 2, 3, 0, 1, 1, 3, 4, 0, 1,
1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 2, 2, 3, 3, 3, 2, 2, 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 0, 1, 1, 2, 1, 1, 1, 1,
2, 1, 1, 4, 4, 2, 3, 3, 2, 1,
1, 1, 4, 4, 2, 3, 3, 2, 1, 3,
0, 1, 1, 3, 2, 2, 1, 0, 1, 1,
4, 4, 2, 3, 3, 3, 0, 1, 2, 3,
3, 0, 1, 1, 2, 3, 2, 0, 1, 1,
3, 2, 2, 1, 2, 0, 1, 2, 0, 1,
5
1, 4, 2, 2, 2, 3, 3, 3, 2, 2,
2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 0, 1, 1, 2, 1, 1, 1,
1, 2, 1, 1, 4, 4, 2, 3, 3, 2,
1, 1, 1, 4, 4, 2, 3, 3, 2, 1,
3, 0, 1, 1, 3, 2, 2, 1, 0, 1,
1, 4, 4, 2, 3, 3, 3, 0, 1, 2,
3, 3, 0, 1, 1, 2, 3, 2, 0, 1,
1, 3, 2, 2, 1, 2, 0, 1, 2, 0,
1, 5
};
static const short yydefact[] = { 3,
3, 1, 0, 2, 0, 25, 50, 41, 57, 48,
0, 28, 47, 29, 43, 44, 26, 60, 42, 45,
27, 0, 5, 0, 46, 49, 58, 0, 0, 59,
51, 4, 7, 14, 20, 21, 23, 24, 30, 31,
8, 9, 10, 11, 12, 38, 34, 32, 0, 39,
19, 33, 40, 0, 118, 63, 53, 0, 0, 15,
16, 0, 119, 62, 22, 37, 35, 0, 108, 0,
0, 104, 6, 14, 36, 0, 52, 54, 55, 0,
0, 13, 0, 61, 120, 96, 116, 66, 0, 107,
101, 71, 72, 0, 0, 0, 116, 70, 0, 109,
110, 114, 100, 0, 105, 119, 0, 56, 68, 67,
17, 117, 97, 0, 88, 0, 79, 82, 83, 113,
0, 71, 0, 115, 69, 112, 75, 0, 106, 0,
121, 0, 18, 98, 65, 89, 51, 0, 88, 85,
87, 64, 78, 0, 77, 76, 0, 0, 111, 99,
0, 90, 0, 86, 93, 0, 80, 84, 74, 73,
95, 94, 0, 0, 92, 91, 0, 0
3, 1, 0, 2, 0, 25, 51, 42, 58, 49,
0, 28, 48, 29, 44, 45, 26, 61, 43, 46,
27, 0, 5, 0, 47, 50, 59, 0, 0, 0,
60, 52, 4, 7, 14, 20, 21, 23, 24, 30,
31, 8, 9, 10, 11, 12, 39, 35, 33, 0,
40, 19, 34, 41, 0, 0, 119, 64, 0, 54,
0, 15, 16, 0, 120, 63, 22, 38, 36, 0,
109, 0, 0, 105, 6, 14, 37, 0, 0, 0,
0, 53, 55, 56, 13, 0, 62, 121, 97, 117,
67, 0, 108, 102, 72, 73, 0, 0, 0, 117,
71, 0, 110, 111, 115, 101, 0, 106, 120, 32,
0, 69, 68, 57, 17, 118, 98, 0, 89, 0,
80, 83, 84, 114, 0, 72, 0, 116, 70, 113,
76, 0, 107, 0, 122, 0, 18, 99, 66, 90,
52, 0, 89, 86, 88, 65, 79, 0, 78, 77,
0, 0, 112, 100, 0, 91, 0, 87, 94, 0,
81, 85, 75, 74, 96, 95, 0, 0, 93, 92,
0, 0
};
static const short yydefgoto[] = { 1,
2, 3, 32, 51, 33, 59, 60, 61, 69, 35,
36, 37, 38, 39, 62, 77, 78, 40, 106, 64,
97, 98, 116, 117, 118, 119, 140, 141, 41, 133,
134, 50, 70, 71, 72, 99, 100, 101, 102, 113,
42, 87, 43
2, 3, 33, 52, 34, 61, 62, 63, 71, 36,
37, 38, 39, 40, 64, 82, 83, 41, 109, 66,
100, 101, 120, 121, 122, 123, 144, 145, 42, 137,
138, 51, 72, 73, 74, 102, 103, 104, 105, 117,
43, 90, 44
};
static const short yypact[] = {-32768,
40,-32768, 297,-32768, -30,-32768,-32768,-32768,-32768,-32768,
-16,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768, 4,-32768, 11,-32768,-32768,-32768, 6, 17,-32768,
-32768,-32768,-32768, 63, 416,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768, 31, 23, 76,-32768,
416, 23,-32768, 33,-32768,-32768, -2, 10, 24, 35,
-32768, 63, -12, -21,-32768,-32768,-32768, 1, 28, 61,
122,-32768,-32768, 63,-32768, 65,-32768, -2,-32768, 73,
77,-32768, 63,-32768,-32768,-32768, 96,-32768, 168,-32768,
-32768, 94,-32768, 19, 117, 68, 96, -14, 108, 109,
-32768,-32768,-32768, 110,-32768, 126, 113,-32768,-32768,-32768,
-32768,-32768, 111, 115, 339, 116, 124, 112,-32768,-32768,
119,-32768, 123,-32768,-32768,-32768,-32768, 211,-32768, 28,
-32768, 128,-32768,-32768,-32768,-32768,-32768, 3, 71,-32768,
-9,-32768,-32768, 381,-32768,-32768, 143, 148,-32768,-32768,
149,-32768, 151,-32768,-32768, 254,-32768,-32768,-32768,-32768,
-32768,-32768, 152, 153,-32768,-32768, 171,-32768
19,-32768, 175,-32768, 32,-32768,-32768,-32768,-32768,-32768,
-18,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768, -30,-32768, -26,-32768,-32768,-32768, -32, -10, -2,
-32768,-32768,-32768,-32768, 2, 428,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768, 34, 12, 79,
-32768, 428, 12,-32768, 455, 33,-32768,-32768, 15, 14,
35, 29,-32768, 2, -14, -21,-32768,-32768,-32768, 67,
31, 37, 127,-32768,-32768, 2,-32768, 54, 60, 66,
69,-32768, 14,-32768,-32768, 2,-32768,-32768,-32768, 84,
-32768, 219,-32768,-32768, 70,-32768, 20, 91, 72, 84,
-20, 74, 81,-32768,-32768,-32768, 86,-32768, 102,-32768,
106,-32768,-32768,-32768,-32768,-32768, 109, 108, 348, 112,
126, 117,-32768,-32768, 118,-32768, 122,-32768,-32768,-32768,
-32768, 262,-32768, 31,-32768, 131,-32768,-32768,-32768,-32768,
-32768, 7, 120,-32768, -9,-32768,-32768, 392,-32768,-32768,
125, 130,-32768,-32768, 132,-32768, 159,-32768,-32768, 305,
-32768,-32768,-32768,-32768,-32768,-32768, 160, 161,-32768,-32768,
174,-32768
};
static const short yypgoto[] = {-32768,
200,-32768,-32768,-32768, 154,-32768,-32768, 120, 0, -87,
-35,-32768,-32768,-32768, -68,-32768,-32768, -48, -29,-32768,
-73,-32768, -120,-32768,-32768, 60, -63,-32768,-32768,-32768,
-32768, -17,-32768,-32768, 135,-32768,-32768, 78, 118, 114,
208,-32768,-32768,-32768, 158,-32768,-32768, 128, 0, -90,
-36,-32768, 157,-32768, -70,-32768,-32768, -51, -31,-32768,
-40,-32768, -125,-32768,-32768, 65, -97,-32768,-32768,-32768,
-32768, -19,-32768,-32768, 143,-32768,-32768, 83, 124, 141,
-32768,-32768,-32768
};
#define YYLAST 455
#define YYLAST 495
static const short yytable[] = { 65,
96, 115, 34, 151, 63, 9, 53, 148, 79, 88,
80, 44, 45, 46, 18, 85, 127, 86, 47, 121,
123, 155, 125, 27, 89, 96, 30, 96, 81, 108,
67, 128, 84, -88, 75, 164, 156, 136, 48, 167,
115, 152, 90, 91, 56, 52, 139, 57, 138, -88,
74, 54, 49, 122, 57, 58, 115, 93, 55, 49,
66, 96, 92, 57, 94, 82, 93, 76, 115, 139,
139, 49, 57, 94, 153, 154, 68, 95, 83, 65,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 56, 24, 25,
26, 27, 122, 103, 30, 136, 93, 57, 58, 152,
-19, 107, 57, 94, 31, 57, 138, -19, -102, 109,
-19, -19, 104, 110, 112, -19, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 95, 24, 25, 26, 27, 124, 129,
30, 90, 130, 85, 131, 144, -19, 143, 132, 150,
31, 135, 142, -19, -103, 145, -19, -19, 114, 146,
168, -19, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 159,
24, 25, 26, 27, 160, 161, 30, 162, 165, 166,
4, -81, 111, 158, 73, 105, 31, 149, 0, 120,
126, 147, 0, 0, -81, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 0, 24, 25, 26, 27, 0, 0, 30,
0, 0, 0, 0, -81, 0, 0, 0, 0, 31,
0, 0, 0, 0, 163, 0, 0, -81, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 0, 24, 25, 26, 27,
0, 0, 30, 0, 0, 0, 0, -81, 0, 0,
0, 0, 31, 0, 0, 0, 0, 5, 0, 0,
-81, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 0, 0, 0, 0,
0, -19, 0, 0, 0, 31, 0, 0, -19, 0,
0, -19, -19, 6, 7, 8, 9, 10, 11, 12,
static const short yytable[] = { 67,
99, 119, 35, 65, 54, 49, 152, 155, 84, 53,
91, 131, 47, 55, 88, 80, 89, 48, 171, 50,
125, 9, 159, 50, 92, 132, 99, 81, 99, 69,
18, 114, 87, 77, 168, 56, 160, 58, -89, 27,
57, 119, 140, 31, 157, 158, 156, 59, 143, 60,
58, 76, 142, -89, 60, 126, 127, 119, 129, 96,
59, 50, 60, 99, 68, 97, 95, 60, 79, 119,
96, 143, 143, 86, 45, 46, 97, 85, 60, 70,
106, 98, 67, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
0, 24, 25, 26, 27, 0, 0, 30, 0, 0,
0, 0, 0, 136, 0, 0, 0, 137, 0, 0,
0, 0, 0, 57, 138, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 0, 24, 25, 26, 27, 0, 0, 30,
0, 0, 0, 0, 157, 0, 0, 0, 0, 31,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 0, 24, 25,
26, 27, 0, 0, 30, 0, 0, 0, 0, 0,
0, 0, 0, 0, 31
};
static const short yycheck[] = { 35,
69, 89, 3, 1, 34, 8, 24, 128, 57, 31,
1, 42, 43, 30, 17, 28, 31, 30, 35, 1,
94, 31, 96, 26, 46, 94, 29, 96, 58, 78,
48, 46, 62, 31, 52, 156, 46, 35, 35, 0,
128, 39, 42, 43, 35, 35, 115, 45, 46, 47,
51, 46, 49, 35, 45, 46, 144, 39, 42, 49,
30, 130, 35, 45, 46, 42, 39, 35, 156, 138,
139, 49, 45, 46, 138, 139, 1, 50, 44, 115,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 35, 23, 24,
25, 26, 35, 43, 29, 35, 39, 45, 46, 39,
35, 47, 45, 46, 39, 45, 46, 42, 43, 47,
45, 46, 1, 47, 29, 50, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 50, 23, 24, 25, 26, 32, 42,
29, 42, 44, 28, 42, 44, 35, 34, 48, 32,
39, 47, 47, 42, 43, 47, 45, 46, 1, 47,
0, 50, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 47,
23, 24, 25, 26, 47, 47, 29, 47, 47, 47,
1, 34, 83, 144, 51, 71, 39, 130, -1, 92,
97, 1, -1, -1, 47, 5, 6, 7, 8, 9,
110, 24, 25, 26, 27, 28, 111, 126, 31, 93,
94, 96, 112, 116, -19, 113, 133, 97, 32, 60,
98, -19, -103, 128, -19, 134, -19, 107, 93, -19,
88, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 135, 24,
25, 26, 27, 28, 139, 140, 31, 136, 146, 156,
147, 148, -19, 154, 149, 142, 32, 60, 150, -19,
-104, 163, -19, 172, -19, 5, 164, -19, 165, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 166, 169, 170, 4, 75,
-19, 78, 162, 115, 32, 108, 153, -19, 124, 118,
-19, 0, -19, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
130, 24, 25, 26, 27, 28, 0, 0, 31, 0,
0, 0, 0, -82, 0, 0, 0, 0, 32, 0,
0, 0, 151, 0, 0, -82, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, 26, -1, -1, 29,
-1, -1, -1, -1, 34, -1, -1, -1, -1, 39,
-1, -1, -1, -1, 1, -1, -1, 47, 5, 6,
20, 21, 22, 0, 24, 25, 26, 27, 28, 0,
0, 31, 0, 0, 0, 0, -82, 0, 0, 0,
0, 32, 0, 0, 0, 167, 0, 0, -82, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, 26,
-1, -1, 29, -1, -1, -1, -1, 34, -1, -1,
-1, -1, 39, -1, -1, -1, -1, 1, -1, -1,
47, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, -1, -1, -1, -1,
-1, 35, -1, -1, -1, 39, -1, -1, 42, -1,
-1, 45, 46, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
-1, 23, 24, 25, 26, -1, -1, 29, -1, -1,
-1, -1, -1, 35, -1, -1, -1, 39, -1, -1,
-1, -1, -1, 45, 46, 5, 6, 7, 8, 9,
17, 18, 19, 20, 21, 22, 0, 24, 25, 26,
27, 28, 0, 0, 31, 0, 0, 0, 0, -82,
0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
0, -82, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 0,
24, 25, 26, 27, 28, 0, 0, 31, 0, 0,
0, 0, 0, 140, 0, 0, 0, 141, 0, 0,
0, 0, 0, 142, 0, 60, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, 26, -1, -1, 29,
-1, -1, -1, -1, 34, -1, -1, -1, -1, 39,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, 26, -1, -1, 29, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 39
20, 21, 22, 0, 24, 25, 26, 27, 28, 0,
0, 31, 0, 0, 0, 0, 161, 0, 0, 0,
0, 32, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 0,
24, 25, 26, 27, 28, 0, 0, 31, 0, 0,
7, 8, 9, 10, 11, 0, 13, 32, 15, 16,
0, 18, 19, 20, 0, 22, 0, 24, 25, 26,
27, 28, 0, 0, 31, 0, 0, 0, 0, 0,
0, 0, 0, 0, 32
};
static const short yycheck[] = { 36,
71, 92, 3, 35, 24, 36, 132, 1, 60, 36,
32, 32, 31, 46, 29, 1, 31, 36, 0, 50,
1, 8, 32, 50, 46, 46, 97, 59, 99, 49,
17, 83, 64, 53, 160, 46, 46, 36, 32, 26,
43, 132, 36, 30, 142, 143, 40, 46, 119, 48,
36, 52, 46, 47, 48, 36, 97, 148, 99, 40,
46, 50, 48, 134, 31, 46, 36, 48, 36, 160,
40, 142, 143, 45, 43, 44, 46, 43, 48, 1,
44, 51, 119, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
47, 23, 24, 25, 26, 27, 47, 36, 30, 43,
44, 40, 47, 30, 36, 47, 43, 46, 40, 48,
51, 43, 44, 33, 46, 45, 48, 1, 43, 51,
29, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 43, 23,
24, 25, 26, 27, 47, 36, 30, 49, 47, 40,
35, 45, 36, 33, 47, 46, 40, 48, 47, 43,
44, 47, 46, 0, 48, 1, 47, 51, 47, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 47, 47, 47, 1, 52,
36, 55, 148, 86, 40, 73, 134, 43, 95, 1,
46, -1, 48, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
100, 23, 24, 25, 26, 27, -1, -1, 30, -1,
-1, -1, -1, 35, -1, -1, -1, -1, 40, -1,
-1, -1, 1, -1, -1, 47, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, 26, 27, -1,
-1, 30, -1, -1, -1, -1, 35, -1, -1, -1,
-1, 40, -1, -1, -1, 1, -1, -1, 47, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, -1, 23, 24, 25,
26, 27, -1, -1, 30, -1, -1, -1, -1, 35,
-1, -1, -1, -1, 40, -1, -1, -1, -1, -1,
-1, 47, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, 26, 27, -1, -1, 30, -1, -1,
-1, -1, -1, 36, -1, -1, -1, 40, -1, -1,
-1, -1, -1, 46, -1, 48, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, 26, 27, -1,
-1, 30, -1, -1, -1, -1, 35, -1, -1, -1,
-1, 40, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, 26, 27, -1, -1, 30, -1, -1,
6, 7, 8, 9, 10, -1, 12, 40, 14, 15,
-1, 17, 18, 19, -1, 21, -1, 23, 24, 25,
26, 27, -1, -1, 30, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 40
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/lib/bison.simple"
......@@ -960,31 +972,31 @@ yyreduce:
switch (yyn) {
case 3:
#line 106 "scripts/genksyms/parse.y"
#line 107 "scripts/genksyms/parse.y"
{ is_typedef = 0; is_extern = 0; current_name = NULL; decl_spec = NULL; ;
break;}
case 4:
#line 108 "scripts/genksyms/parse.y"
#line 109 "scripts/genksyms/parse.y"
{ free_list(*yyvsp[0], NULL); *yyvsp[0] = NULL; ;
break;}
case 5:
#line 112 "scripts/genksyms/parse.y"
#line 113 "scripts/genksyms/parse.y"
{ is_typedef = 1; ;
break;}
case 6:
#line 113 "scripts/genksyms/parse.y"
#line 114 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 11:
#line 118 "scripts/genksyms/parse.y"
#line 119 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 12:
#line 119 "scripts/genksyms/parse.y"
#line 120 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 13:
#line 124 "scripts/genksyms/parse.y"
#line 125 "scripts/genksyms/parse.y"
{ if (current_name) {
struct string_list *decl = (*yyvsp[0])->next;
(*yyvsp[0])->next = NULL;
......@@ -997,11 +1009,11 @@ case 13:
;
break;}
case 14:
#line 137 "scripts/genksyms/parse.y"
#line 138 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
break;}
case 16:
#line 143 "scripts/genksyms/parse.y"
#line 144 "scripts/genksyms/parse.y"
{ struct string_list *decl = *yyvsp[0];
*yyvsp[0] = NULL;
add_symbol(current_name,
......@@ -1011,7 +1023,7 @@ case 16:
;
break;}
case 17:
#line 151 "scripts/genksyms/parse.y"
#line 152 "scripts/genksyms/parse.y"
{ struct string_list *decl = *yyvsp[0];
*yyvsp[0] = NULL;
free_list(*yyvsp[-1], NULL);
......@@ -1023,23 +1035,23 @@ case 17:
;
break;}
case 18:
#line 164 "scripts/genksyms/parse.y"
#line 165 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1] ? yyvsp[-1] : yyvsp[-2] ? yyvsp[-2] : yyvsp[-3]; ;
break;}
case 19:
#line 169 "scripts/genksyms/parse.y"
#line 170 "scripts/genksyms/parse.y"
{ decl_spec = NULL; ;
break;}
case 21:
#line 174 "scripts/genksyms/parse.y"
#line 175 "scripts/genksyms/parse.y"
{ decl_spec = *yyvsp[0]; ;
break;}
case 22:
#line 175 "scripts/genksyms/parse.y"
#line 176 "scripts/genksyms/parse.y"
{ decl_spec = *yyvsp[0]; ;
break;}
case 23:
#line 180 "scripts/genksyms/parse.y"
#line 181 "scripts/genksyms/parse.y"
{ /* Version 2 checksumming ignores storage class, as that
is really irrelevant to the linkage. */
remove_node(yyvsp[0]);
......@@ -1047,27 +1059,27 @@ case 23:
;
break;}
case 28:
#line 192 "scripts/genksyms/parse.y"
#line 193 "scripts/genksyms/parse.y"
{ is_extern = 1; yyval = yyvsp[0]; ;
break;}
case 29:
#line 193 "scripts/genksyms/parse.y"
#line 194 "scripts/genksyms/parse.y"
{ is_extern = 0; yyval = yyvsp[0]; ;
break;}
case 32:
#line 203 "scripts/genksyms/parse.y"
{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_STRUCT; yyval = yyvsp[0]; ;
break;}
case 33:
#line 205 "scripts/genksyms/parse.y"
{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_UNION; yyval = yyvsp[0]; ;
{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_STRUCT; yyval = yyvsp[0]; ;
break;}
case 34:
#line 207 "scripts/genksyms/parse.y"
{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_ENUM; yyval = yyvsp[0]; ;
{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_UNION; yyval = yyvsp[0]; ;
break;}
case 35:
#line 211 "scripts/genksyms/parse.y"
#line 209 "scripts/genksyms/parse.y"
{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_ENUM; yyval = yyvsp[0]; ;
break;}
case 36:
#line 213 "scripts/genksyms/parse.y"
{ struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r;
r = copy_node(i); r->tag = SYM_STRUCT;
r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL;
......@@ -1075,8 +1087,8 @@ case 35:
yyval = yyvsp[0];
;
break;}
case 36:
#line 218 "scripts/genksyms/parse.y"
case 37:
#line 220 "scripts/genksyms/parse.y"
{ struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r;
r = copy_node(i); r->tag = SYM_UNION;
r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL;
......@@ -1084,8 +1096,8 @@ case 36:
yyval = yyvsp[0];
;
break;}
case 37:
#line 225 "scripts/genksyms/parse.y"
case 38:
#line 227 "scripts/genksyms/parse.y"
{ struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r;
r = copy_node(i); r->tag = SYM_ENUM;
r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL;
......@@ -1093,47 +1105,47 @@ case 37:
yyval = yyvsp[0];
;
break;}
case 38:
#line 233 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 39:
#line 234 "scripts/genksyms/parse.y"
#line 235 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 40:
#line 235 "scripts/genksyms/parse.y"
#line 236 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 51:
#line 249 "scripts/genksyms/parse.y"
{ (*yyvsp[0])->tag = SYM_TYPEDEF; yyval = yyvsp[0]; ;
case 41:
#line 237 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 52:
#line 254 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ;
#line 251 "scripts/genksyms/parse.y"
{ (*yyvsp[0])->tag = SYM_TYPEDEF; yyval = yyvsp[0]; ;
break;}
case 53:
#line 258 "scripts/genksyms/parse.y"
#line 256 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ;
break;}
case 54:
#line 260 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
break;}
case 56:
#line 264 "scripts/genksyms/parse.y"
case 57:
#line 266 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 60:
#line 270 "scripts/genksyms/parse.y"
case 61:
#line 272 "scripts/genksyms/parse.y"
{ /* restrict has no effect in prototypes so ignore it */
remove_node(yyvsp[0]);
yyval = yyvsp[0];
;
break;}
case 61:
#line 277 "scripts/genksyms/parse.y"
case 62:
#line 279 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 63:
#line 283 "scripts/genksyms/parse.y"
case 64:
#line 285 "scripts/genksyms/parse.y"
{ if (current_name != NULL) {
error_with_pos("unexpected second declaration name");
YYERROR;
......@@ -1143,10 +1155,6 @@ case 63:
}
;
break;}
case 64:
#line 292 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 65:
#line 294 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
......@@ -1164,11 +1172,11 @@ case 68:
{ yyval = yyvsp[0]; ;
break;}
case 69:
#line 306 "scripts/genksyms/parse.y"
#line 302 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 73:
#line 314 "scripts/genksyms/parse.y"
case 70:
#line 308 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 74:
......@@ -1188,51 +1196,51 @@ case 77:
{ yyval = yyvsp[0]; ;
break;}
case 78:
#line 326 "scripts/genksyms/parse.y"
#line 324 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 80:
case 79:
#line 328 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 81:
#line 332 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
break;}
case 84:
#line 339 "scripts/genksyms/parse.y"
#line 330 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 82:
#line 334 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
break;}
case 85:
#line 344 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ;
#line 341 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 86:
#line 349 "scripts/genksyms/parse.y"
#line 346 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ;
break;}
case 88:
#line 354 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
case 87:
#line 351 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ;
break;}
case 89:
#line 356 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
break;}
case 90:
#line 358 "scripts/genksyms/parse.y"
{ /* For version 2 checksums, we don't want to remember
private parameter names. */
remove_node(yyvsp[0]);
yyval = yyvsp[0];
;
break;}
case 90:
#line 364 "scripts/genksyms/parse.y"
case 91:
#line 366 "scripts/genksyms/parse.y"
{ remove_node(yyvsp[0]);
yyval = yyvsp[0];
;
break;}
case 91:
#line 368 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 92:
#line 370 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
......@@ -1250,39 +1258,39 @@ case 95:
{ yyval = yyvsp[0]; ;
break;}
case 96:
#line 381 "scripts/genksyms/parse.y"
#line 378 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 97:
#line 383 "scripts/genksyms/parse.y"
{ struct string_list *decl = *yyvsp[-1];
*yyvsp[-1] = NULL;
add_symbol(current_name, SYM_NORMAL, decl, is_extern);
yyval = yyvsp[0];
;
break;}
case 97:
#line 389 "scripts/genksyms/parse.y"
case 98:
#line 391 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
break;}
case 99:
#line 396 "scripts/genksyms/parse.y"
{ remove_list(yyvsp[0], &(*yyvsp[-1])->next); yyval = yyvsp[0]; ;
break;}
case 100:
#line 400 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
#line 398 "scripts/genksyms/parse.y"
{ remove_list(yyvsp[0], &(*yyvsp[-1])->next); yyval = yyvsp[0]; ;
break;}
case 101:
#line 401 "scripts/genksyms/parse.y"
#line 402 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 102:
#line 405 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
break;}
case 105:
#line 411 "scripts/genksyms/parse.y"
#line 403 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 103:
#line 407 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
break;}
case 106:
#line 416 "scripts/genksyms/parse.y"
#line 413 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 107:
......@@ -1290,39 +1298,43 @@ case 107:
{ yyval = yyvsp[0]; ;
break;}
case 108:
#line 422 "scripts/genksyms/parse.y"
#line 420 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 109:
#line 424 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
break;}
case 111:
#line 428 "scripts/genksyms/parse.y"
case 112:
#line 430 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 112:
#line 432 "scripts/genksyms/parse.y"
case 113:
#line 434 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ;
break;}
case 113:
#line 433 "scripts/genksyms/parse.y"
case 114:
#line 435 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 115:
#line 438 "scripts/genksyms/parse.y"
case 116:
#line 440 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 116:
#line 442 "scripts/genksyms/parse.y"
case 117:
#line 444 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
break;}
case 118:
#line 447 "scripts/genksyms/parse.y"
case 119:
#line 449 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ;
break;}
case 119:
#line 451 "scripts/genksyms/parse.y"
case 120:
#line 453 "scripts/genksyms/parse.y"
{ yyval = NULL; ;
break;}
case 121:
#line 457 "scripts/genksyms/parse.y"
case 122:
#line 459 "scripts/genksyms/parse.y"
{ export_symbol((*yyvsp[-2])->string); yyval = yyvsp[0]; ;
break;}
}
......@@ -1547,7 +1559,7 @@ yyerrhandle:
}
return 1;
}
#line 461 "scripts/genksyms/parse.y"
#line 463 "scripts/genksyms/parse.y"
static void
......
......@@ -25,21 +25,22 @@
#define UNSIGNED_KEYW 278
#define VOID_KEYW 279
#define VOLATILE_KEYW 280
#define EXPORT_SYMBOL_KEYW 281
#define ASM_PHRASE 282
#define ATTRIBUTE_PHRASE 283
#define BRACE_PHRASE 284
#define BRACKET_PHRASE 285
#define EXPRESSION_PHRASE 286
#define CHAR 287
#define DOTS 288
#define IDENT 289
#define INT 290
#define REAL 291
#define STRING 292
#define TYPE 293
#define OTHER 294
#define FILENAME 295
#define TYPEOF_KEYW 281
#define EXPORT_SYMBOL_KEYW 282
#define ASM_PHRASE 283
#define ATTRIBUTE_PHRASE 284
#define BRACE_PHRASE 285
#define BRACKET_PHRASE 286
#define EXPRESSION_PHRASE 287
#define CHAR 288
#define DOTS 289
#define IDENT 290
#define INT 291
#define REAL 292
#define STRING 293
#define TYPE 294
#define OTHER 295
#define FILENAME 296
extern YYSTYPE yylval;
......@@ -76,6 +76,7 @@ remove_list(struct string_list **pb, struct string_list **pe)
%token UNSIGNED_KEYW
%token VOID_KEYW
%token VOLATILE_KEYW
%token TYPEOF_KEYW
%token EXPORT_SYMBOL_KEYW
......@@ -196,6 +197,7 @@ storage_class_specifier:
type_specifier:
simple_type_specifier
| cvar_qualifier
| TYPEOF_KEYW '(' type_specifier ')'
/* References to s/u/e's defined elsewhere. Rearrange things
so that it is easier to expand the definition fully later. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment