summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>2003-02-19 05:01:13 -0600
committerKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>2003-02-19 05:01:13 -0600
commitbc6efdcb09259202a2913923d788c8416723849c (patch)
treebd0a658435fdec62cc3de7bf56e26b036ba2c2ad /scripts
parent57146c8a3cd9fcc093965cf87d21bb3815f1e6a9 (diff)
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.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/genksyms/keywords.c_shipped99
-rw-r--r--scripts/genksyms/keywords.gperf2
-rw-r--r--scripts/genksyms/lex.c_shipped31
-rw-r--r--scripts/genksyms/parse.c_shipped732
-rw-r--r--scripts/genksyms/parse.h_shipped31
-rw-r--r--scripts/genksyms/parse.y2
6 files changed, 460 insertions, 437 deletions
diff --git a/scripts/genksyms/keywords.c_shipped b/scripts/genksyms/keywords.c_shipped
index 4cd0dc918871..eabaf7401cd6 100644
--- a/scripts/genksyms/keywords.c_shipped
+++ b/scripts/genksyms/keywords.c_shipped
@@ -1,7 +1,7 @@
/* 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)
diff --git a/scripts/genksyms/keywords.gperf b/scripts/genksyms/keywords.gperf
index db6aa29185be..b6bec765996e 100644
--- a/scripts/genksyms/keywords.gperf
+++ b/scripts/genksyms/keywords.gperf
@@ -46,3 +46,5 @@ union, UNION_KEYW
unsigned, UNSIGNED_KEYW
void, VOID_KEYW
volatile, VOLATILE_KEYW
+typeof, TYPEOF_KEYW
+__typeof__, TYPEOF_KEYW
diff --git a/scripts/genksyms/lex.c_shipped b/scripts/genksyms/lex.c_shipped
index d2cecdd9bbe0..33e7e9e2e521 100644
--- a/scripts/genksyms/lex.c_shipped
+++ b/scripts/genksyms/lex.c_shipped
@@ -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;
diff --git a/scripts/genksyms/parse.c_shipped b/scripts/genksyms/parse.c_shipped
index e8ecb822134e..c0f7ed4d1bfc 100644
--- a/scripts/genksyms/parse.c_shipped
+++ b/scripts/genksyms/parse.c_shipped
@@ -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
diff --git a/scripts/genksyms/parse.h_shipped b/scripts/genksyms/parse.h_shipped
index a63f6b565f15..d5b27e3b20c4 100644
--- a/scripts/genksyms/parse.h_shipped
+++ b/scripts/genksyms/parse.h_shipped
@@ -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;
diff --git a/scripts/genksyms/parse.y b/scripts/genksyms/parse.y
index 6a2d5811245b..386189f4d108 100644
--- a/scripts/genksyms/parse.y
+++ b/scripts/genksyms/parse.y
@@ -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. */