https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64978
--- Comment #5 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Reduced testcase for comment 4: trippels@gcc20 test % cat VTableBuilder.ii class A { public: A(int, int); }; class B { public: void m_fn1(bool, const int *, int &); unsigned m_fn2(); }; namespace { class C { B &VTables; void m_fn3(A, unsigned, const int *, int &); public: int VFTableBuilder_VisitedBases; B VFTableBuilder_VTables; C() : VTables(VFTableBuilder_VTables) { m_fn3(A(0, 0), 0, 0, VFTableBuilder_VisitedBases); } }; } int a; void C::m_fn3(A, unsigned, const int *, int &) { for (;;) 1 ? VTables.m_fn2() : 0; } void B::m_fn1(bool, const int *, int &) { C(); } unsigned B::m_fn2() { m_fn1(0, 0, a); } trippels@gcc20 test % g++ -O2 -c VTableBuilder.ii VTableBuilder.ii:29:39: internal compiler error: in ipcp_verify_propagated_values, at ipa-cp.c:1060