You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/analyses/apron/relationPriv.apron.ml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1242,7 +1242,7 @@ struct
1242
1242
)
1243
1243
else (
1244
1244
(* fold throws if the thread set is top *)
1245
-
let tids' =ConcDomain.ThreadSet.diff tids (ask.f Q.MustJoinedThreads) in(* avoid unnecessary imprecision by force joining already must-joined threads, e.g. 46-apron2/04-other-assume-inprec *)
1245
+
let tids' =ConcDomain.ThreadSet.diff_mustset tids (ask.f Q.MustJoinedThreads) in(* avoid unnecessary imprecision by force joining already must-joined threads, e.g. 46-apron2/04-other-assume-inprec *)
1246
1246
let (lmust', l') =ConcDomain.ThreadSet.fold (funtid (lmust, l) ->
Copy file name to clipboardExpand all lines: src/analyses/basePriv.ml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -636,7 +636,7 @@ struct
636
636
)
637
637
else (
638
638
(* fold throws if the thread set is top *)
639
-
let tids' =ConcDomain.ThreadSet.diff tids (ask.f Q.MustJoinedThreads) in(* avoid unnecessary imprecision by force joining already must-joined threads, e.g. 46-apron2/04-other-assume-inprec *)
639
+
let tids' =ConcDomain.ThreadSet.diff_mustset tids (ask.f Q.MustJoinedThreads) in(* avoid unnecessary imprecision by force joining already must-joined threads, e.g. 46-apron2/04-other-assume-inprec *)
640
640
let (lmust', l') =ConcDomain.ThreadSet.fold (funtid (lmust, l) ->
ifD.is_bot man.local then ( (* bot is All threads *)
86
-
M.info ~category:Imprecise"Thread created while ALL threads must-joined, continuing with no threads joined.";
87
-
D.top ()(* top is no threads *)
97
+
let (j, clean) =man.local in
98
+
ifMustTIDsWithBot.is_bot j then ( (* bot is All threads *)
99
+
raise Deadcode
88
100
)
89
101
else
90
102
matchThreadId.get_current (Analyses.ask_of_man fman) with
91
-
|`Liftedtid ->
92
-
let (j, clean) = man.local in
93
-
(MustTIDs.remove tid j, clean)
103
+
|`Lifted (ThreadIdDomain.Thread tid) ->
104
+
(MustTIDsWithBot.remove tid j, clean)
94
105
|_ ->
95
106
man.local
96
107
97
108
letqueryman (typea) (q: a Queries.t): a Queries.result =
98
109
match q with
99
-
|Queries.MustJoinedThreads -> (fst man.local:ConcDomain.MustThreadSet.t) (* type annotation needed to avoid "would escape the scope of its equation" *)
110
+
|Queries.MustJoinedThreads ->
111
+
(match ((fst man.local):MustTIDsWithBot.t) with
112
+
|`Liftedset -> set
113
+
|`Top -> Queries.Result.top q (* This is the lifted top of the reversed lattice, i.e., bottom, needed because of https://github.com/goblint/analyzer/issues/1978 *)
0 commit comments