From 407cb092e3216d372d9fa3120e531829448f0bbc Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 27 Sep 1997 03:46:35 +0000 Subject: [PATCH] c-typeck.c (build_binary_op): Warn about comparing signed vs unsigned if... * 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. From-SVN: r15739 --- gcc/ChangeLog | 7 +++++++ gcc/c-decl.c | 6 +++--- gcc/c-typeck.c | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1a4439dd895..993df97020b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Fri Sep 26 08:54:59 1997 Paul Eggert + + * 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 * integrate.c (expand_inline_function): Make sure there is at diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 94dc196a6a1..09143e41fce 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -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; diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index b3b0f1049e3..22843aecc82 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -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)); -- 2.30.2