summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--THANKS1
-rw-r--r--src/symtab.c2
-rw-r--r--tests/input.at8
3 files changed, 9 insertions, 2 deletions
diff --git a/THANKS b/THANKS
index a0e3af66..2df6763c 100644
--- a/THANKS
+++ b/THANKS
@@ -100,6 +100,7 @@ Lie Yan lie.yan@kaust.edu.sa
Magnus Fromreide magfr@lysator.liu.se
Marc Autret autret_m@epita.fr
Marc Mendiola mmendiol@usc.edu
+Marc Schönefeld marc.schoenefeld@gmx.org
Mark Boyall wolfeinstein@gmail.com
Martin Jacobs martin.jacobs@arcor.de
Martin Mokrejs mmokrejs@natur.cuni.cz
diff --git a/src/symtab.c b/src/symtab.c
index 684fdf3d..7b0439ad 100644
--- a/src/symtab.c
+++ b/src/symtab.c
@@ -495,7 +495,7 @@ symbol_user_token_number_set (symbol *sym, int user_token_number, location loc)
{
*user_token_numberp = user_token_number;
/* User defined $end token? */
- if (user_token_number == 0)
+ if (user_token_number == 0 && !endtoken)
{
endtoken = sym->content->symbol;
/* It is always mapped to 0, so it was already counted in
diff --git a/tests/input.at b/tests/input.at
index 16f5aca6..df0f6939 100644
--- a/tests/input.at
+++ b/tests/input.at
@@ -624,7 +624,7 @@ AT_SETUP([Symbol redeclared])
AT_DATA([[input.y]],
[[%token FOO FOO
%token BAR 12 BAR 12
-
+%token EOF 0 EOF 0
%%
exp: FOO BAR
]])
@@ -642,6 +642,12 @@ input.y:2.15-17: warning: symbol BAR redeclared [-Wother]
input.y:2.8-10: previous declaration
2 | %token BAR 12 BAR 12
| ^~~
+input.y:3.14-16: warning: symbol EOF redeclared [-Wother]
+ 3 | %token EOF 0 EOF 0
+ | ^~~
+input.y:3.8-10: previous declaration
+ 3 | %token EOF 0 EOF 0
+ | ^~~
]])
AT_CLEANUP