let externalize return kf state =
let deps_return =
(match return.skind with
| Return (Some ({enode = Lval v}),_) ->
let deps, target =
!Values_To_Use.lval_to_loc_with_deps
~with_alarms:CilE.warn_none_mode
~deps:Zone.bottom
return
v
in
Lmap_bitwise.From_Model.LOffset.join
(Lmap_bitwise.From_Model.find_base
state.deps_table deps)
(Lmap_bitwise.From_Model.find_base
state.deps_table
(valid_enumerate_bits ~for_writing:false target))
| Return (None,_) ->
Lmap_bitwise.From_Model.LOffset.empty
| _ -> assert false)
in
let deps_table =
Lmap_bitwise.From_Model.filter_base
(Recording_To_Do.accept_base_in_lmap kf)
state.deps_table
in
{ deps_return = deps_return;
Function_Froms.deps_table = deps_table }