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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |trippels at gcc dot gnu.org

--- Comment #5 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Same ICE, different pattern on X86_64:

trippels@gcc67 ~ % cat PPCAsmParser.ii
struct A {
  int operator[](int) const {}
};
struct B {
  void m_fn1();
};
struct C {
  virtual bool m_fn2(int, unsigned &, A &, int &, unsigned long &, bool);
};
template <class MCAsmParserImpl> struct D {
  D(int) { MCAsmParserImpl(0, 0, 0, 0); }
};
int a;
namespace {
struct F : C {
  bool m_fn2(int, unsigned &, A &, int &, unsigned long &, bool);
  unsigned m_fn3(const A &, B &);
  F(int, int, int, int) {}
};
}
bool F::m_fn2(int, unsigned &, A &p3, int &, unsigned long &, bool) {
  B b;
  m_fn3(p3, b);
}
void fn1() { D<F>(0); }
unsigned F::m_fn3(const A &p1, B &p2) {
  for (int *p;; p++)
    switch (*p) {
    case 0:
      p1[a];
    case 1:
      p2.m_fn1();
    }
}

trippels@gcc67 ~ % g++ -w -c -O2 PPCAsmParser.ii
during GIMPLE pass: switchconv
PPCAsmParser.ii: In function ‘unsigned int {anonymous}::F::m_fn3(const A&,
B&)’:
PPCAsmParser.ii:34:1: internal compiler error: in calc_dfs_tree, at
dominance.c:458
 }
 ^
0x9cce37 calc_dfs_tree
        ../../gcc/gcc/dominance.c:458
0x9ce03d calculate_dominance_info(cdi_direction)
        ../../gcc/gcc/dominance.c:734
0xfdcb93 verify_ssa(bool, bool)
        ../../gcc/gcc/tree-ssa.c:1082
0xcc80e7 execute_function_todo
        ../../gcc/gcc/passes.c:2001
0xcc9012 execute_todo
        ../../gcc/gcc/passes.c:2048

Reply via email to