]> git.saurik.com Git - bison.git/commitdiff
* configure.ac (AC_ARG_ENABLE): Use -Wextra -Wno-sign-compare
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 11 Aug 2006 19:50:14 +0000 (19:50 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 11 Aug 2006 19:50:14 +0000 (19:50 +0000)
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.

configure.ac
data/c.m4
data/glr.c
data/lalr1.cc
data/yacc.c

index e89f9e64559a6aa2eed973c8019d825c022771df..36d4dc1182fbce062aa36a75f92a5a18dc8c448d 100644 (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++.
index 2f29b39ff1f080fd3dd05e4c1b0af54cd5fd74d5..2ef88b159b3dcf05dd1666a468e85bd33e1732e3 100644 (file)
--- a/data/c.m4
+++ b/data/c.m4
@@ -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)
 # ---------------------
index e66e1c616a976640bae999ae681f5c2d95b60dc7..7c3d998d29aadbf89b82638d1831a5f01d8d99dc 100644 (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;
index 3f5d04d9e3ad6436a93315ff25cf368daf7ffd6d..377659e54100c6e56174310dad31b4742b317933 100644 (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]);
index 17690db3485404013a9403994301a42b850c4bb1..74a014f131a900895fbfd41dc4fc4dcfec9486c3 100644 (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];