aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-opts.c
diff options
context:
space:
mode:
authorManuel López-Ibáñez <manu@gcc.gnu.org>2008-01-22 14:11:44 +0000
committerManuel López-Ibáñez <manu@gcc.gnu.org>2008-01-22 14:11:44 +0000
commit027b740e14194e7728da66cd91315f5936ddd7f5 (patch)
treebb2483418bbf2754d717a1b449693c17c0eae2ce /gcc/c-opts.c
parent963acd6f89ae458cfbddcba67bd0d7530a71feec (diff)
downloadgcc-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.c11
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. */