Cleanups so that Bison-generated parsers have less lint.

* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
Prepend /*ARGSUSED*/, for lint's sake.
* data/glr.c (YYUSE): Properly parenthesize, and use an alternate
definition if 'lint' is defined.
(YYID): New macro (or function, if lint).
All uses of /*CONSTCOND*/0 replaced by YYID(0).
* data/yacc.c: Likewise.
* data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
(yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
* data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
is C++ only.
* data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
* data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
Use YYID(0) rather than 0, for lint.
(yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
(yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
This commit is contained in:
Paul Eggert
2005-12-09 22:14:36 +00:00
parent f5228370c5
commit 12ce2df60d
5 changed files with 59 additions and 35 deletions

View File

@@ -257,10 +257,20 @@ b4_syncline([@oline@], [@ofile@])
#endif
/* Suppress unused-variable warnings by "using" E. */
#if __cplusplus
# define YYUSE(e) (void) (e)
#ifndef lint
# define YYUSE(e) ((void) (e))
#else
# define YYUSE(e) do {;} while (/*CONSTCOND*/ yyfalse && (e))
# define YYUSE(e) /* empty */
#endif
/* Identity function, used to suppress warnings about constant conditions. */
#ifndef lint
# define YYID(n) (n)
#else
]b4_c_function_def([YYID], [static int], [[int i], [i]])[
{
return i;
}
#endif
#ifndef YYFREE
@@ -499,7 +509,7 @@ static const ]b4_int_type_for([b4_stos])[ yystos[] =
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (/*CONSTCOND*/ 0)
while (YYID (0))
/* YY_LOCATION_PRINT -- Print the location on the stream.
This macro was not mandated originally: define only if we know
@@ -544,7 +554,7 @@ typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
#define YYCHK(YYE) \
do { YYRESULTTAG yyflag = YYE; if (yyflag != yyok) return yyflag; } \
while (/*CONSTCOND*/ 0)
while (YYID (0))
#if YYDEBUG
@@ -556,7 +566,7 @@ typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (/*CONSTCOND*/ 0)
} while (YYID (0))
]b4_yysymprint_generate([b4_c_ansi_function_def])[
@@ -569,7 +579,7 @@ do { \
Type, Value]b4_location_if([, Location])[]b4_user_args[); \
YYFPRINTF (stderr, "\n"); \
} \
} while (/*CONSTCOND*/ 0)
} while (YYID (0))
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
@@ -620,13 +630,13 @@ int yydebug;
do { \
if (Yystack->yyspaceLeft < YYHEADROOM) \
yyexpandGLRStack (Yystack); \
} while (/*CONSTCOND*/ 0)
} while (YYID (0))
#else
# define YY_RESERVE_GLRSTACK(Yystack) \
do { \
if (Yystack->yyspaceLeft < YYHEADROOM) \
yyMemoryExhausted (Yystack); \
} while (/*CONSTCOND*/ 0)
} while (YYID (0))
#endif
@@ -862,7 +872,7 @@ yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
* value ($$), and yylocp points to place for location information
* (@@$). Returns yyok for normal return, yyaccept for YYACCEPT,
* yyerr for YYERROR, yyabort for YYABORT. */
static YYRESULTTAG
/*ARGSUSED*/ static YYRESULTTAG
yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp,
YYSTYPE* yyvalp,
YYLTYPE* YYOPTIONAL_LOC (yylocp),
@@ -919,7 +929,7 @@ b4_syncline([@oline@], [@ofile@])
}
static void
/*ARGSUSED*/ static void
yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
{
YYUSE (yy0);
@@ -1360,13 +1370,13 @@ yydoAction (yyGLRStack* yystack, size_t yyk, yyRuleNum yyrule,
do { \
if (yydebug) \
yy_reduce_print Args; \
} while (/*CONSTCOND*/ 0)
} while (YYID (0))
/*----------------------------------------------------------.
| Report that the RULE is going to be reduced on stack #K. |
`----------------------------------------------------------*/
static inline void
/*ARGSUSED*/ static inline void
yy_reduce_print (yyGLRStack* yystack, size_t yyk, yyRuleNum yyrule,
YYSTYPE* yyvalp, YYLTYPE* yylocp]b4_user_formals[)
{
@@ -2003,7 +2013,7 @@ yyreportSyntaxError (yyGLRStack* yystack,
/* Recover from a syntax error on YYSTACK, assuming that YYTOKENP,
YYLVALP, and YYLLOCP point to the syntactic category, semantic
value, and location of the look-ahead. */
static void
/*ARGSUSED*/ static void
yyrecoverSyntaxError (yyGLRStack* yystack,
YYSTYPE* yylvalp,
YYLTYPE* YYOPTIONAL_LOC (yyllocp)
@@ -2108,7 +2118,7 @@ yyrecoverSyntaxError (yyGLRStack* yystack,
default: \
goto yybuglab; \
} \
} while (/*CONSTCOND*/ 0)
} while (YYID (0))
/*----------.