Goblint_lib.CommonPrivThread-modular value analysis utilities for BasePriv and RelationPriv.
module Q = Queriesmodule IdxDom = ValueDomain.IndexDomainmodule VD = ValueDomain.Compoundmodule type AtomicParam = sig ... endmodule NoAtomic : AtomicParammodule ConfCheck : sig ... endmodule Protection : sig ... endmodule MutexGlobals : sig ... endmodule MayVars : sig ... endmodule MustVars : sig ... endmodule Locksets : sig ... endmodule WriteCenteredD : sig ... endmodule type Digest = sig ... endmodule ThreadDigest : DigestDigest to be used for analyses that account for all join-local contributions in some locally tracked datastructure, akin to the L component from the analyses in
module ThreadNotStartedDigest : DigestEgo-Lane Derived digest based on whether given threads have been started yet, can be used to refine any analysis @see PhD thesis of M. Schwarz once it is published ;)
module PerMutexTidCommon
(Digest : Digest)
(LD : Lattice.S)
(Cluster : Printable.S) :
sig ... endmodule PerMutexTidCommonNC (Digest : Digest) (LD : Lattice.S) : sig ... endval lift_lock :
Q.ask ->
('a -> LockDomain.MustLock.t -> 'a) ->
'a ->
ValueDomain.Addr.t ->
'aval lift_unlock :
Q.ask ->
('a -> LockDomain.MustLockset.elt -> 'a) ->
'a ->
ValueDomain.Addr.t ->
'a