Hello,

This is a follow-up of the merged series [1] where we started the
process to deprecate -Wstrict-overflow.  I'll copy/paste the motivations
for this effort from [1] for easier reference:

"The idea from this work is inspired by Bugzilla 80511, suggested by
Andrew in

https://gcc.gnu.org/pipermail/gcc-patches/2026-January/705746.html

and also by Richard comments about the current state of Wstrict-overflow
here:

https://gcc.gnu.org/pipermail/gcc-patches/2026-January/705482.html

'Ah, we should remove that note.  -Wstrict-overflow proved useless IMO,
it's way too noisy as it diagnoses when the compiler relies on overflow
not happening, not diagnosing when it possibly happens.  That's not a
very useful diagnostic to have - it does not point to a possible problem
in the code (we could as well diagnose _all_ signed arithmetic
operations for the same argument that we might eventually rely on
overflow not happening).' "

In this series the idea is to deprecate -Wstrict-overflow by removing
all its remaining logic, any related testcases and make the option a
no-op (does nothing if set).

Note that "Wstrict-overflow" and variants are still greppable in the
code, in particular because we can't just remove the option entirely.
If there's something else that we should be removing let me know and I'm
happy to shave off more lines.

Bootstrapped and regtested on x86_64 and aarch64.

[1] https://gcc.gnu.org/pipermail/gcc-patches/2026-January/706112.html

Daniel Barboza (8):
  tree-ssa-reassoc: remove strict_overflow_p from range_entry
  tree-vrp: remove compare_values_warnv ()
  gcc/expr.cc: remove Wstrict-overflow from maybe_optimize_sub_cmp_0
  tree-ssa-loop-ch.cc remove strict_overflow logic
  gcc/fold-const: remove fold_*_overflow_warnings
  testsuite: remove all Wstrict-overflow tests
  testsuite: remove Wstrict-overflow related tests
  gcc: deprecate -Wstrict-overflow

 gcc/c-family/c-common.cc                   | 10 ---
 gcc/c/c-fold.cc                            |  2 -
 gcc/common.opt                             |  2 +-
 gcc/coretypes.h                            | 24 ------
 gcc/expr.cc                                |  6 --
 gcc/flags.h                                |  3 -
 gcc/fold-const.cc                          | 99 ----------------------
 gcc/fold-const.h                           |  4 -
 gcc/gimple-fold.cc                         |  5 --
 gcc/opts.cc                                |  4 +-
 gcc/passes.cc                              | 12 ---
 gcc/testsuite/gcc.dg/Wstrict-overflow-10.c | 10 ---
 gcc/testsuite/gcc.dg/Wstrict-overflow-11.c | 19 -----
 gcc/testsuite/gcc.dg/Wstrict-overflow-12.c | 16 ----
 gcc/testsuite/gcc.dg/Wstrict-overflow-13.c | 18 ----
 gcc/testsuite/gcc.dg/Wstrict-overflow-14.c | 15 ----
 gcc/testsuite/gcc.dg/Wstrict-overflow-15.c | 15 ----
 gcc/testsuite/gcc.dg/Wstrict-overflow-16.c | 11 ---
 gcc/testsuite/gcc.dg/Wstrict-overflow-17.c | 20 -----
 gcc/testsuite/gcc.dg/Wstrict-overflow-18.c | 23 -----
 gcc/testsuite/gcc.dg/Wstrict-overflow-19.c | 15 ----
 gcc/testsuite/gcc.dg/Wstrict-overflow-2.c  | 13 ---
 gcc/testsuite/gcc.dg/Wstrict-overflow-20.c | 15 ----
 gcc/testsuite/gcc.dg/Wstrict-overflow-21.c | 12 ---
 gcc/testsuite/gcc.dg/Wstrict-overflow-23.c | 31 -------
 gcc/testsuite/gcc.dg/Wstrict-overflow-25.c | 11 ---
 gcc/testsuite/gcc.dg/Wstrict-overflow-26.c | 16 ----
 gcc/testsuite/gcc.dg/Wstrict-overflow-27.c | 28 ------
 gcc/testsuite/gcc.dg/Wstrict-overflow-4.c  | 13 ---
 gcc/testsuite/gcc.dg/Wstrict-overflow-6.c  | 13 ---
 gcc/testsuite/gcc.dg/Wstrict-overflow-7.c  | 10 ---
 gcc/testsuite/gcc.dg/Wstrict-overflow-8.c  | 10 ---
 gcc/testsuite/gcc.dg/pr36227.c             | 14 ---
 gcc/testsuite/gcc.dg/pr48022-1.c           | 14 ---
 gcc/testsuite/gcc.dg/pr48022-2.c           | 11 ---
 gcc/testsuite/gcc.dg/pr49705.c             | 19 -----
 gcc/testsuite/gcc.dg/pr52904.c             | 20 -----
 gcc/testsuite/gcc.dg/pr81592.c             |  2 +-
 gcc/testsuite/gcc.dg/pragma-diag-3.c       | 19 +----
 gcc/tree-cfgcleanup.cc                     | 17 +---
 gcc/tree-data-ref.cc                       |  2 -
 gcc/tree-ssa-ccp.cc                        |  7 +-
 gcc/tree-ssa-forwprop.cc                   | 14 +--
 gcc/tree-ssa-loop-ch.cc                    | 44 ----------
 gcc/tree-ssa-loop-niter.cc                 | 40 +--------
 gcc/tree-ssa-reassoc.cc                    | 45 ++--------
 gcc/tree-ssa-reassoc.h                     |  1 -
 gcc/tree-ssa-threadedge.cc                 |  7 --
 gcc/tree-vrp.cc                            | 44 +---------
 gcc/tree-vrp.h                             |  1 -
 gcc/vr-values.cc                           | 11 +--
 51 files changed, 25 insertions(+), 812 deletions(-)
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-10.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-11.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-12.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-13.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-14.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-15.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-16.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-17.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-18.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-19.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-2.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-20.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-21.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-23.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-25.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-26.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-27.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-4.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-6.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-7.c
 delete mode 100644 gcc/testsuite/gcc.dg/Wstrict-overflow-8.c
 delete mode 100644 gcc/testsuite/gcc.dg/pr36227.c
 delete mode 100644 gcc/testsuite/gcc.dg/pr48022-1.c
 delete mode 100644 gcc/testsuite/gcc.dg/pr48022-2.c
 delete mode 100644 gcc/testsuite/gcc.dg/pr49705.c
 delete mode 100644 gcc/testsuite/gcc.dg/pr52904.c

-- 
2.43.0

Reply via email to