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

Reply via email to