mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
diagnostics: don't crash when declaring the error token as an nterm
Reported by wcventure. http://lists.gnu.org/archive/html/bug-bison/2019-03/msg00008.html * src/symtab.c (complain_class_redeclared): Don't print empty locations. There can only be empty locations for predefined symbols. And the only symbol that is lexically available is the error token. So this appears to be the only possible way to have an error involving an empty location. * tests/input.at (Symbol class redefinition): Check it.
This commit is contained in:
@@ -625,6 +625,7 @@ AT_DATA([[input.y]],
|
||||
[[%token FOO
|
||||
%nterm FOO BAR
|
||||
%token BAR
|
||||
%nterm error // The token error cannot be redefined as an nterm.
|
||||
%%
|
||||
FOO: BAR
|
||||
BAR:
|
||||
@@ -643,7 +644,10 @@ input.y:3.8-10: error: symbol BAR redeclared as a token
|
||||
input.y:2.12-14: previous definition
|
||||
%nterm FOO BAR
|
||||
^~~
|
||||
input.y:5.1-3: error: rule given for FOO, which is a token
|
||||
input.y:4.8-12: error: symbol error redeclared as a nonterminal
|
||||
%nterm error // The token error cannot be redefined as an nterm.
|
||||
^~~~~
|
||||
input.y:6.1-3: error: rule given for FOO, which is a token
|
||||
FOO: BAR
|
||||
^~~
|
||||
]])
|
||||
|
||||
Reference in New Issue
Block a user