mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
tables: avoid warnings and save bits
The yydefgoto table uses -1 as an invalid for an impossible case (we never use yydefgoto[0], since it corresponds to the reduction to $accept, which never happens). Since yydefgoto is a table of state numbers, this -1 forces a signed type uselessly, which (1) might trigger compiler warnings when storing a value from yydefgoto into a state number (nonnegative), and (2) wastes bits which might result in using a int16 where a uint8 suffices. Reported by Jot Dot <jotdot@shaw.ca>. https://lists.gnu.org/r/bug-bison/2020-11/msg00027.html * src/tables.c (default_goto): Use 0 rather than -1 as invalid value. * tests/regression.at: Adjust.
This commit is contained in:
@@ -737,7 +737,7 @@ static const yytype_int8 yypgoto[] =
|
||||
};
|
||||
static const yytype_int8 yydefgoto[] =
|
||||
{
|
||||
-1, 2, 3, 4, 8
|
||||
0, 2, 3, 4, 8
|
||||
};
|
||||
static const yytype_int8 yytable[] =
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user