https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80707
Bug ID: 80707 Summary: [8 Regression] r247844 causes error: extra outgoing edge Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org Target Milestone: --- Since r247844: trippels@gcc2-power8 ~ % cat tzfmt.ii struct A { int m_fn1(int &) const; }; int A::m_fn1(int &p1) const { int a[6]; int b = 0; for (int i;; i++) { if (a[i]) break; b++; } while (b) { int c; switch (b) { case 1: c = 0; break; case 5: c = a[0]; } if (c) p1 = 0; b--; } } trippels@gcc2-power8 ~ % g++ -c -O3 tzfmt.ii tzfmt.ii: In member function ‘int A::m_fn1(int&) const’: tzfmt.ii:4:5: error: extra outgoing edge 43->33 int A::m_fn1(int &p1) const { ^ tzfmt.ii:4:5: error: extra outgoing edge 44->33 tzfmt.ii:4:5: internal compiler error: verify_flow_info failed 0x105d8db3 verify_flow_info() ../../gcc/gcc/cfghooks.c:260 0x10bb613b checking_verify_flow_info ../../gcc/gcc/cfghooks.h:198 0x10bb613b cleanup_tree_cfg_noloop ../../gcc/gcc/tree-cfgcleanup.c:837 0x10bb613b cleanup_tree_cfg() ../../gcc/gcc/tree-cfgcleanup.c:883 0x10a3c147 execute_function_todo ../../gcc/gcc/passes.c:1921 0x10a3ced3 do_per_function ../../gcc/gcc/passes.c:1652 0x10a3d153 execute_todo ../../gcc/gcc/passes.c:2018