Skip to content

Commit bb534ff

Browse files
Simplify invalidation
Co-authored-by: Simmo Saan <[email protected]>
1 parent e03a6f7 commit bb534ff

File tree

1 file changed

+10
-21
lines changed

1 file changed

+10
-21
lines changed

src/analyses/apron/relationAnalysis.apron.ml

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -465,33 +465,22 @@ struct
465465
(* Give the set of reachables from argument. *)
466466
let reachables (ask: Queries.ask) es =
467467
let reachable e st =
468-
match st with
469-
| None -> None
470-
| Some st ->
471-
let ad = ask.f (Queries.ReachableFrom e) in
472-
(* See https://github.com/goblint/analyzer/issues/1535 *)
473-
let ad = Queries.AD.remove UnknownPtr ad in
474-
Some (Queries.AD.join ad st)
468+
let ad = ask.f (Queries.ReachableFrom e) in
469+
Queries.AD.join ad st
475470
in
476-
List.fold_right reachable es (Some (Queries.AD.empty ()))
471+
List.fold_right reachable es (Queries.AD.empty ())
477472

478473

479474
let forget_reachable man st es =
480475
let ask = Analyses.ask_of_man man in
481476
let rs =
482-
match reachables ask es with
483-
| None ->
484-
(* top reachable, so try to invalidate everything *)
485-
RD.vars st.rel
486-
|> List.filter_map RV.to_cil_varinfo
487-
|> List.map Cil.var
488-
| Some ad ->
489-
let to_cil addr rs =
490-
match addr with
491-
| Queries.AD.Addr.Addr mval -> (ValueDomain.Addr.Mval.to_cil mval) :: rs
492-
| _ -> rs
493-
in
494-
Queries.AD.fold to_cil ad []
477+
let ad = reachables ask es in
478+
let to_cil addr rs =
479+
match addr with
480+
| Queries.AD.Addr.Addr mval -> (ValueDomain.Addr.Mval.to_cil mval) :: rs
481+
| _ -> rs
482+
in
483+
Queries.AD.fold to_cil ad []
495484
in
496485
List.fold_left (fun st lval ->
497486
invalidate_one ask man st lval

0 commit comments

Comments
 (0)