let wp_stmt kf annots s obj = match s.skind with
    | Return (r, _) -> W.return kf r obj
    | Instr i -> begin match i with
        | (Set (lv, e, _))           -> W.assign lv e obj
        | (Call (res, fct, args, _)) -> 
            wp_call annots res fct args obj
        | (Asm _)                    -> 
            Wp_parameters.warning 
            "Unsupported inline assembler. Assuming no effects.@.";
            obj

        | Skip _ | Code_annot _ -> obj
      end
    | Break _ | Continue _ | Goto _ -> obj
    | Loop _-> (* this is not a real loop (exit before looping)
                  just ignore it ! *)
 obj
    | If _ -> assert false
    | Switch _-> assert false
    | Block _-> assert false
    | UnspecifiedSequence _-> assert false
    | TryExcept _ | TryFinally _ -> assert false