https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70590
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P1 Status|UNCONFIRMED |NEW Last reconfirmed| |2016-04-08 Target Milestone|--- |6.0 Ever confirmed|0 |1 --- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- trippels@gcc2-power8 xslt % cat txMozillaXMLOutput.ii struct nsCycleCollectionParticipant; struct A { void incr(void *, nsCycleCollectionParticipant *); void decr(void *, nsCycleCollectionParticipant *); }; template <class T> struct B { T *assign_with_AddRef_aRawPtr; T *assign_assuming_AddRef_oldPtr; void operator=(T *) { assign_with_AddRef_aRawPtr->AddRef(); assign_assuming_AddRef_oldPtr->Release(); } }; struct nsCycleCollectionParticipant {}; struct C { struct cycleCollection : nsCycleCollectionParticipant { static constexpr nsCycleCollectionParticipant *GetParticipant() { return &_cycleCollectorGlobal; } } static _cycleCollectorGlobal; void AddRef() { mRefCnt.incr(0, cycleCollection::GetParticipant()); } void Release() { mRefCnt.decr(0, cycleCollection::GetParticipant()); } A mRefCnt; }; struct D { D(bool); B<C> mNodeInfoManager; }; D::D(bool) { mNodeInfoManager = 0; } trippels@gcc2-power8 xslt % c++ -c -O2 txMozillaXMLOutput.ii txMozillaXMLOutput.ii: In member function ‘void C::AddRef()’: txMozillaXMLOutput.ii:29:36: error: location references block not in block tree D::D(bool) { mNodeInfoManager = 0; } ^ &_cycleCollectorGlobal A::incr (D.2923, 0B, &_cycleCollectorGlobal); txMozillaXMLOutput.ii:29:36: internal compiler error: verify_gimple failed 0x10b189e3 verify_gimple_in_cfg(function*, bool) ../../gcc/gcc/tree-cfg.c:5125 0x109ba45f execute_function_todo ../../gcc/gcc/passes.c:1958 0x109bb223 do_per_function ../../gcc/gcc/passes.c:1652 0x109bb42f execute_todo ../../gcc/gcc/passes.c:2010