let collect_arg_ptr_call s x n b p =
if AnyVar.mem x then
(oracle "%s %a AnyVar" s pp_var_type x ;())
else
try
let (arr,calls) = ArgPReference.find x in
oracle "%s %a ArfPRef" s pp_var_type x;
if n <= arr then
(oracle "%s %a + call(%a,%d,%s)" s pp_var_type x
pp_var_type p n (string_addr b);
ArgPReference.replace x (arr,((n,(b,p))::calls)))
else
(oracle "%s %a remove %d used %d" s pp_var_type x arr n;
remove_ptr_reference_arg x)
with Not_found ->
oracle "%s %a not yet in ArgPref" s pp_var_type x;
let arr = stars_var_type_typ x in add_ptr_reference_arg x arr;
if ArgPReference.mem x then
(if n <= arr then
(oracle"%s %a + call(%a,%d,%s)"
s pp_var_type x pp_var_type p n (string_addr b);
ArgPReference.replace x (arr,[n,(b,p)]))
else ())