diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2021-03-07 10:01:53 +0100 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2021-03-07 18:41:38 +0100 |
commit | cf899f7a7cc19661861344d2b34cc98f10273cd9 (patch) | |
tree | e926c25751837d4587686095efbc049dd08dd1fb /NEWS | |
parent | a774839ca873d1082f79ba3c4eecc1e242a28ce1 (diff) | |
download | bison-cf899f7a7cc19661861344d2b34cc98f10273cd9.tar.gz |
yacc: fix push parser
When a pstate is used for multiple successive parses, some state may
leak from one run into the following one. That was introduced in
330552ea499ca474f65967160e9d4e50265f9631 "yacc.c: push: don't clear
the parser state when accepting/rejecting".
Reported by Ryan <dev@splintermail.com>
https://lists.gnu.org/r/bug-bison/2021-03/msg00000.html
* data/skeletons/yacc.c (yypush_parse): We reusing a pstate from a
previous run, do behave as if it were the first run.
* tests/push.at (Pstate reuse): Check this.
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -4,11 +4,17 @@ GNU Bison NEWS ** Bug fixes +*** Reused Push Parsers + + When a push-parser state structure is used for multiple parses, it was + possible for some state to leak from one run into the following one. + *** Fix Table Generation In some very rare conditions, when there are many useless tokens, it was possible to generate incorrect parsers. + * Noteworthy changes in release 3.7.5 (2021-01-24) [stable] ** Bug fixes @@ -290,7 +296,7 @@ GNU Bison NEWS parse errors, since `yynerrs` was also reset. This can be especially troublesome when used in autocompletion, since a parser with error recovery would suggest (irrelevant) expected tokens even if there were - failure. + failures. Now the parser state can be examined when parsing is finished. The parser state is reset when starting a new parse. |