diff --git a/src/analyses/malloc_null.ml b/src/analyses/malloc_null.ml index d7c1c954e4..ee5c23914c 100644 --- a/src/analyses/malloc_null.ml +++ b/src/analyses/malloc_null.ml @@ -95,10 +95,14 @@ struct let remove_unreachable (ask: Queries.ask) (args: exp list) (st: D.t) : D.t = let reachable = let do_exp e = - match ask.f (Queries.ReachableFrom e) with - | a when not (Queries.LS.is_top a) -> - let to_extra (v,o) xs = AD.of_mval (v, Offs.of_exp o) :: xs in - Queries.LS.fold to_extra (Queries.LS.remove (dummyFunDec.svar, `NoOffset) a) [] + match ask.f (Queries.ReachableFromA e) with + | a when not (Queries.AD.is_top a) -> + Queries.AD.fold ( + fun addr xs -> + match addr with + | Queries.AD.Addr.Addr (v,o) -> AD.of_mval (v,o) :: xs + | _ -> xs + ) a [] (* Ignore soundness warnings, as invalidation proper will raise them. *) | _ -> [] in