aboutsummaryrefslogtreecommitdiff
path: root/gcc/analyzer/supergraph.cc
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2020-02-03 08:30:54 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2020-02-03 14:25:39 -0500
commit5e10b9a28be9061b9b0c4aa3cfabe6d478e444e0 (patch)
treedd74ee22c20285a36ad3bfc616203215aecf9563 /gcc/analyzer/supergraph.cc
parent287ccd3bd6b92f11ec90c52ffccb764aacfadb89 (diff)
downloadgcc-5e10b9a28be9061b9b0c4aa3cfabe6d478e444e0.zip
gcc-5e10b9a28be9061b9b0c4aa3cfabe6d478e444e0.tar.gz
gcc-5e10b9a28be9061b9b0c4aa3cfabe6d478e444e0.tar.bz2
analyzer: fix ICE merging models containing label pointers (PR 93546)
PR analyzer/93546 reports an ICE within region_model::add_region_for_type when merging two region_models each containing a label pointer. The two labels are stored as pointers to symbolic_regions, but these regions were created with NULL type, leading to an assertion failure when a merged copy is created. The labels themselves have void (but not NULL) type. This patch updates make_region_for_type to use the type of the decl when creating such regions, rather than implicitly setting the region's type to NULL, fixing the ICE. gcc/analyzer/ChangeLog: PR analyzer/93546 * region-model.cc (region_model::on_call_pre): Update for new param of symbolic_region ctor. (region_model::deref_rvalue): Likewise. (region_model::add_new_malloc_region): Likewise. (make_region_for_type): Likewise, preserving type. * region-model.h (symbolic_region::symbolic_region): Add "type" param and pass it to base class ctor. gcc/testsuite/ChangeLog: PR analyzer/93546 * gcc.dg/analyzer/pr93546.c: New test.
Diffstat (limited to 'gcc/analyzer/supergraph.cc')
0 files changed, 0 insertions, 0 deletions