bin/139319: flex: fix prototypes, esp. when YY_NO_INPUT is defined
Ulrich Spoerlein
uqs at spoerlein.net
Fri Oct 2 21:20:02 UTC 2009
>Number: 139319
>Category: bin
>Synopsis: flex: fix prototypes, esp. when YY_NO_INPUT is defined
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Oct 02 21:20:01 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Ulrich Spörlein
>Release: FreeBSD 8.0-BETA4 i386
>Organization:
>Environment:
>Description:
When YY_NO_INPUT is defined, the input function body will still be emitted,
but not the prototype. This breaks build for some software with higher
WARNS flags.
>How-To-Repeat:
Grab games/atc from DragonflyBSD and try to compile with WARNS>2
>Fix:
The fix is taken straight from DragonflyBSD, it adds more prototypes in
the YY_USE_PROTOS case and adds the missing #ifdef glue around input()
(compare this with what's done to unput())
--- flex.diff begins here ---
--- a/usr.bin/lex/flex.skl Fri Oct 02 14:16:27 2009 +0200
+++ b/usr.bin/lex/flex.skl Fri Oct 02 18:56:51 2009 +0200
@@ -747,7 +747,11 @@
*/
%-
+#ifdef YY_USE_PROTOS
+static int yy_get_next_buffer( void )
+#else
static int yy_get_next_buffer()
+#endif
%+
int yyFlexLexer::yy_get_next_buffer()
%*
@@ -883,7 +887,11 @@
/* yy_get_previous_state - get the state just before the EOB char was reached */
%-
+#ifdef YY_USE_PROTOS
+static yy_state_type yy_get_previous_state( void )
+#else
static yy_state_type yy_get_previous_state()
+#endif
%+
yy_state_type yyFlexLexer::yy_get_previous_state()
%*
@@ -979,11 +987,16 @@
%-
+#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput()
#else
+#ifdef YY_USE_PROTOS
+static int input( void )
+#else
static int input()
#endif
+#endif
%+
int yyFlexLexer::yyinput()
%*
@@ -1054,6 +1067,9 @@
return c;
}
+%-
+#endif /* ifndef YY_NO_INPUT */
+%*
%-
@@ -1402,7 +1418,11 @@
#ifndef YY_NO_POP_STATE
%-
+#ifdef YY_USE_PROTOS
+static void yy_pop_state( void )
+#else
static void yy_pop_state()
+#endif
%+
void yyFlexLexer::yy_pop_state()
%*
@@ -1417,7 +1437,11 @@
#ifndef YY_NO_TOP_STATE
%-
+#ifdef YY_USE_PROTOS
+static int yy_top_state( void )
+#else
static int yy_top_state()
+#endif
%+
int yyFlexLexer::yy_top_state()
%*
--- flex.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list