]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
analyzer: fix ICE in binding_cluster ctor [PR106401]
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 22 Jul 2022 23:50:37 +0000 (19:50 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Fri, 22 Jul 2022 23:50:37 +0000 (19:50 -0400)
gcc/analyzer/ChangeLog:
PR analyzer/106401
* store.cc (binding_cluster::binding_cluster): Remove overzealous
assertion; we're checking for tracked_p in
store::get_or_create_cluster.

gcc/testsuite/ChangeLog:
PR analyzer/106401
* gcc.dg/analyzer/memcpy-2.c: New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/store.cc
gcc/testsuite/gcc.dg/analyzer/memcpy-2.c [new file with mode: 0644]

index e3dabf300df44618a45a3a5d802542937d2ee25b..0b3fb370d1ef75fab3a93dc0c649eafde1dab233 100644 (file)
@@ -1107,7 +1107,6 @@ binding_cluster::binding_cluster (const region *base_region)
 : m_base_region (base_region), m_map (),
   m_escaped (false), m_touched (false)
 {
-  gcc_assert (base_region->tracked_p ());
 }
 
 /* binding_cluster's copy ctor.  */
diff --git a/gcc/testsuite/gcc.dg/analyzer/memcpy-2.c b/gcc/testsuite/gcc.dg/analyzer/memcpy-2.c
new file mode 100644 (file)
index 0000000..88ec84c
--- /dev/null
@@ -0,0 +1,8 @@
+/* { dg-additional-options "-Wno-stringop-overflow" } */
+
+void
+main (int c, void *v)
+{
+  static char a[] = "";
+  __builtin_memcpy (v, a, -1);
+}