Work around GCC 4.8 false alarms without casts

* data/skeletons/yacc.c (yyparse):
Initialize yyes_capacity with a signed expression.
* tests/local.at (AT_YYLEX_DEFINE(c)):
Use enum to avoid cast.
This commit is contained in:
Paul Eggert
2019-10-06 11:49:56 -07:00
parent 58302c6079
commit beceb2fa93
3 changed files with 2 additions and 10 deletions

8
TODO
View File

@@ -117,14 +117,6 @@ compiling yacc.c code:
YYPTRDIFF_T yysize = (YYPTRDIFF_T) (yyesp - *yyes + 1);
Or G++ 4.8
yyes_capacity = (YYPTRDIFF_T) (sizeof yyesa / sizeof *yyes);
Or GCC 4.8
int input_elts = (int) (sizeof input / sizeof input[0]);
* Completion
Several features are not available in all the backends.

View File

@@ -1490,7 +1490,7 @@ b4_function_define([[yyparse]], [[int]], b4_parse_param)[
yystacksize = YYINITDEPTH;]b4_lac_if([[
yyes = yyesa;
yyes_capacity = (YYPTRDIFF_T) (sizeof yyesa / sizeof *yyes);
yyes_capacity = ]b4_percent_define_get([[parse.lac.es-capacity-initial]])[;
if (YYMAXDEPTH < yyes_capacity)
yyes_capacity = YYMAXDEPTH;]])[

View File

@@ -558,7 +558,7 @@ static
static int toknum = 0;
int res;
]AT_USE_LEX_ARGS[
int input_elts = (int) (sizeof input / sizeof input[0]);
enum { input_elts = sizeof input / sizeof input[0] };
(void) input_elts;
assert (0 <= toknum && toknum < input_elts);
res = input[toknum++];