let callenv env stmt args =
let pre_label = Clabels.CallAt stmt.sid in
let m_pre = L.mem_at env pre_label in
let m_post = L.mem_at env Clabels.Here in
let translate_arg e =
match expr m_pre e with
| Warning(source,reason) ->
Datalib.Collector.add_warning ~source ~reason
"Can not call function, no translation for parameter '%a'"
!Ast_printer.d_exp e ;
raise Failed
| Result v -> v
in {
callsite = pre_label ;
m_pre = m_pre ;
m_post = m_post ;
v_args = List.map translate_arg args ;
}