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