package goblint

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Data race analyzer without base --- this is the new standard

include module type of struct include UnitAnalysis.Spec end
include module type of struct include Analyses.DefaultSpec end

Relatively safe default implementations of some boring Spec functions.

type marshal = unit
val should_join : 'a -> 'b -> bool
val vdecl : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f
val asm : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e
val skip : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e
val morphstate : 'a -> 'b -> 'c
val sync : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f
val context : 'a -> 'b -> 'c
val access : 'a -> 'b -> unit
val assign : (D.t, 'a, 'b, 'c) Analyses.ctx -> Prelude.Ana.lval -> Prelude.Ana.exp -> D.t
val branch : (D.t, 'a, 'b, 'c) Analyses.ctx -> Prelude.Ana.exp -> bool -> D.t
val body : (D.t, 'a, 'b, 'c) Analyses.ctx -> Prelude.Ana.fundec -> D.t
val return : (D.t, 'a, 'b, 'c) Analyses.ctx -> Prelude.Ana.exp option -> Prelude.Ana.fundec -> D.t
val enter : (D.t, 'a, 'b, 'c) Analyses.ctx -> Prelude.Ana.lval option -> Prelude.Ana.fundec -> Prelude.Ana.exp list -> (D.t * D.t) list
val combine : 'a -> Prelude.Ana.lval option -> 'b -> Prelude.Ana.fundec -> Prelude.Ana.exp list -> 'c -> D.t -> D.t
val special : (D.t, 'a, 'b, 'c) Analyses.ctx -> Prelude.Ana.lval option -> Prelude.Ana.varinfo -> Prelude.Ana.exp list -> D.t
val startstate : 'a -> unit
val threadenter : 'a -> 'b -> 'c -> 'd -> unit list
val threadspawn : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f -> 'g -> 'h -> 'i
val exitstate : 'a -> unit
val name : unit -> string
module V0 : sig ... end
module V : sig ... end
module V0Set : sig ... end
module G : sig ... end
val safe : int Prelude.Ana.ref
val vulnerable : int Prelude.Ana.ref
val unsafe : int Prelude.Ana.ref
val init : 'a -> unit
val side_vars : ('a, [> `Lifted2 of V0Set.t ], 'b, [> `Right of CilType.Varinfo.t ]) Analyses.ctx -> Access.LVOpt.t -> Access.T.t -> unit
val side_access : ('a, [> `Lifted1 of Access.AS.t | `Lifted2 of V0Set.t ], 'b, [> `Left of Access.LVOpt.t * Access.T.t | `Right of CilType.Varinfo.t ]) Analyses.ctx -> Access.T.t -> Access.LVOpt.t -> (int * AccessKind.t * Node.t * CilType.Exp.t * MCPAccess.A.t) -> unit
val query : ('b, [> `Bot | `Lifted1 of Access.AS.t | `Lifted2 of V0Set.t ], 'c, V.t) Analyses.ctx -> 'a Queries.t -> 'a0 Queries.result
val event : ('a, 'b, 'c, 'd) Analyses.ctx -> Events.t -> ('e, [> `Lifted1 of Access.AS.t | `Lifted2 of V0Set.t ], 'f, [> `Left of Access.LVOpt.t * Access.T.t | `Right of CilType.Varinfo.t ]) Analyses.ctx -> 'g
val finalize : unit -> unit