diff options
author | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2007-05-19 13:32:03 +0000 |
---|---|---|
committer | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2007-05-19 13:32:03 +0000 |
commit | 7060db96db1a93b956a065ab05fc2995d5af17f1 (patch) | |
tree | 98d10e457cbf659848ab680b6b1b3e192890e140 /gcc/c-opts.c | |
parent | 4fc2b4ff18b21daf43bf8d879e3edf67e556af7e (diff) | |
download | gcc-7060db96db1a93b956a065ab05fc2995d5af17f1.zip gcc-7060db96db1a93b956a065ab05fc2995d5af17f1.tar.gz gcc-7060db96db1a93b956a065ab05fc2995d5af17f1.tar.bz2 |
invoke.texi (Warning Options): Add -Wconversion-sign.
2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* doc/invoke.texi (Warning Options): Add -Wconversion-sign.
(Wconversion): Update description.
(Wconversion-sign): New.
* c.opt (Wconversion-sign): New.
* c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
means disabled for C++. Otherwise, take the status of Wconversion.
* c-common.c (conversion_warning): Warn with either Wconversion or
Wconversion-sign.
(warnings_for_convert_and_check): Conditions are already checked by
conversion_warning.
(convert_and_check): Don't check warnings if the conversion failed.
cp/
* cvt.c (cp_convert_and_check): Don't check warnings if the
conversion failed.
testsuite/
* gcc.dg/Wconversion-integer.c: Group testcases and add more.
* gcc.dg/Wconversion-sign.c: New.
* gcc.dg/Wconversion-integer-no-sign.c: New.
* g++.dg/warn/Wconversion-integer.C: Move some warnings to
Wconversion-sign.C
* g++.dg/warn/Wconversion-sign.C: New.
* g++.old-deja/g++.other/warn4.C: Update.
* g++.dg/warn/Wconversion1.C: Likewise.
From-SVN: r124856
Diffstat (limited to 'gcc/c-opts.c')
-rw-r--r-- | gcc/c-opts.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/c-opts.c b/gcc/c-opts.c index ed832af..550059f 100644 --- a/gcc/c-opts.c +++ b/gcc/c-opts.c @@ -1104,7 +1104,14 @@ c_common_post_options (const char **pfilename) } if (flag_inline_functions) flag_inline_trees = 2; - } + } + + /* In C, -Wconversion enables -Wsign-conversion (unless disabled + through -Wno-sign-conversion). While in C++, + -Wsign-conversion needs to be requested explicitly. */ + if (warn_sign_conversion == -1) + warn_sign_conversion = (c_dialect_cxx ()) ? 0 : warn_conversion; + /* Special format checking options don't work without -Wformat; warn if they are used. */ |