diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-01-15 10:05:59 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-01-15 10:05:59 +0100 |
commit | 3fccbb9ecec7daa3b6468f72379c0bd1fb5bb8d9 (patch) | |
tree | 08c17fa7abe77e42e46b0fdf6d49c9bdf48fc9a0 /gcc/common.opt | |
parent | 2aa89839f557b7467704ddffa4dc43a130e8d027 (diff) | |
download | gcc-3fccbb9ecec7daa3b6468f72379c0bd1fb5bb8d9.zip gcc-3fccbb9ecec7daa3b6468f72379c0bd1fb5bb8d9.tar.gz gcc-3fccbb9ecec7daa3b6468f72379c0bd1fb5bb8d9.tar.bz2 |
re PR middle-end/82694 (Linux kernel miscompiled since r250765)
PR middle-end/82694
* common.opt (fstrict-overflow): No longer an alias.
(fwrapv-pointer): New option.
* tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define
also for pointer types based on flag_wrapv_pointer.
* opts.c (common_handle_option) <case OPT_fstrict_overflow>: Set
opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if
opts->x_flag_wrapv got set.
* fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01
changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of
POINTER_TYPE_OVERFLOW_UNDEFINED.
* match.pd: Likewise in address comparison pattern.
* doc/invoke.texi: Document -fwrapv and -fstrict-overflow.
* gcc.dg/no-strict-overflow-7.c: Revert 2017-08-01 changes.
* gcc.dg/tree-ssa/pr81388-1.c: Likewise.
From-SVN: r256686
Diffstat (limited to 'gcc/common.opt')
-rw-r--r-- | gcc/common.opt | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/common.opt b/gcc/common.opt index a07cfdb..b20a9aa 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -2411,8 +2411,8 @@ Common Report Var(flag_strict_aliasing) Optimization Assume strict aliasing rules apply. fstrict-overflow -Common NegativeAlias Alias(fwrapv) -Treat signed overflow as undefined. Negated as -fwrapv. +Common Report +Treat signed overflow as undefined. Negated as -fwrapv -fwrapv-pointer. fsync-libcalls Common Report Var(flag_sync_libcalls) Init(1) @@ -2860,6 +2860,10 @@ fwhole-program Common Report Var(flag_whole_program) Init(0) Perform whole program optimizations. +fwrapv-pointer +Common Report Var(flag_wrapv_pointer) Optimization +Assume pointer overflow wraps around. + fwrapv Common Report Var(flag_wrapv) Optimization Assume signed arithmetic overflow wraps around. |