https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106870
Bug ID: 106870 Summary: ctrl_altering flag is not set correctly Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org Target Milestone: --- When trying to add the following verification I run into various issues with the gimple_ctrl_altering_p flag which stmt_ends_bb_p which sets found_ctrl_stmt ultimatively relies on for the noreturn case. diff --git a/gcc/tree-cfg.cc b/gcc/tree-cfg.cc index bbe08357d6e..a939a11d8bb 100644 --- a/gcc/tree-cfg.cc +++ b/gcc/tree-cfg.cc @@ -5708,6 +5709,14 @@ gimple_verify_flow_info (void) seen_nondebug_stmt = true; } + if (!found_ctrl_stmt && EDGE_COUNT (bb->succs) != 1) + { + error ("basic block %d has no control altering stmt but %d " + "outgoing edges", + bb->index, EDGE_COUNT (bb->succs)); + err = 1; + } + gsi = gsi_last_nondebug_bb (bb); if (gsi_end_p (gsi)) continue;