mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-10 12:53:03 +00:00
build: work around GCC warnings on Flex code
With GCC 7.3.0 and Flex 2.6.4, we get warnings on all the generated
scanners:
examples/calc++/calc++-scanner.cc: In function 'void yyrestart(FILE*)':
examples/calc++/calc++-scanner.cc:1611:20: error: potential null pointer dereference [-Werror=null-dereference]
/* %endif */
~~~~~~~~~~~ ^
examples/calc++/calc++-scanner.cc:1607:19: error: potential null pointer dereference [-Werror=null-dereference]
/* %if-c-only */
~~~~~~~~~~~~~~~ ^
examples/calc++/calc++-scanner.cc:1611:20: error: potential null pointer dereference [-Werror=null-dereference]
/* %endif */
~~~~~~~~~~~ ^
examples/calc++/calc++-scanner.cc:1607:19: error: potential null pointer dereference [-Werror=null-dereference]
/* %if-c-only */
~~~~~~~~~~~~~~~ ^
cc1plus: all warnings being treated as errors
Obviously the lines are incorrect, and the warnings are emitted twice.
Still, let's get rid of these warnings.
* doc/bison.texi, src/flex-scanner.h: Disable these warnings in code
generated by Flex.
This commit is contained in:
@@ -11399,6 +11399,12 @@ parser's to get the set of defined tokens.
|
||||
# undef yywrap
|
||||
# define yywrap() 1
|
||||
|
||||
// Pacify warnings in yy_init_buffer (observed with Flex 2.6.4)
|
||||
// and GCC 7.3.0.
|
||||
#if defined __GNUC__ && 7 <= __GNUC__
|
||||
# pragma GCC diagnostic ignored "-Wnull-dereference"
|
||||
#endif
|
||||
|
||||
// The location of the current token.
|
||||
static yy::location loc;
|
||||
%@}
|
||||
|
||||
@@ -44,6 +44,20 @@ int FLEX_PREFIX (lex_destroy) (void);
|
||||
|
||||
#define last_string FLEX_PREFIX (last_string)
|
||||
|
||||
// Pacify warnings in yy_init_buffer (observed with Flex 2.6.4 and GCC
|
||||
// 7.3.0).
|
||||
//
|
||||
// ./src/scan-skel.c: In function 'skel_restart':
|
||||
// ./src/scan-skel.c:2035:20: error: potential null pointer dereference [-Werror=null-dereference]
|
||||
// b->yy_fill_buffer = 1;
|
||||
// ~~~~~~~~~~~~~~~~~~^~~
|
||||
// ./src/scan-skel.c:2031:19: error: potential null pointer dereference [-Werror=null-dereference]
|
||||
// b->yy_input_file = file;
|
||||
// ~~~~~~~~~~~~~~~~~^~~~~~
|
||||
#if defined __GNUC__ && 7 <= __GNUC__
|
||||
# pragma GCC diagnostic ignored "-Wnull-dereference"
|
||||
#endif
|
||||
|
||||
/* It seems to be a nice "feature" of Flex that one cannot use yytext,
|
||||
yyleng etc. when a prefix is given, since there is no longer a
|
||||
#define, but rather the token is actually changed in the output.
|
||||
|
||||
Reference in New Issue
Block a user