diff options
author | Benjamin Priour <vultkayn@gcc.gnu.org> | 2023-06-08 11:38:08 +0200 |
---|---|---|
committer | Benjamin Priour <vultkayn@gcc.gnu.org> | 2023-06-08 11:50:21 +0200 |
commit | 9589a46ddadc8b93c224c3f84fa94746c04596bf (patch) | |
tree | 1f30640cf3fdff7ab0aaa438808fd6a8c02d289c /gcc/range-op-float.cc | |
parent | fcbef8e431c246c1f584537a08d58fcd5c5a1831 (diff) | |
download | gcc-9589a46ddadc8b93c224c3f84fa94746c04596bf.zip gcc-9589a46ddadc8b93c224c3f84fa94746c04596bf.tar.gz gcc-9589a46ddadc8b93c224c3f84fa94746c04596bf.tar.bz2 |
analyzer: Standalone OOB-warning [PR109437, PR109439]
This patch enhances -Wanalyzer-out-of-bounds that is no longer paired
with a -Wanalyzer-use-of-uninitialized-value on out-of-bounds-read.
This also fixes PR analyzer/109437.
Before there could always be at most one OOB-read warning per frame because
-Wanalyzer-use-of-uninitialized-value always terminates the analysis
path.
PR 109439
gcc/analyzer/ChangeLog:
* bounds-checking.cc (region_model::check_symbolic_bounds): Returns whether the BASE_REG
region access was OOB.
(region_model::check_region_bounds): Likewise.
* region-model.cc (region_model::get_store_value): Creates an
unknown svalue on OOB-read access to REG.
(region_model::check_region_access): Returns whether an unknown svalue needs be created.
(region_model::check_region_for_read): Passes check_region_access return value.
* region-model.h: Update prior function definitions.
gcc/testsuite/ChangeLog:
* gcc.dg/analyzer/out-of-bounds-2.c: Cleaned test for uninitialized-value warning
* gcc.dg/analyzer/out-of-bounds-5.c: Likewise.
* gcc.dg/analyzer/pr101962.c: Likewise.
* gcc.dg/analyzer/realloc-5.c: Likewise.
* gcc.dg/analyzer/pr109439.c: New test.
Diffstat (limited to 'gcc/range-op-float.cc')
0 files changed, 0 insertions, 0 deletions