[Bug rtl-optimization/81308] [8 regression] ICE in calc_dfs_tree, at dominance.c:458
trippels at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Nov 22 09:20:00 GMT 2017
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
More information about the Gcc-bugs
mailing list