Module GStoreWideningSol.EffectivelyLocalAnalysis

Set of globals.

module G : Lattice.S

Domain for globals.

module D : Lattice.S

Domain for globals.

module C : Printable.S

Context information.

val name : string

Name of the analysis.

val startstate : D.t

Initial local state for main.

val startcontext : C.t

Initial local state for main.

Initial context for main.

A transfer function which handles the assignment of a rval to a lval, i.e., it handles program points of the form "lval = rval;"

val branch : (G.t, C.t, V.t) SimplifiedAnalysis.man -> D.t -> GoblintCil.exp -> bool -> D.t

A transfer function which handles conditional branching yielding the truth value passed as a boolean argument

A transfer function which handles the return statement, i.e., "return exp" or "return" in the passed function (fundec)

A 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

For a function call "lval = f(args)" or "f(args)", enter returns the initial state of the callee.

Combines the states before and after the call.

A 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 context : (G.t, C.t, V.t) SimplifiedAnalysis.man -> (D.t * C.t) -> GoblintCil.fundec -> D.t -> C.t

Compute the context for a function call, given the local state and context at the caller, the called function and the local state inside the callee

val threadenter : (G.t, C.t, V.t) SimplifiedAnalysis.man -> D.t -> GoblintCil.fundec -> GoblintCil.exp list -> D.t

Compute the start state of a new thread starting with the function given by fundec