@@ -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