diff options
author | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2008-01-22 14:11:44 +0000 |
---|---|---|
committer | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2008-01-22 14:11:44 +0000 |
commit | 027b740e14194e7728da66cd91315f5936ddd7f5 (patch) | |
tree | bb2483418bbf2754d717a1b449693c17c0eae2ce /gcc/c-opts.c | |
parent | 963acd6f89ae458cfbddcba67bd0d7530a71feec (diff) | |
download | gcc-027b740e14194e7728da66cd91315f5936ddd7f5.zip gcc-027b740e14194e7728da66cd91315f5936ddd7f5.tar.gz gcc-027b740e14194e7728da66cd91315f5936ddd7f5.tar.bz2 |
re PR c/32102 (-Wall stomps on -Wstrict-overflow)
2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR 32102
* doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
* flags.h (warn_strict_aliasing): Remove.
(warn_strict_overflow): Remove.
* opts.c (warn_strict_aliasing): Remove.
(warn_strict_overflow): Remove.
* c-opts.c (c_common_handle_option): -Wall only sets
-Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
(c_common_post_options): Give default values to -Wstrict-aliasing
and -Wstrict-overflow if they are uninitialized.
* common.opt (Wstrict-aliasing): Specify Var and Init.
(Wstrict-overflow): Likewise.
testsuite/
* gcc.dg/Wstrict-overflow-21.c: New.
* g++.dg/warn/Wstrict-aliasing-8.C: New.
From-SVN: r131720
Diffstat (limited to 'gcc/c-opts.c')
-rw-r--r-- | gcc/c-opts.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/c-opts.c b/gcc/c-opts.c index ee9b7ac..4cb7687 100644 --- a/gcc/c-opts.c +++ b/gcc/c-opts.c @@ -401,9 +401,11 @@ c_common_handle_option (size_t scode, const char *arg, int value) warn_return_type = value; warn_sequence_point = value; /* Was C only. */ warn_switch = value; - set_Wstrict_aliasing (value); + if (warn_strict_aliasing == -1) + set_Wstrict_aliasing (value); warn_address = value; - warn_strict_overflow = value; + if (warn_strict_overflow == -1) + warn_strict_overflow = value; warn_array_bounds = value; /* Only warn about unknown pragmas that are not in system @@ -1090,6 +1092,11 @@ c_common_post_options (const char **pfilename) if (warn_pointer_sign == -1) warn_pointer_sign = 0; + if (warn_strict_aliasing == -1) + warn_strict_aliasing = 0; + if (warn_strict_overflow == -1) + warn_strict_overflow = 0; + /* -Woverlength-strings is off by default, but is enabled by -pedantic. It is never enabled in C++, as the minimum limit is not normative in that standard. */ |