method vinst i =
    begin match i with
      | Set (lv,_,_) -> self#do_assign lv
      | Call (lv_opt,exp,_,_) ->
          (match lv_opt with None -> ()
             | Some lv -> self#do_assign lv);
          let _, callees =
            !Value.expr_to_kernel_function
              ~with_alarms:CilE.warn_none_mode ~deps:None current_stmt exp
          in
          Kernel_function.Set.iter (fun kf -> self#join (!Db.Outputs.get_external kf)) callees
      | _ -> ()
    end;
    SkipChildren