Goblint_lib.QueriesStructures for the querying subsystem.
module GU = Goblintutilmodule ID : sig ... endmodule LS : sig ... endmodule TS : sig ... endmodule ES : sig ... endmodule VI : sig ... endtype iterprevvar =
int ->
(MyCFG.node * Obj.t * int) ->
MyARG.inline_edge ->
unitmodule SD = Basetype.Stringsmodule MayBool = BoolDomain.MayBoolmodule MustBool = BoolDomain.MustBoolmodule Unit = Lattice.Unitval compare_maybepublic :
maybepublic ->
maybepublic ->
Ppx_deriving_runtime.intval hash_maybepublic : maybepublic -> inttype maybepublicwithout = {global : CilType.Varinfo.t;write : bool;without_mutex : PreValueDomain.Addr.t;}val compare_maybepublicwithout :
maybepublicwithout ->
maybepublicwithout ->
Ppx_deriving_runtime.intval hash_maybepublicwithout : maybepublicwithout -> intval compare_mustbeprotectedby :
mustbeprotectedby ->
mustbeprotectedby ->
Ppx_deriving_runtime.intval hash_mustbeprotectedby : mustbeprotectedby -> intval compare_memory_access :
memory_access ->
memory_access ->
Ppx_deriving_runtime.intval hash_memory_access : memory_access -> inttype access = | Memory of memory_accessMemory location access (race).
*)| PointProgram point and state access (MHP), independent of memory location.
*)val compare_access : access -> access -> Ppx_deriving_runtime.intval hash_access : access -> intval compare_invariant_context :
invariant_context ->
invariant_context ->
Ppx_deriving_runtime.intval hash_invariant_context : invariant_context -> inttype _ t = | EqualSet : GoblintCil.exp -> ES.t t| MayPointTo : GoblintCil.exp -> LS.t t| ReachableFrom : GoblintCil.exp -> LS.t t| ReachableUkTypes : GoblintCil.exp -> TS.t t| Regions : GoblintCil.exp -> LS.t t| MayEscape : GoblintCil.varinfo -> MayBool.t t| MayBePublic : maybepublic -> MayBool.t t| MayBePublicWithout : maybepublicwithout -> MayBool.t t| MustBeProtectedBy : mustbeprotectedby -> MustBool.t t| MustLockset : LS.t t| MustBeAtomic : MustBool.t t| MustBeSingleThreaded : MustBool.t t| MustBeUniqueThread : MustBool.t t| CurrentThreadId : ThreadIdDomain.ThreadLifted.t t| MayBeThreadReturn : MayBool.t t| EvalFunvar : GoblintCil.exp -> LS.t t| EvalInt : GoblintCil.exp -> ID.t t| EvalStr : GoblintCil.exp -> SD.t t| EvalLength : GoblintCil.exp -> ID.t t| BlobSize : GoblintCil.exp -> ID.t t| CondVars : GoblintCil.exp -> ES.t t| PartAccess : access -> Obj.t tOnly queried by access and deadlock analysis. Obj.t represents MCPAccess.A.t, needed to break dependency cycle.
| IterPrevVars : iterprevvar -> Unit.t t| IterVars : itervar -> Unit.t t| HeapVar : VI.t t| IsHeapVar : GoblintCil.varinfo -> MayBool.t t| IsMultiple : GoblintCil.varinfo -> MustBool.t t| EvalThread : GoblintCil.exp -> ConcDomain.ThreadSet.t t| CreatedThreads : ConcDomain.ThreadSet.t t| MustJoinedThreads : ConcDomain.MustThreadSet.t t| Invariant : invariant_context -> Invariant.t t| WarnGlobal : Obj.t -> Unit.t tArgument must be of corresponding Spec.V.t.
| IterSysVars : VarQuery.t * Obj.t VarQuery.f -> Unit.t titer_vars for Constraints.FromSpec. Obj.t represents Spec.V.t.
GADT for queries with specific result type.
Container for explicitly polymorphic ctx.ask function out of ctx. To be used when passing entire ctx around seems inappropriate. Use Analyses.ask_of_ctx to convert ctx to ask.
module Result : sig ... endmodule Any : sig ... endval must_be_equal : ask -> GoblintCil.exp -> GoblintCil.exp -> boolBackwards-compatibility for former MustBeEqual query.
val may_be_equal : ask -> GoblintCil.exp -> GoblintCil.exp -> boolBackwards-compatibility for former MayBeEqual query.
val may_be_less : ask -> GoblintCil.exp -> GoblintCil.exp -> boolBackwards-compatibility for former MayBeLess query.
module Set : sig ... endmodule Hashtbl : sig ... end