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: docs/user-guide/annotating.md
+1
Original file line number
Diff line number
Diff line change
@@ -66,3 +66,4 @@ Include `goblint.h` when using these.
66
66
* `__goblint_assume_join(id)` is like `pthread_join(id, NULL)`, but considers the given thread IDs must-joined even if Goblint cannot, e.g. due to non-uniqueness.
67
67
Notably, this annotation can be used after a threads joining loop to make the assumption that the loop correctly joined all those threads.
68
68
_Misuse of this annotation can cause unsoundness._
69
+
* `__goblint_globalize(ptr)` forces all data potentially pointed to by `ptr` to be treated as global by simulating it escaping the thread.
ifnot (Param.handle_atomic && ask.f MustBeAtomic) then
689
+
sideg (V.unprotected x) v; (* Delay publishing unprotected write in the atomic section. *)
685
690
if!earlyglobs then(* earlyglobs workaround for 13/60 *)
686
691
sideg (V.protected x) v
687
692
(* Unlock after invariant will still side effect refined value (if protected) from CPA, because cannot distinguish from non-invariant write since W is implicit. *)
688
693
);
689
-
if is_unprotected ask x then
694
+
ifParam.handle_atomic && ask.f MustBeAtomicthen
695
+
{st with cpa =CPA.add x v st.cpa; priv =P.add x st.priv} (* Keep write local as if it were protected by the atomic section. *)
696
+
elseif is_unprotected ask x then
690
697
st
691
698
else
692
699
{st with cpa =CPA.add x v st.cpa; priv =P.add x st.priv}
Copy file name to clipboardexpand all lines: src/config/options.schema.json
+2-2
Original file line number
Diff line number
Diff line change
@@ -747,7 +747,7 @@
747
747
"description":
748
748
"Which privatization to use? none/mutex-oplus/mutex-meet/mutex-meet-tid/protection/protection-read/mine/mine-nothread/mine-W/mine-W-noinit/lock/write/write+lock",
0 commit comments