* configure.ac (AC_ARG_ENABLE): Use -Wextra -Wno-sign-compare

rather than -W, so we don't get bogus warnings about sign comparisons.
Add -Wpointer-arith, since that warning is useful (it reports code
that does not conform to C89 and that some compilers reject).
* data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c: Undo latest change,
since it's no longer needed.
This commit is contained in:
Paul Eggert
2006-08-11 19:50:14 +00:00
parent f9bfc42aa7
commit 34ec357927
5 changed files with 14 additions and 35 deletions

View File

@@ -45,11 +45,12 @@ if test "${enableval}" = yes; then
gl_WARNING_CFLAGS([-Werror])
AC_SUBST([WERROR_CFLAGS], [$WARNING_CFLAGS])
WARNING_CFLAGS=
gl_WARNING_CFLAGS([-W])
gl_WARNING_CFLAGS([-Wextra -Wno-sign-compare])
gl_WARNING_CFLAGS([-Wall])
gl_WARNING_CFLAGS([-Wcast-align])
gl_WARNING_CFLAGS([-Wcast-qual])
gl_WARNING_CFLAGS([-Wformat])
gl_WARNING_CFLAGS([-Wpointer-arith])
gl_WARNING_CFLAGS([-Wwrite-strings])
AC_SUBST([WARNING_CXXFLAGS], [$WARNING_CFLAGS])
# The following warnings are not suitable for C++.

View File

@@ -164,11 +164,6 @@ m4_define([b4_int_type],
[int])])
# b4_safest_int_type
# ------------------
# The safest int type to cast to when it's necessary to compare a signed int
# type against an int type set by b4_int_type.
m4_define([b4_safest_int_type],[int])
# b4_int_type_for(NAME)
# ---------------------

View File

@@ -1048,8 +1048,7 @@ yygetLRActions (yyStateNum yystate, int yytoken,
int* yyaction, const short int** yyconflicts)
{
int yyindex = yypact[yystate] + yytoken;
if (yyindex < 0 || YYLAST < yyindex
|| (]b4_safest_int_type[)yycheck[yyindex] != yytoken)
if (yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
{
*yyaction = -yydefact[yystate];
*yyconflicts = yyconfl;
@@ -1071,8 +1070,7 @@ yyLRgotoState (yyStateNum yystate, yySymbol yylhs)
{
int yyr;
yyr = yypgoto[yylhs - YYNTOKENS] + yystate;
if (0 <= yyr && yyr <= YYLAST
&& (]b4_safest_int_type[)yycheck[yyr] == yystate)
if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
return yytable[yyr];
else
return yydefgoto[yylhs - YYNTOKENS];
@@ -2122,8 +2120,7 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[)
yyfmt = yystpcpy (yyformat, yyunexpected);
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if ((]b4_safest_int_type[)yycheck[yyx + yyn] == yyx
&& yyx != YYTERROR)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
{
@@ -2219,8 +2216,7 @@ yyrecoverSyntaxError (yyGLRStack* yystackp]b4_user_formals[)
if (yyis_pact_ninf (yyj))
return;
yyj += yytoken;
if (yyj < 0 || YYLAST < yyj
|| (]b4_safest_int_type[)yycheck[yyj] != yytoken)
if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
{
if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
return;

View File

@@ -608,8 +608,7 @@ m4_ifdef([b4_lex_param], [, ]b4_lex_param))[;
/* If the proper action on seeing token YYTOKEN is to reduce or to
detect an error, take that action. */
yyn += yytoken;
if (yyn < 0 || yylast_ < yyn
|| (]b4_safest_int_type[)yycheck_[yyn] != yytoken)
if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yytoken)
goto yydefault;
/* Reduce or error. */
@@ -687,7 +686,7 @@ m4_ifdef([b4_lex_param], [, ]b4_lex_param))[;
yyn = yyr1_[yyn];
yystate = yypgoto_[yyn - yyntokens_] + yystate_stack_[0];
if (0 <= yystate && yystate <= yylast_
&& (]b4_safest_int_type[)yycheck_[yystate] == yystate_stack_[0])
&& yycheck_[yystate] == yystate_stack_[0])
yystate = yytable_[yystate];
else
yystate = yydefgoto_[yyn - yyntokens_];
@@ -760,8 +759,7 @@ b4_error_verbose_if([, yytoken])[));
if (yyn != yypact_ninf_)
{
yyn += yyterror_;
if (0 <= yyn && yyn <= yylast_
&& (]b4_safest_int_type[)yycheck_[yyn] == yyterror_)
if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
{
yyn = yytable_[yyn];
if (0 < yyn)
@@ -845,7 +843,7 @@ b4_error_verbose_if([, int tok])[)
int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
int count = 0;
for (int x = yyxbegin; x < yyxend; ++x)
if ((]b4_safest_int_type[)yycheck_[x + yyn] == x && x != yyterror_)
if (yycheck_[x + yyn] == x && x != yyterror_)
++count;
// FIXME: This method of building the message is not compatible
@@ -862,8 +860,7 @@ b4_error_verbose_if([, int tok])[)
{
count = 0;
for (int x = yyxbegin; x < yyxend; ++x)
if ((]b4_safest_int_type[)yycheck_[x + yyn] == x
&& x != yyterror_)
if (yycheck_[x + yyn] == x && x != yyterror_)
{
res += (!count++) ? ", expecting " : " or ";
res += yytnamerr_ (yytname_[x]);

View File

@@ -86,15 +86,6 @@ m4_define([b4_int_type],
[int])])
# b4_safest_int_type
# ------------------
# The safest int type to cast to when it's necessary to compare a signed int
# type against an int type set by b4_int_type. Overwrite the version from
# c.m4 as a reminder to keep it consistent with overwritten b4_int_type.
m4_define([b4_safest_int_type],[int])
## ----------------- ##
## Semantic Values. ##
## ----------------- ##
@@ -909,7 +900,7 @@ yysyntax_error (char *yyresult, int yystate, int yychar)
yyfmt = yystpcpy (yyformat, yyunexpected);
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if ((]b4_safest_int_type[)yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
{
@@ -1214,7 +1205,7 @@ yybackup:
/* If the proper action on seeing token YYTOKEN is to reduce or to
detect an error, take that action. */
yyn += yytoken;
if (yyn < 0 || YYLAST < yyn || (]b4_safest_int_type[)yycheck[yyn] != yytoken)
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
goto yydefault;
yyn = yytable[yyn];
if (yyn <= 0)
@@ -1294,8 +1285,7 @@ yyreduce:
yyn = yyr1[yyn];
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
if (0 <= yystate && yystate <= YYLAST
&& (]b4_safest_int_type[)yycheck[yystate] == *yyssp)
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
yystate = yydefgoto[yyn - YYNTOKENS];