The relation oracle grows the internal vector of SSAs as needed, but due to an oversight was not growing the basic block vector. This fixes the oversight.
OK for trunk? PR tree-optimization/113735 gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/pr113735.c: New test. gcc/ChangeLog: * value-relation.cc (equiv_oracle::add_equiv_to_block): Call limit_check(). --- gcc/testsuite/gcc.dg/tree-ssa/pr113735.c | 19 +++++++++++++++++++ gcc/value-relation.cc | 1 + 2 files changed, 20 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr113735.c diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr113735.c b/gcc/testsuite/gcc.dg/tree-ssa/pr113735.c new file mode 100644 index 00000000000..7b864999277 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr113735.c @@ -0,0 +1,19 @@ +// { dg-do compile { target bitint } } +// { dg-options "-O1" } + +char b; +void bar (void); + +#if __BITINT_MAXWIDTH__ >= 6110 +void +foo (_BitInt(6110) j) +{ + for (;;) + { + _BitInt(10) k = b % j; + for (j = 6; j; --j) + if (k) + bar (); + } +} +#endif diff --git a/gcc/value-relation.cc b/gcc/value-relation.cc index 27f9ad61c0e..619ee5f0867 100644 --- a/gcc/value-relation.cc +++ b/gcc/value-relation.cc @@ -718,6 +718,7 @@ equiv_oracle::add_equiv_to_block (basic_block bb, bitmap equiv_set) // Check if this is the first time a block has an equivalence added. // and create a header block. And set the summary for this block. + limit_check (bb); if (!m_equiv[bb->index]) { ptr = (equiv_chain *) obstack_alloc (&m_chain_obstack, -- 2.43.0