https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87896
Bug ID: 87896 Summary: ICE in verify_flow_info failed Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: law at gcc dot gnu.org Target Milestone: --- Following causes ICE: $ cat table.i int a; void f(); int e(); void b() { int c = 1; for (; c <= 3;) { int d = e() && !0; switch (c) case 1: if (d) case 2: case 3: f(); if (a) c++; } } $ gcc table.i -c -O2 table.i: In function ‘b’: table.i:19:1: error: wrong amount of branch edges after conditional jump in bb 10 19 | } | ^ table.i:19:1: error: wrong number of branch edges after unconditional jump in bb 9 during RTL pass: outof_cfglayout table.i:19:1: internal compiler error: verify_flow_info failed 0x8d3f2b verify_flow_info() ../../gcc/cfghooks.c:265 0x8ed7e9 checking_verify_flow_info ../../gcc/cfghooks.h:198 0x8ed7e9 cfg_layout_finalize() ../../gcc/cfgrtl.c:4350 0x8ed971 execute ../../gcc/cfgrtl.c:3606 Started on trunk with r264491.