Hi all, There have been quite a few fixes since 3.4.1, some of them truly embarrassing (the one where diagnostics print tons of spaces). I think we should make a bug fix release, since 3.5 is far from complete.
I have pushed in 'maint' the following commits from the master branch. Please, let me know asap if I should include something else. Here's the NEWS: ** Bug fixes In some cases, when warnings are disabled, bison could emit tons of white spaces as diagnostics. When running out of memory, bison could crash (found by fuzzing). When defining twice the EOF token, bison would crash. commit cc10f9ab24312ac78313d2cf249c691c9995c948 Author: Akim Demaille <[email protected]> Date: Sun Jun 9 08:43:43 2019 +0200 CI: factor * .travis.yml (Clang 7 libc++ and ASAN part 2): Reuse bits from "Clang 7 libc++ and ASAN part 1". commit feeacc2d57de3b2efd0ef69dd1af947600c53504 Author: Akim Demaille <[email protected]> Date: Fri Jun 14 18:30:25 2019 +0200 CI: avoid useless git costs Travis answered favorably to my suggestion to provide a means to disable git clone on some jobs (issue 7542). See https://docs.travis-ci.com/user/customizing-the-build/#disabling-git-clone. * .travis.yml: Disable git globally, enable it for i. the compile job, and ii. the test job on ICC which needs the install-icc.sh script. commit de7c66ab41ec24a318c1ae46c3fa1cb05b4c78e0 Author: Akim Demaille <[email protected]> Date: Sat Jun 22 08:28:29 2019 +0200 CI: propagate sftp failures * .travis.yml (stage: "compile"): here. commit 2663035ea54d2ed540ed7c2b3728d9e73abe4dc7 Author: Akim Demaille <[email protected]> Date: Mon Sep 2 23:22:01 2019 +0200 CI: fail fast commit 12c412f6bbd091f71fb0a925d8c265e6ee3aa283 Author: Akim Demaille <[email protected]> Date: Mon Sep 2 19:09:58 2019 +0200 CI: more compilers * .travis.yml: Bionic is now available, with GCC8. GCC7 sanitizers work, but they are too longer: cover only part 1. Redefine part 1 and part 2 so that part 1 is really the core of the tests: not playing with POSIX and C++ compiler for C code. commit ed796869bb0f2d0531e0de367737e18ccaf43016 Author: Akim Demaille <[email protected]> Date: Sun Sep 1 17:56:38 2019 +0200 gnulib: update This update brings file from Gettext 0.20, which is not available on the CI yet. .travis.yml: Adjust. Use Bionic now that it's available. commit 1e452b1553d888ee42643ac591b2627d8de6649f Author: Akim Demaille <[email protected]> Date: Sun Jun 30 19:19:43 2019 +0200 c++: avoid duplicate definition of YYUSE Reported by Frank Heckenbach. https://lists.gnu.org/archive/html/bug-bison/2019-06/msg00009.html * data/skeletons/lalr1.cc (b4_shared_declarations): Remove the duplicate definition of YYUSE, the other one coming from b4_attribute_define. commit 9c1480467664577982f753414d56c84b67352737 Author: Akim Demaille <[email protected]> Date: Sat Jul 6 09:09:51 2019 +0200 doc: fix inaccuracies wrt --define and --force-define The doc says that -Dfoo=bar is the same as %define foo "bar". It is not: the quotes are not added (and it makes a difference). * doc/bison.texi (Tuning the Parser): Fix the definition of -D/-F * src/getargs.c (usage): Likewise. commit 64c1d4662a7fbfeb671d32bfb0f17c752a6ea451 Author: Akim Demaille <[email protected]> Date: Fri Aug 9 04:36:55 2019 -0500 git: ignore files generated in gnulib-po Because of them, the CI generates "-dirty" tarballs. commit d1e57ca65ed5de1a9762fc210bd3398a4b0a8be5 Author: László Várady <[email protected]> Date: Fri Aug 9 14:24:14 2019 +0200 diagnostics: fix invalid error message indentation https://lists.gnu.org/archive/html/bison-patches/2019-08/msg00007.html When Bison is started with a flag that suppresses warning messages, the error_message() function can produce a few gigabytes of indentation because of a dangling pointer. * src/complain.c (error_message): Don't reset indent_ptr here, but... (complain_indent): here. * tests/diagnostics.at (Indentation with message suppression): Check this case. commit b6f663d73f1cbcc376c6e786621a438df108a40d Author: László Várady <[email protected]> Date: Fri Aug 9 14:24:15 2019 +0200 diagnostics: avoid global variables * src/complain.c (indent_ptr): Remove. (error_message, complains): Take indent as an argument. Adjust callers. commit 94c6dec284dbf6ddaf8cb236bcfa21d48ed87ddd Author: Akim Demaille <[email protected]> Date: Sat Aug 31 18:07:26 2019 -0500 check for memory exhaustion hash_initialize returns NULL when out of memory. Check for it, and die cleanly instead of crashing. Reported by 江 祖铭 (Zu-Ming Jiang). https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00015.html * src/muscle-tab.c, src/state.c, src/symtab.c, src/uniqstr.c: Check the value returned by hash_initialize. commit 53c505e3a2c3733cbf0360a62b17183c9a5f0c67 Author: Akim Demaille <[email protected]> Date: Thu Sep 5 11:38:02 2019 +0200 gnulib: update Contains a fix for https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00016.html. See https://lists.gnu.org/archive/html/bug-gnulib/2019-09/msg00005.html. Reported by 江 祖铭 (Zu-Ming Jiang). commit d6012704151ca865f492b4277f6a633702428574 Author: Akim Demaille <[email protected]> Date: Fri Sep 6 07:37:26 2019 +0200 glr.c: initialize vector of bools The CI, with CC='gcc-7 -fsanitize=undefined,address -fno-omit-frame-pointer', reports: calc.cc:1652:50: runtime error: load of value 190, which is not a valid value for type 'bool' ../../tests/calc.at:867: cat stderr --- expout 2019-09-05 20:30:37.887257545 +0000 +++ /home/travis/build/bison-3.4.1.72-79a1-dirty/_build/tests/testsuite.dir/at-groups/438/stdout 2019-09-05 20:30:37.887257545 +0000 @@ -1 +1,2 @@ syntax error +calc.cc:1652:50: runtime error: load of value 190, which is not a valid value for type 'bool' 438. calc.at:867: 438. Calculator glr.cc (calc.at:867): FAILED (calc.at:867) The problem is that yylookaheadNeeds is not initialized in yyinitStateSet, and when it is copied, the value is not 0 or 1. * data/skeletons/glr.c (yylookaheadNeeds): Initialize yylookaheadNeeds. commit 97cb2927501cff46c4143887160b49fcf8cb3e8e Author: Akim Demaille <[email protected]> Date: Fri Sep 6 17:47:16 2019 +0200 tests: check token redeclaration * src/symtab.c (symbol_class_set): Report previous definitions when redeclared. * tests/input.at (Symbol redeclared): New. commit 4ec59bf456dbeebefc0903a338c09ebafdf0d417 Author: Akim Demaille <[email protected]> Date: Sat Sep 7 16:32:20 2019 +0200 fix: don't die when EOF token is defined twice With %token EOF 0 EOF 0 we get 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 | ^~~ Assertion failed: (nsyms == ntokens + nvars), function check_and_convert_grammar, file /Users/akim/src/gnu/bison/src/reader.c, line 839. Reported by Marc Schönefeld. * src/symtab.c (symbol_user_token_number_set): Register only the first definition of the end of input token. * tests/input.at (Symbol redeclared): Check that case. commit 438c543b01edd46e15a4eea3e6e3557d26981d91 Author: Akim Demaille <[email protected]> Date: Sun Sep 8 09:17:48 2019 +0200 news: update
