skeletons: simplify the protections against "unused" warnings.

* data/c.m4 (b4_parse_param_use): Also accept optional arguments
	to "use".
	Simplify callers.
	* data/glr.c (yyuserAction): Simplify use of b4_parse_param_use.
	(yy_reduce_print): Don't use b4_parse_param_use, as all the arguments
	_are_ used.
	* data/lalr1.cc (YY_SYMBOL_PRINT): Even when disabled, "use" the
	symbol argument.
	This neutralizes a warning in yypush_ when there are no symbols
	with a semantic values.
	(yy_destroy_): Remove useless "use" of yymsg.
This commit is contained in:
Akim Demaille
2012-02-09 14:02:22 +01:00
parent f86a780785
commit beadb220d5
3 changed files with 15 additions and 21 deletions

View File

@@ -120,11 +120,15 @@ m4_popdef([$2])dnl
m4_popdef([$1])dnl m4_popdef([$1])dnl
])]) ])])
# b4_parse_param_use # b4_parse_param_use([VAL], [LOC])
# ------------------ # --------------------------------
# `YYUSE' all the parse-params. # `YYUSE' VAL, LOC if locations are enabled, and all the parse-params.
m4_define([b4_parse_param_use], m4_define([b4_parse_param_use],
[b4_parse_param_for([Decl], [Formal], [ YYUSE (Formal); [m4_ifval([$1], [ YYUSE([$1]);
])dnl
m4_ifval([$2], [b4_locations_if([ YYUSE ([$2]);
])])dnl
b4_parse_param_for([Decl], [Formal], [ YYUSE (Formal);
])dnl ])dnl
]) ])
@@ -444,11 +448,7 @@ m4_define_default([b4_yydestruct_generate],
b4_locations_if( [, [[YYLTYPE *yylocationp], [yylocationp]]])[]dnl b4_locations_if( [, [[YYLTYPE *yylocationp], [yylocationp]]])[]dnl
m4_ifset([b4_parse_param], [, b4_parse_param]))[ m4_ifset([b4_parse_param], [, b4_parse_param]))[
{ {
YYUSE (yyvaluep); ]b4_parse_param_use([yyvaluep], [yylocationp])[
]b4_locations_if([ YYUSE (yylocationp);
])dnl
b4_parse_param_use[]dnl
[
if (!yymsg) if (!yymsg)
yymsg = "Deleting"; yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
@@ -485,14 +485,10 @@ m4_ifset([b4_parse_param], [, b4_parse_param]))[
{ {
if (!yyvaluep) if (!yyvaluep)
return; return;
]b4_locations_if([ YYUSE (yylocationp); ]b4_parse_param_use([yyoutput], [yylocationp])[
])dnl # ifdef YYPRINT
b4_parse_param_use[]dnl
[# ifdef YYPRINT
if (yytype < YYNTOKENS) if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
YYUSE (yyoutput);
# endif # endif
switch (yytype) switch (yytype)
{ {

View File

@@ -852,8 +852,8 @@ yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp,
yybool yynormal __attribute__ ((__unused__)) = yybool yynormal __attribute__ ((__unused__)) =
(yystackp->yysplitPoint == NULL); (yystackp->yysplitPoint == NULL);
int yylow; int yylow;
]b4_parse_param_use[]dnl ]b4_parse_param_use([yyvalp], [yylocp])[
[# undef yyerrok # undef yyerrok
# define yyerrok (yystackp->yyerrState = 0) # define yyerrok (yystackp->yyerrState = 0)
# undef YYACCEPT # undef YYACCEPT
# define YYACCEPT return yyaccept # define YYACCEPT return yyaccept
@@ -1330,8 +1330,7 @@ yy_reduce_print (int yynormal, yyGLRStackItem* yyvsp, size_t yyk,
int yynrhs = yyrhsLength (yyrule);]b4_locations_if([ int yynrhs = yyrhsLength (yyrule);]b4_locations_if([
int yylow = 1;])[ int yylow = 1;])[
int yyi; int yyi;
]b4_parse_param_use[]dnl YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
[ YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
(unsigned long int) yyk, yyrule - 1, (unsigned long int) yyk, yyrule - 1,
(unsigned long int) yyrline[yyrule]); (unsigned long int) yyrline[yyrule]);
if (! yynormal) if (! yynormal)

View File

@@ -441,7 +441,7 @@ b4_percent_code_get[]dnl
#else /* !YYDEBUG */ #else /* !YYDEBUG */
# define YYCDEBUG if (false) std::cerr # define YYCDEBUG if (false) std::cerr
# define YY_SYMBOL_PRINT(Title, Symbol) static_cast<void>(0) # define YY_SYMBOL_PRINT(Title, Symbol) YYUSE(Symbol)
# define YY_REDUCE_PRINT(Rule) static_cast<void>(0) # define YY_REDUCE_PRINT(Rule) static_cast<void>(0)
# define YY_STACK_PRINT() static_cast<void>(0) # define YY_STACK_PRINT() static_cast<void>(0)
@@ -545,7 +545,6 @@ b4_percent_code_get[]dnl
symbol_base_type<Exact>& yysym) const symbol_base_type<Exact>& yysym) const
{ {
int yytype = yysym.type_get (); int yytype = yysym.type_get ();
YYUSE (yymsg);
if (yymsg) if (yymsg)
YY_SYMBOL_PRINT (yymsg, yysym); YY_SYMBOL_PRINT (yymsg, yysym);