let ctrl_no_preds stmts =
let rec add acc stmts = match stmts with [] -> acc
| s::tl -> add (add_stmt acc s) tl
and add_stmt acc s =
let acc = if s.preds = [] then s::acc else acc in
match s.skind with
| Instr _ | Return _ | Continue _ | Break _ | Goto _ -> acc
| Block b | Switch (_, b, _, _) | Loop (_, b, _, _, _) ->
add acc b.bstmts
| UnspecifiedSequence seq ->
let b = Cil.block_from_unspecified_sequence seq in
add acc b.bstmts
| If (_, b1, b2, _) -> add (add acc b1.bstmts) b2.bstmts
| TryExcept (_, _, _, _) | TryFinally (_, _, _) -> acc
in add [] stmts