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_mustprotectedvars :
mustprotectedvars ->
mustprotectedvars ->
Ppx_deriving_runtime.intval hash_mustprotectedvars : mustprotectedvars -> 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| MustProtectedVars : mustprotectedvars -> LS.t t| Invariant : invariant_context -> Invariant.t t| InvariantGlobal : Obj.t -> Invariant.t tArgument must be of corresponding Spec.V.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.
| MayAccessed : AccessDomain.EventSet.t tGADT 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