aboutsummaryrefslogtreecommitdiff
path: root/gcc/analyzer
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2022-01-18 10:03:53 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2022-01-18 15:55:12 -0500
commit79e746bb05e432dcd1c18161469272d67c33d79d (patch)
treedcc28f9b84126233c84a3d0f27c5060527e2b45d /gcc/analyzer
parentfe3ed885cda5ab920d361b694ee539242052022f (diff)
downloadgcc-79e746bb05e432dcd1c18161469272d67c33d79d.zip
gcc-79e746bb05e432dcd1c18161469272d67c33d79d.tar.gz
gcc-79e746bb05e432dcd1c18161469272d67c33d79d.tar.bz2
analyzer: fix ICE on realloc of zeroed memory [PR104062]
gcc/analyzer/ChangeLog: PR analyzer/104062 * region-model-manager.cc (region_model_manager::maybe_fold_sub_svalue): Avoid casting to NULL type when folding access to repeated svalue. gcc/testsuite/ChangeLog: PR analyzer/104062 * gcc.dg/analyzer/pr104062.c: New test. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diffstat (limited to 'gcc/analyzer')
-rw-r--r--gcc/analyzer/region-model-manager.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/analyzer/region-model-manager.cc b/gcc/analyzer/region-model-manager.cc
index 903cdfde..9d4f595 100644
--- a/gcc/analyzer/region-model-manager.cc
+++ b/gcc/analyzer/region-model-manager.cc
@@ -794,7 +794,8 @@ region_model_manager::maybe_fold_sub_svalue (tree type,
if (const repeated_svalue *repeated_sval
= parent_svalue->dyn_cast_repeated_svalue ())
- return get_or_create_cast (type, repeated_sval->get_inner_svalue ());
+ if (type)
+ return get_or_create_cast (type, repeated_sval->get_inner_svalue ());
return NULL;
}