let offsetmap_top_addresses_of_locals is_local =
let is_local_bytes = Location_Bytes.contains_addresses_of_locals is_local in
fun offsetmap ->
if Cvalue.V_Offsetmap.is_empty offsetmap
then Location_Bytes.Top_Param.top, offsetmap
else
let loc_contains_addresses_of_locals t =
let v = Cvalue.V_Or_Uninitialized.get_v t in
is_local_bytes v
in
let locals, result =
Cvalue.V_Offsetmap.top_stuff
loc_contains_addresses_of_locals
(fun v ->
Cvalue.V_Or_Uninitialized.unspecify_escaping_locals
is_local v)
Location_Bytes.Top_Param.join
Location_Bytes.Top_Param.bottom
offsetmap
in
locals, result