let separate_last_branch l = 
  let rec iter = function
      [] -> [], []
    | [i] as l -> begin
        match i.il0_t with
          (IL0stmtGoto _ | IL0stmtSwitch(_,[DEFAULT, _]) | IL0stmtReturn _)
            -> [], l
        | _ -> l, []
    end
    | h::t -> 
        let t1,t2 = iter t in
        h::t1, t2
  in
  iter l