let doInstr stmt instr state =
!Db.progress ();
P.debug "doInstr : %a" !Ast_printer.d_instr instr;
match instr with
| Set (lv, exp, _) ->
let new_state = process_asgn current_pdg state stmt lv exp in
Dataflow.Done new_state
| Call (lvaloption,funcexp,argl,_) ->
!Db.progress ();
let new_state = process_call current_pdg state stmt
lvaloption funcexp argl in
Dataflow.Done new_state
| Code_annot (annot, _) ->
process_code_annot current_pdg stmt annot; Dataflow.Default
| Skip _ -> process_skip current_pdg stmt ; Dataflow.Default
| Asm _ -> P.fatal ~current:true "inline assembly instruction"