package goblint
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=99b78e6def71534d195eef9084baa26d8334b36084e120aa6afb300c9bf8afa6
    
    
  sha512=f3162bd95a03c00358a2991f6152fc6169205bfb4c55e2c483e98cc3935673df9656d025b6f1ea0fa5f1bd0aee037d4f483966b0d2907e3fa9bf11a93a3392af
    
    
  doc/goblint.lib/Goblint_lib/WitnessConstraints/PathSensitive3/argument-1-Spec/index.html
Parameter PathSensitive3.Spec
module C : Printable.Smodule V : Analyses.SpecSysVarGlobal constraint variables.
module P : DisjointDomain.Representative with type elt := D.tGlobal constraint variables.
Auxiliary data (outside of solution domains) that needs to be marshaled and unmarshaled. This includes: * hashtables, * varinfos (create_var), * RichVarinfos.
val init : marshal option -> unitInitialize using unmarshaled auxiliary data (if present).
val finalize : unit -> marshalFinalize and return auxiliary data to be marshaled.
val startstate : GoblintCil.varinfo -> D.tval morphstate : GoblintCil.varinfo -> D.t -> D.tval exitstate : GoblintCil.varinfo -> D.tval context : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  GoblintCil.fundec ->
  D.t ->
  C.tval startcontext : unit -> C.tval query : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  'a Queries.t ->
  'a Queries.resultval assign : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  GoblintCil.lval ->
  GoblintCil.exp ->
  D.tA transfer function which handles the assignment of a rval to a lval, i.e., it handles program points of the form "lval = rval;"
val vdecl : (D.t, G.t, C.t, V.t) Analyses.ctx -> GoblintCil.varinfo -> D.tA transfer function used for declaring local variables. By default only for variable-length arrays (VLAs).
val branch : (D.t, G.t, C.t, V.t) Analyses.ctx -> GoblintCil.exp -> bool -> D.tA transfer function which handles conditional branching yielding the truth value passed as a boolean argument
val body : (D.t, G.t, C.t, V.t) Analyses.ctx -> GoblintCil.fundec -> D.tA transfer function which handles going from the start node of a function (fundec) into its function body. Meant to handle, e.g., initialization of local variables
val return : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  GoblintCil.exp option ->
  GoblintCil.fundec ->
  D.tA transfer function which handles the return statement, i.e., "return exp" or "return" in the passed function (fundec)
A transfer function meant to handle inline assembler program points
A transfer function which works as the identity function, i.e., it skips and does nothing. Used for empty loops.
val special : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  GoblintCil.lval option ->
  GoblintCil.varinfo ->
  GoblintCil.exp list ->
  D.tA transfer function which, for a call to a special function f "lval = f(args)" or "f(args)", computes the caller state after the function call
val enter : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  GoblintCil.lval option ->
  GoblintCil.fundec ->
  GoblintCil.exp list ->
  (D.t * D.t) listFor a function call "lval = f(args)" or "f(args)", enter returns a caller state, and the initial state of the callee. In enter, the caller state can usually be returned unchanged, as combine_env and combine_assign (below) will compute the caller state after the function call, given the return state of the callee
val combine_env : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  GoblintCil.lval option ->
  GoblintCil.exp ->
  GoblintCil.fundec ->
  GoblintCil.exp list ->
  C.t option ->
  D.t ->
  Queries.ask ->
  D.tCombine environment (global variables, mutexes, etc) between local state (first component from enter) and function return.
This shouldn't yet assign to the lval.
val combine_assign : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  GoblintCil.lval option ->
  GoblintCil.exp ->
  GoblintCil.fundec ->
  GoblintCil.exp list ->
  C.t option ->
  D.t ->
  Queries.ask ->
  D.tCombine return value assignment to local state (result from combine_env) and function return.
This should only assign to the lval.
val threadenter : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  multiple:bool ->
  GoblintCil.lval option ->
  GoblintCil.varinfo ->
  GoblintCil.exp list ->
  D.t listReturns initial state for created thread.
val threadspawn : 
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  multiple:bool ->
  GoblintCil.lval option ->
  GoblintCil.varinfo ->
  GoblintCil.exp list ->
  (D.t, G.t, C.t, V.t) Analyses.ctx ->
  D.tUpdates the local state of the creator thread using initial state of created thread.