let formals params args old_values state =
try
List.fold_left2
(fun (state, new_values) v a ->
let loc = loc_of_varinfo v in
{ state with subst = Subst.add v a state.subst },
Relations_type.Model.add_binding
~with_alarms:CilE.warn_none_mode ~exact:(valid_cardinal_zero_or_one loc)
new_values
loc
(!Value.eval_expr ~with_alarms:CilE.warn_none_mode old_values a))
(state, old_values)
params
args
with Invalid_argument _ ->
Options.warning ~once:true ~current:true
"variadic call detected. Using only %d argument(s)."
(min (List.length args) (List.length params));
state, old_values