https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103597
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- For the C++ front-end, we have IF_STMT. Which is handled in cxx_block_may_fallthru: case IF_STMT: if (block_may_fallthru (THEN_CLAUSE (stmt))) return true; return block_may_fallthru (ELSE_CLAUSE (stmt)); - stmt = else_; - else if (integer_nonzerop (cond) && !TREE_SIDE_EFFECTS (else_)) - stmt = then_; - else if (integer_zerop (cond) && !TREE_SIDE_EFFECTS (then_)) - stmt = else_; I don't know if this runs counter to again to unreachable code warning experiment though ...