examples: don't promote unchecked function calls

* etc/bench.pl.in, examples/c/bistromathic/parse.y,
* examples/c/calc/calc.y, examples/c/pushcalc/calc.y: Check scanf's
return value.
* doc/bison.texi: Likewise, but only for the second example, to avoid
cluttering the very simple case.
This commit is contained in:
Akim Demaille
2020-05-12 19:03:29 +02:00
parent ad921890c1
commit 4619b32dc0
6 changed files with 17 additions and 7 deletions

View File

@@ -268,7 +268,8 @@ yylex (const char **line, YYSTYPE *yylval, YYLTYPE *yylloc)
case '5': case '6': case '7': case '8': case '9':
{
int nchars = 0;
sscanf (*line - 1, "%lf%n", &yylval->TOK_NUM, &nchars);
int n = sscanf (*line - 1, "%lf%n", &yylval->TOK_NUM, &nchars);
assert (n == 1);
*line += nchars - 1;
yylloc->last_column += nchars - 1;
return TOK_NUM;
@@ -284,7 +285,8 @@ yylex (const char **line, YYSTYPE *yylval, YYLTYPE *yylloc)
{
int nchars = 0;
char buf[100];
sscanf (*line - 1, "%99[a-z]%n", buf, &nchars);
int n = sscanf (*line - 1, "%99[a-z]%n", buf, &nchars);
assert (n == 1);
*line += nchars - 1;
yylloc->last_column += nchars - 1;
if (strcmp (buf, "exit") == 0)