]> git.ipfire.org Git - thirdparty/gcc.git/commit
analyzer: new warning: -Wanalyzer-div-by-zero (PR analyzer/124217)
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 24 Feb 2026 23:47:35 +0000 (18:47 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Tue, 28 Apr 2026 23:11:30 +0000 (19:11 -0400)
commit5b0937f037e3b341cd906db07cedf016ba78dd3b
treeb563c103e3335a06197d531c60d5d8f6593a5484
parenteb67d9885bdf469f3a8e4b43107777f35f3695c0
analyzer: new warning: -Wanalyzer-div-by-zero (PR analyzer/124217)

gcc/analyzer/ChangeLog:
PR analyzer/124217
* analyzer.opt (Wanalyzer-div-by-zero): New.
* analyzer.opt.urls: Regenerate.
* region-model.cc (class div_by_zero_diagnostic): New.
(region_model::get_gassign_result): Add warning for division by
zero if ctxt is non-null.  Bail out on such cases even if ctxt
is null.
* svalue.cc (type_can_have_value_range_p): Also handle frange.

gcc/ChangeLog:
PR analyzer/124217
* doc/invoke.texi: Add -Wanalyzer-div-by-zero.

gcc/testsuite/ChangeLog:
PR analyzer/124217
* c-c++-common/analyzer/divide-by-zero-1.c: Update to expect
-Wanalyzer-div-by-zero.
* c-c++-common/analyzer/divide-by-zero-pr124195-2.c: Likewise.
* gcc.dg/analyzer/data-model-1.c (test_21): Split out division by
zero cases into...
(test_21_division_by_zero): ...this, and...
(test_21_modulus_by_zero): ...this, updating these to expect
-Wanalyzer-div-by-zero warnings.
* gcc.dg/analyzer/divide-by-zero-float.c: New test.
* gcc.dg/analyzer/divide-by-zero-ice-pr124433.c: Update to expect
-Wanalyzer-div-by-zero.
* gcc.dg/analyzer/divide-by-zero-pr124195-1.c: Likewise.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/analyzer.opt
gcc/analyzer/analyzer.opt.urls
gcc/analyzer/region-model.cc
gcc/analyzer/svalue.cc
gcc/doc/invoke.texi
gcc/testsuite/c-c++-common/analyzer/divide-by-zero-1.c
gcc/testsuite/c-c++-common/analyzer/divide-by-zero-pr124195-2.c
gcc/testsuite/gcc.dg/analyzer/data-model-1.c
gcc/testsuite/gcc.dg/analyzer/divide-by-zero-float.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/analyzer/divide-by-zero-ice-pr124433.c
gcc/testsuite/gcc.dg/analyzer/divide-by-zero-pr124195-1.c