OSDN Git Service

* c-typeck.c (build_binary_op): Warn about comparing signed vs
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 27 Sep 1997 03:46:35 +0000 (03:46 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 27 Sep 1997 03:46:35 +0000 (03:46 +0000)
        unsigned if -W is specified and -Wno-sign-compare is not.
        * c-decl.c (warn_sign_compare): Initialize to -1.
        (c_decode_option): -Wall no longer implies -Wsign-compare.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15739 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/c-decl.c
gcc/c-typeck.c

index 1a4439d..993df97 100644 (file)
@@ -1,3 +1,10 @@
+Fri Sep 26 08:54:59 1997  Paul Eggert  <eggert@twinsun.com>
+
+       * c-typeck.c (build_binary_op): Warn about comparing signed vs
+       unsigned if -W is specified and -Wno-sign-compare is not.
+       * c-decl.c (warn_sign_compare): Initialize to -1.
+       (c_decode_option): -Wall no longer implies -Wsign-compare.
+
 Fri Sep 26 09:00:13 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
        * integrate.c (expand_inline_function): Make sure there is at
index 94dc196..09143e4 100644 (file)
@@ -553,9 +553,10 @@ int warn_missing_braces;
 
 int warn_main;
 
-/* Warn about comparison of signed and unsigned values.  */
+/* Warn about comparison of signed and unsigned values.
+   If -1, neither -Wsign-compare nor -Wno-sign-compare has been specified.  */
 
-int warn_sign_compare;
+int warn_sign_compare = -1;
 
 /* Nonzero means `$' can be in an identifier.  */
 
@@ -758,7 +759,6 @@ c_decode_option (p)
       warn_char_subscripts = 1;
       warn_parentheses = 1;
       warn_missing_braces = 1;
-      warn_sign_compare = 1;
       /* We set this to 2 here, but 1 in -Wmain, so -ffreestanding can turn
         it off only if it's not explicit.  */
       warn_main = 2;
index b3b0f10..22843ae 100644 (file)
@@ -2477,7 +2477,8 @@ build_binary_op (code, orig_op0, orig_op1, convert_p)
          converted = 1;
          resultcode = xresultcode;
 
-         if (warn_sign_compare && skip_evaluation == 0)
+         if ((warn_sign_compare < 0 ? extra_warnings : warn_sign_compare != 0)
+             && skip_evaluation == 0)
            {
              int op0_signed = ! TREE_UNSIGNED (TREE_TYPE (orig_op0));
              int op1_signed = ! TREE_UNSIGNED (TREE_TYPE (orig_op1));