let assign_set_value elts =
let pointer_string_id = string_id#register_blind_const "set" 0 in
let pointer_global_var_id = Globals.global_var_id#get_id_of 0 pointer_string_id in
let pointer_mmap_id = Globals.memory_map#map_new_var pointer_global_var_id in
let eltType =
let rec find_applied = function
t::lt ->
(try
[Utils.if_term_to_type t]
with Not_found -> find_applied lt)
| [] -> []
in
find_applied elts
in
ignore (Globals.type_table#register_type pointer_string_id (Set(eltType)));
Globals.value_table#set_value pointer_mmap_id (If_set(elts));
if (!debug_level >= 3) then
prerr_endline (" creating pointer "^(Globals.string_id#get_name pointer_string_id)
^" for value "^(ground_if_value_to_string (If_set(elts))));
If_const(pointer_string_id)