[Bug tree-optimization/83293] New: [8 regression] ICE: in gsi_insert_seq_nodes_after, at gimple-iterator.c:278

trippels at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Dec 5 19:41:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83293

            Bug ID: 83293
           Summary: [8 regression] ICE: in gsi_insert_seq_nodes_after,  at
                    gimple-iterator.c:278
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Keywords: needs-bisection
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org
  Target Milestone: ---

trippels@gcc67 ~ % cat XMPMeta-Serialize.ii
typedef long unsigned size_t;
template <typename _Iterator, typename> struct A {
  _Iterator _M_current;
  A(_Iterator p1) : _M_current(p1) {}
  _Iterator m_fn1() { return _M_current; }
};
template <typename _IteratorL, typename _IteratorR, typename _Container>
int operator==(A<_IteratorL, _Container> p1, A<_IteratorR, _Container> p2) {
  return p1.m_fn1() == p2.m_fn1();
}
struct B {
  struct {
    int *_M_start;
    int *_M_finish;
  } _M_impl;
};
struct C : B {
  A<int *, int> m_fn2() { return _M_impl._M_start; }
  A<int *, int> m_fn3() { return _M_impl._M_finish; }
  size_t m_fn4() { return _M_impl._M_finish - _M_impl._M_start; }
  int m_fn5() { return m_fn2() == m_fn3(); }
};
struct XMP_Node {
  C qualifiers;
} a;
size_t b;
size_t EstimateRDFSize(int p1) {
  size_t c(p1 * b);
  if (!a.qualifiers.m_fn5()) {
    p1 += 2;
    for (size_t d = 0, e = a.qualifiers.m_fn4(); d < e; ++d)
      c += EstimateRDFSize(0);
  }
  c += (p1 - 1) * b;
  return c;
}

trippels@gcc67 ~ % g++ -O2 -c XMPMeta-Serialize.ii
during GIMPLE pass: slsr
XMPMeta-Serialize.ii: In function ‘size_t EstimateRDFSize(int)’:
XMPMeta-Serialize.ii:27:8: internal compiler error: in
gsi_insert_seq_nodes_after, at gimple-iterator.c:278
 size_t EstimateRDFSize(int p1) {
        ^~~~~~~~~~~~~~~
0xada0d3 gsi_insert_seq_nodes_after
        ../../gcc/gcc/gimple-iterator.c:278
0x154254f insert_initializers
        ../../gcc/gcc/gimple-ssa-strength-reduction.c:3421
0x154254f analyze_candidates_and_replace
        ../../gcc/gcc/gimple-ssa-strength-reduction.c:3896
0x154254f execute
        ../../gcc/gcc/gimple-ssa-strength-reduction.c:3978


More information about the Gcc-bugs mailing list