analyzer: handle more casts of string literals [PR98797]
authorDavid Malcolm <dmalcolm@redhat.com>
Thu, 10 Feb 2022 00:06:15 +0000 (19:06 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Thu, 10 Feb 2022 18:00:58 +0000 (13:00 -0500)
commit2ac7b19f1e9219f46ccf55f25d8acb3e02e9a2d4
treef0b2beadb7c47003a45bf9cba95784980ed14165
parentb32305b41dcafc5fb6974c0da3ce2f62251afdbf
analyzer: handle more casts of string literals [PR98797]

gcc/analyzer/ChangeLog:
PR analyzer/98797
* region-model-manager.cc
(region_model_manager::maybe_fold_sub_svalue): Generalize getting
individual chars of a STRING_CST from element_region to any
subregion which is a concrete access of a single byte from its
parent region.
* region.cc (region::get_relative_concrete_byte_range): New.
* region.h (region::get_relative_concrete_byte_range): New decl.

gcc/testsuite/ChangeLog:
PR analyzer/98797
* gcc.dg/analyzer/casts-1.c: Mark xfails as fixed; add further
test coverage for casts of string literals.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/region-model-manager.cc
gcc/analyzer/region.cc
gcc/analyzer/region.h
gcc/testsuite/gcc.dg/analyzer/casts-1.c