let externalize return fundec 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
(Kstmt 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 target))
(*
(!Db.From.access deps state.deps_table)
(!Db.From.access (valid_enumerate_bits target) state.deps_table)
*)
| Return (None,_) ->
Lmap_bitwise.From_Model.LOffset.empty
| _ -> assert false)
in
let deps_table = Lmap_bitwise.From_Model.filter_base
(fun v -> not (Base.is_formal_or_local v fundec))
state.deps_table
in
{ deps_return = deps_return;
Function_Froms.deps_table = deps_table }