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