Skip to content

Commit 125672a

Browse files
Use Option.map_default in
a few cases
1 parent ff6563c commit 125672a

File tree

1 file changed

+7
-15
lines changed

1 file changed

+7
-15
lines changed

src/analyses/apron/relationAnalysis.apron.ml

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -518,14 +518,10 @@ struct
518518
match desc.special args, f.vname with
519519
| Assert { exp; refine; _ }, _ -> assert_fn man exp refine
520520
| ThreadJoin { thread = id; ret_var = retvar }, _ ->
521-
(
522-
(* Forget value that thread return is assigned to *)
523-
let st' = forget_reachable man st [retvar] in
524-
let st' = Priv.thread_join ask man.global id st' in
525-
match r with
526-
| Some lv -> invalidate_one ask man st' lv
527-
| None -> st'
528-
)
521+
(* Forget value that thread return is assigned to *)
522+
let st' = forget_reachable man st [retvar] in
523+
let st' = Priv.thread_join ask man.global id st' in
524+
Option.map_default (invalidate_one ask man st') st' r
529525
| ThreadExit _, _ ->
530526
begin match ThreadId.get_current ask with
531527
| `Lifted tid ->
@@ -540,11 +536,10 @@ struct
540536
let id = List.hd args in
541537
Priv.thread_join ~force:true ask man.global id st
542538
| Rand, _ ->
543-
(match r with
544-
| Some lv ->
539+
Option.map_default (fun lv ->
545540
let st = invalidate_one ask man st lv in
546541
assert_fn {man with local = st} (BinOp (Ge, Lval lv, zero, intType)) true
547-
| None -> st)
542+
) st r
548543
| _, _ ->
549544
let lvallist e =
550545
match ask.f (Queries.MayPointTo e) with
@@ -572,10 +567,7 @@ struct
572567
let shallow_lvals = List.concat_map lvallist shallow_addrs in
573568
let st' = List.fold_left (invalidate_one ask man) st' shallow_lvals in
574569
(* invalidate lval if present *)
575-
match r with
576-
| Some lv -> invalidate_one ask man st' lv
577-
| None -> st'
578-
570+
Option.map_default (invalidate_one ask man st') st' r
579571

580572
let query_invariant man context =
581573
let keep_local = GobConfig.get_bool "ana.relation.invariant.local" in

0 commit comments

Comments
 (0)