analyzer: fix folding of '(PTR + 0) => PTR' [PR105784]
authorDavid Malcolm <dmalcolm@redhat.com>
Wed, 30 Nov 2022 00:56:27 +0000 (19:56 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Wed, 30 Nov 2022 00:56:27 +0000 (19:56 -0500)
commit3a32fb2eaa761aac13ffe5424748d5839038ef66
treee5df88b6099b404c5fdd1c1d99f065ab976cafc7
parent000e9863120cbc75a0f8d497264519974c97669f
analyzer: fix folding of '(PTR + 0) => PTR' [PR105784]

gcc/analyzer/ChangeLog:
PR analyzer/105784
* region-model-manager.cc
(region_model_manager::maybe_fold_binop): For POINTER_PLUS_EXPR,
PLUS_EXPR and MINUS_EXPR, eliminate requirement that the final
type matches that of arg0 in favor of a cast.

gcc/testsuite/ChangeLog:
PR analyzer/105784
* gcc.dg/analyzer/torture/fold-ptr-arith-pr105784.c: New test.

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