method vinst = function
Call (lvo, f, args, _) -> begin
let use, def, args' = !getUseDefFunctionRef f args in
varUsed := VS.union !varUsed use;
varDefs := VS.union !varDefs def;
let self: cilVisitor = (self :> cilVisitor) in
(match lvo with None -> ()
| Some lv -> ignore (visitCilLval self lv));
ignore (visitCilExpr self f);
List.iter (fun arg -> ignore (visitCilExpr self arg)) args';
SkipChildren;
end
| Asm(_,_,slvl,_,_,_) -> List.iter (fun (_,s,lv) ->
match lv with (Var v, _off) ->
if s.[0] = '+' then
varUsed := VS.add v !varUsed;
| _ -> ()) slvl;
DoChildren
| _ -> DoChildren