mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
yacc.c: work around warnings from G++ 4.8
input.c: In function 'int yyparse()':
input.c: error: conversion to 'long int' from 'long unsigned int'
may change the sign of the result [-Werror=sign-conversion]
yyes_capacity = sizeof yyesa / sizeof *yyes;
^
cc1plus: all warnings being treated as errors
* data/skeletons/yacc.c: here.
This commit is contained in:
19
TODO
19
TODO
@@ -128,6 +128,25 @@ Rename these guys as "diagnostics.*" (or "diagnose.*"), since that's the
|
|||||||
name they have in gcc, clang, etc. Likewise for the complain_* series of
|
name they have in gcc, clang, etc. Likewise for the complain_* series of
|
||||||
functions.
|
functions.
|
||||||
|
|
||||||
|
* Modernization
|
||||||
|
Remove some casts made for old compilers, such as Clang++ 3.3 and 3.4 when
|
||||||
|
compiling yacc.c code:
|
||||||
|
|
||||||
|
YYPTRDIFF_T yysize = (YYPTRDIFF_T) (yyssp - yyss + 1);
|
||||||
|
|
||||||
|
YYPTRDIFF_T yysize_old =
|
||||||
|
*yytop == yytop_empty ? 0 : (YYPTRDIFF_T) (*yytop - *yybottom + 1);
|
||||||
|
|
||||||
|
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
|
* Completion
|
||||||
Several features are not available in all the backends.
|
Several features are not available in all the backends.
|
||||||
|
|
||||||
|
|||||||
@@ -1154,10 +1154,10 @@ yytnamerr (char *yyres, const char *yystr)
|
|||||||
do_not_strip_quotes: ;
|
do_not_strip_quotes: ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! yyres)
|
if (yyres)
|
||||||
|
return (YYPTRDIFF_T) (yystpcpy (yyres, yystr) - yyres);
|
||||||
|
else
|
||||||
return yystrlen (yystr);
|
return yystrlen (yystr);
|
||||||
|
|
||||||
return yystpcpy (yyres, yystr) - yyres;
|
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
@@ -1490,7 +1490,7 @@ b4_function_define([[yyparse]], [[int]], b4_parse_param)[
|
|||||||
yystacksize = YYINITDEPTH;]b4_lac_if([[
|
yystacksize = YYINITDEPTH;]b4_lac_if([[
|
||||||
|
|
||||||
yyes = yyesa;
|
yyes = yyesa;
|
||||||
yyes_capacity = sizeof yyesa / sizeof *yyes;
|
yyes_capacity = (YYPTRDIFF_T) (sizeof yyesa / sizeof *yyes);
|
||||||
if (YYMAXDEPTH < yyes_capacity)
|
if (YYMAXDEPTH < yyes_capacity)
|
||||||
yyes_capacity = YYMAXDEPTH;]])[
|
yyes_capacity = YYMAXDEPTH;]])[
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user