diff options
author | manu <manu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-01-22 14:11:44 +0000 |
---|---|---|
committer | manu <manu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-01-22 14:11:44 +0000 |
commit | a54ab3301add6ff86ab26d16ae784338a10da35f (patch) | |
tree | bb2483418bbf2754d717a1b449693c17c0eae2ce | |
parent | f437e46d0c8b9f30bb5cbacee71e2a23bc41b420 (diff) | |
download | gcc-a54ab3301add6ff86ab26d16ae784338a10da35f.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131720 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/c-opts.c | 11 | ||||
-rw-r--r-- | gcc/common.opt | 4 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 2 | ||||
-rw-r--r-- | gcc/flags.h | 10 | ||||
-rw-r--r-- | gcc/opts.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 |
7 files changed, 33 insertions, 23 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 639b0fbedcd..bc76be76da4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,18 @@ +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. + 2008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com> PR rtl-optimization/26854 diff --git a/gcc/c-opts.c b/gcc/c-opts.c index ee9b7acc713..4cb76872be3 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. */ diff --git a/gcc/common.opt b/gcc/common.opt index 5c659e4d307..810f879fe48 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -155,7 +155,7 @@ Common Warning Warn about code which might break strict aliasing rules Wstrict-aliasing= -Common Joined UInteger Warning +Common Joined UInteger Var(warn_strict_aliasing) Init(-1) Warning Warn about code which might break strict aliasing rules Wstrict-overflow @@ -163,7 +163,7 @@ Common Warning Warn about optimizations that assume that signed overflow is undefined Wstrict-overflow= -Common Joined UInteger Warning +Common Joined UInteger Var(warn_strict_overflow) Init(-1) Warning Warn about optimizations that assume that signed overflow is undefined Wswitch diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index a41f9725f38..6b145532ff4 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -2649,7 +2649,7 @@ Options} and @ref{Objective-C and Objective-C++ Dialect Options}. -Wsequence-point @gol -Wsign-compare @r{(only in C++)} @gol -Wstrict-aliasing @gol --Wstrict-overflow @gol +-Wstrict-overflow=1 @gol -Wswitch @gol -Wtrigraphs @gol -Wuninitialized @r{(only with} @option{-O1} @r{and above)} @gol diff --git a/gcc/flags.h b/gcc/flags.h index d52d030a0d7..e3174732995 100644 --- a/gcc/flags.h +++ b/gcc/flags.h @@ -137,16 +137,6 @@ extern void set_Wstrict_aliasing (int onoff); extern bool warn_larger_than; extern HOST_WIDE_INT larger_than_size; -/* Nonzero means warn about constructs which might not be strict - aliasing safe. */ - -extern int warn_strict_aliasing; - -/* Nonzero means warn about optimizations which rely on undefined - signed overflow. */ - -extern int warn_strict_overflow; - /* Temporarily suppress certain warnings. This is set while reading code from a system header file. */ diff --git a/gcc/opts.c b/gcc/opts.c index 5d952c6304e..16ca6bf81ab 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -58,14 +58,6 @@ bool extra_warnings; bool warn_larger_than; HOST_WIDE_INT larger_than_size; -/* Nonzero means warn about constructs which might not be - strict-aliasing safe. */ -int warn_strict_aliasing; - -/* Nonzero means warn about optimizations which rely on undefined - signed overflow. */ -int warn_strict_overflow; - /* Hack for cooperation between set_Wunused and set_Wextra. */ static bool maybe_warn_unused_parameter; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1c9c54c9b96..9a6eb68daab 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + PR 32102 + * gcc.dg/Wstrict-overflow-21.c: New. + * g++.dg/warn/Wstrict-aliasing-8.C: New. + +2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + PR middle-end/33092 * gcc.dg/pr33092.c: New. |