]> git.ipfire.org Git - thirdparty/gcc.git/commit
gcc/tree.h, match.pd: remove 'warn_strict_overflow' ref
authorDaniel Barboza <daniel.barboza@oss.qualcomm.com>
Mon, 12 Jan 2026 12:02:26 +0000 (04:02 -0800)
committerDaniel Barboza <daniel.barboza@oss.qualcomm.com>
Wed, 14 Jan 2026 00:48:28 +0000 (21:48 -0300)
commit2fb19bb38bb1892cba56c52c132c22731bbdc2e9
tree517be39d69a96eaf4ad68f2f58653f3b36f9dbcf
parentf9a7caf70378320cd2fbed3cfad70c49c73b7da5
gcc/tree.h, match.pd: remove 'warn_strict_overflow' ref

During ML discussions of a match.pd pattern that was introducing a new
instance of 'warn_strict_overflow', Richard mentioned that this use
should be discouraged [1]. After pointing out that this usage was
documented in tree.h he then explained that we should remove the note
from the header [2]. Here's the reasoning:

"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)."

Aside from removing the tree.h node we're also removing the 2 references
in match.pd. match.pd patterns tend to be copied around to serve as a
base for new patterns (like I did in [3] adding a
'fold_overflow_warning'), and if we want to discourage the use avoiding
its spread is a good start.

Note that there are a lot of references left, most of them in
gcc/fold-const.cc. Some references are using in nested helpers inside
the file, entangled with code that does other things. Removing all
references from the project is out of scope for this quick patch.

[1] https://gcc.gnu.org/pipermail/gcc-patches/2026-January/705320.html
[2] https://gcc.gnu.org/pipermail/gcc-patches/2026-January/705482.html
[3] https://gcc.gnu.org/pipermail/gcc-patches/2026-January/704992.html

gcc/ChangeLog:

* match.pd: remove 'fold_overflow_warning' references.
* tree.h (TYPE_OVERFLOW_UNDEFINED): remove note telling
that we must use warn_strict_overflow for every optimization
based on TYPE_OVERFLOW_UNDEFINED.

gcc/testsuite/ChangeLog:

* gcc.dg/Wstrict-overflow-1.c: Removed because we no longer
issue a 'fold_overflow_warning' with the
`(le (minus (@0 INTEGER_CST@1)) INTEGER_CST@2)` pattern.

Signed-off-by: Daniel Barboza <daniel.barboza@oss.qualcomm.com>
gcc/match.pd
gcc/testsuite/gcc.dg/Wstrict-overflow-1.c [deleted file]
gcc/tree.h