headers: move CPP guards into YY_*_INCLUDED to avoid collisions

See <http://lists.gnu.org/archive/html/bug-bison/2012-09/msg00016.html>.

* data/c.m4 (b4_cpp_guard): Prepend YY_ and append _INCLUDED.
* tests/headers.at: Adjust.
* NEWS, doc/bison.texi: Document.
This commit is contained in:
Akim Demaille
2012-09-27 09:43:49 +02:00
parent 3746fc33c4
commit 6192d2c6de
4 changed files with 33 additions and 4 deletions

11
NEWS
View File

@@ -14,6 +14,17 @@ GNU Bison NEWS
Incorrect definitions of YY_, issued by yacc.c when no parser header is
generated, are removed.
** Header guards (yacc.c, glr.c, glr.cc)
In order to avoid collisions, the header guards are now
YY_<PREFIX>_<FILE>_INCLUDED, instead of merely <PREFIX>_<FILE>.
For instance the header generated from
%define api.prefix "calc"
%defines "lib/parse.h"
will use YY_CALC_LIB_PARSE_H_INCLUDED as guard.
* Noteworthy changes in release 2.6.2 (2012-08-03) [stable]
** Bug fixes