genksyms: fix gperf removal conversion
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 8 Sep 2017 21:32:34 +0000 (14:32 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 8 Sep 2017 21:32:34 +0000 (14:32 -0700)
I had stupidly missed one special use of 'is_reserved_word()' when I
converted the code to avoid gperf.

I had changed that function to return the token ID directly rather than
a pointer to the token descriptor structure, but that meant that the
test for "is this a reserved word" changed from checking the return
value against NULL, to checking that it wasn't negative.

And while I had converted the main token parser over, I missed the
special case of the typeof phrase handling.  And since our dependency
chain for genksyms does not include the genksyms program itself
changing, my kernel rebuild didn't show the problem.

Fixes: bb3290d91695 ("Remove gperf usage from toolchain")
Reported-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
scripts/genksyms/lex.l
scripts/genksyms/lex.lex.c_shipped

index 5dc25ee01c77bcefa659efb1e420d9dec9c0b332..d29c774f51b615026b82ae22e44ce03a676e6dd9 100644 (file)
@@ -292,7 +292,7 @@ repeat:
     case ST_TYPEOF_1:
       if (token == IDENT)
        {
-         if (is_reserved_word(yytext, yyleng)
+         if (is_reserved_word(yytext, yyleng) >= 0
              || find_symbol(yytext, SYM_TYPEDEF, 1))
            {
              yyless(0);
index d5a7474b3e57ea2fd4d114f73065a92f6248f770..ba2fda8dfdb2c62a25aae5dd11a6625f489fae28 100644 (file)
@@ -2101,7 +2101,7 @@ repeat:
     case ST_TYPEOF_1:
       if (token == IDENT)
        {
-         if (is_reserved_word(yytext, yyleng)
+         if (is_reserved_word(yytext, yyleng) >= 0
              || find_symbol(yytext, SYM_TYPEDEF, 1))
            {
              yyless(0);