analyzer: handle comparisons against negated symbolic values [PR107948]
commit0b737090a69624dea5318c380620283f0321a92e
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 2 Dec 2022 02:28:55 +0000 (1 21:28 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Fri, 2 Dec 2022 02:28:55 +0000 (1 21:28 -0500)
tree1819faafd6a9e0b3e79c6028385bfa1c11efd738
parent5cb7d28dcfb11a2810db55b0bbd71fe562bdc2a3
analyzer: handle comparisons against negated symbolic values [PR107948]

gcc/analyzer/ChangeLog:
PR analyzer/107948
* region-model-manager.cc
(region_model_manager::maybe_fold_binop): Fold (0 - VAL) to -VAL.
* region-model.cc (region_model::eval_condition): Handle e.g.
"-X <= 0" as equivalent to X >= 0".

gcc/testsuite/ChangeLog:
PR analyzer/107948
* gcc.dg/analyzer/feasibility-pr107948.c: New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/region-model-manager.cc
gcc/analyzer/region-model.cc
gcc/testsuite/gcc.dg/analyzer/feasibility-pr107948.c [new file with mode: 0644]