mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
skeletons: beware not to use yyarg when it's null
Reported by Adrian Vogelsgesang. * data/skeletons/glr.c, data/skeletons/lalr1.cc, * data/skeletons/lalr1.java, data/skeletons/yacc.c: Here.
This commit is contained in:
3
TODO
3
TODO
@@ -1,7 +1,4 @@
|
|||||||
* Bison 3.6
|
* Bison 3.6
|
||||||
** syntax_error_arguments
|
|
||||||
Don't store the lookahead if !argv.
|
|
||||||
|
|
||||||
** Documentation
|
** Documentation
|
||||||
- yyexpected_tokens in all the languages.
|
- yyexpected_tokens in all the languages.
|
||||||
- YYNOMEM
|
- YYNOMEM
|
||||||
|
|||||||
@@ -2188,7 +2188,9 @@ yy_syntax_error_arguments (const yyGLRStack* yystackp,
|
|||||||
if (yytoken != YYSYMBOL_YYEMPTY)
|
if (yytoken != YYSYMBOL_YYEMPTY)
|
||||||
{
|
{
|
||||||
int yyn;
|
int yyn;
|
||||||
yyarg[yycount++] = yytoken;
|
if (yyarg)
|
||||||
|
yyarg[yycount] = yytoken;
|
||||||
|
++yycount;
|
||||||
yyn = yyexpected_tokens (yystackp, yyarg ? yyarg + 1 : yyarg, yyargn - 1);
|
yyn = yyexpected_tokens (yystackp, yyarg ? yyarg + 1 : yyarg, yyargn - 1);
|
||||||
if (yyn == YYNOMEM)
|
if (yyn == YYNOMEM)
|
||||||
return YYNOMEM;
|
return YYNOMEM;
|
||||||
|
|||||||
@@ -1458,7 +1458,8 @@ b4_dollar_popdef])[]dnl
|
|||||||
|
|
||||||
if (!yyctx.lookahead ().empty ())
|
if (!yyctx.lookahead ().empty ())
|
||||||
{
|
{
|
||||||
yyarg[0] = yyctx.token ();
|
if (yyarg)
|
||||||
|
yyarg[0] = yyctx.token ();
|
||||||
int yyn = yyctx.yyexpected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1);
|
int yyn = yyctx.yyexpected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1);
|
||||||
return yyn + 1;
|
return yyn + 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -981,7 +981,9 @@ b4_dollar_popdef[]dnl
|
|||||||
int yycount = 0;
|
int yycount = 0;
|
||||||
if (yyctx.getToken () != null)
|
if (yyctx.getToken () != null)
|
||||||
{
|
{
|
||||||
yyarg[yycount++] = yyctx.getToken ();
|
if (yyarg != null)
|
||||||
|
yyarg[yycount] = yyctx.getToken ();
|
||||||
|
yycount += 1;
|
||||||
yycount += yyctx.getExpectedTokens (yyarg, 1, yyargn);
|
yycount += yyctx.getExpectedTokens (yyarg, 1, yyargn);
|
||||||
}
|
}
|
||||||
return yycount;
|
return yycount;
|
||||||
|
|||||||
@@ -1360,7 +1360,9 @@ yy_syntax_error_arguments (const yypcontext_t *yyctx,
|
|||||||
{
|
{
|
||||||
int yyn;]b4_lac_if([[
|
int yyn;]b4_lac_if([[
|
||||||
YYDPRINTF ((stderr, "Constructing syntax error message\n"));]])[
|
YYDPRINTF ((stderr, "Constructing syntax error message\n"));]])[
|
||||||
yyarg[yycount++] = yyctx->yytoken;
|
if (yyarg)
|
||||||
|
yyarg[yycount] = yyctx->yytoken;
|
||||||
|
++yycount;
|
||||||
yyn = yyexpected_tokens (yyctx, yyarg ? yyarg + 1 : yyarg, yyargn - 1);
|
yyn = yyexpected_tokens (yyctx, yyarg ? yyarg + 1 : yyarg, yyargn - 1);
|
||||||
if (yyn == YYNOMEM)
|
if (yyn == YYNOMEM)
|
||||||
return YYNOMEM;]b4_lac_if([[
|
return YYNOMEM;]b4_lac_if([[
|
||||||
|
|||||||
Reference in New Issue
Block a user