https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63766
Bug ID: 63766 Summary: [5 Regression] ICE: in gimple_predict_edge, at predict.c:578 Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org trippels@gcc2-power8 AST % cat ASTDumper.ii class A { public: void getValueType () { } void getTypeClass (); }; template <typename ImplClass> class B { public: void Visit (A *p1) { p1->getTypeClass (); static_cast<ImplClass *> (0)->VisitAtomicType (0); } }; class C : B<C> { template <typename Fn> void dumpChild (Fn p1) { p1 (); } public: void dumpTypeAsChild (int); void VisitAtomicType (A *p1) { p1->getValueType (); dumpTypeAsChild (0); } }; void C::dumpTypeAsChild (int) { dumpChild ([=] { Visit (0); }); } trippels@gcc2-power8 AST % g++ -std=c++11 -O2 -c ASTDumper.ii ASTDumper.ii: In function ‘C::dumpTypeAsChild(int)::<lambda()>’: ASTDumper.ii:45:1: internal compiler error: in gimple_predict_edge, at predict.c:578 } ^ 0x108a4513 gimple_predict_edge(edge_def*, br_predictor, int) ../../gcc/gcc/predict.c:578 0x104ea027 predict_edge(edge_def*, br_predictor, int) ../../gcc/gcc/cfghooks.c:737 0x108a37ab predict_edge_def ../../gcc/gcc/predict.c:664 0x108a37ab predict_loops ../../gcc/gcc/predict.c:1581 0x108a37ab tree_estimate_probability() ../../gcc/gcc/predict.c:2344 0x108a41e3 execute ../../gcc/gcc/predict.c:3056 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions.