The code computing ranges in PHIs in the path solver reuses the
temporary ssa_global_cache by calling its clear method. Calling it on
an empty cache causes us to call memset with NULL.
Tested on x86-64 Linux.
gcc/ChangeLog:
PR tree-optimization/103229
* gimple-range-cache.cc (ssa_global_cache::clear): Do not pass
null value to memset.
gcc/testsuite/ChangeLog:
* gcc.dg/pr103229.c: New test.
void
ssa_global_cache::clear ()
{
- memset (m_tab.address(), 0, m_tab.length () * sizeof (irange *));
+ if (m_tab.address ())
+ memset (m_tab.address(), 0, m_tab.length () * sizeof (irange *));
}
// Dump the contents of the global cache to F.
--- /dev/null
+// { dg-do compile }
+// { dg-options "-O -w" }
+
+int main() {
+ int i;
+ for (; i;)
+ ;
+
+ return 0;
+}