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
