package goblint
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Static analysis framework for C
Install
dune-project
Dependency
Authors
Maintainers
Sources
goblint-2.7.1.tbz
sha256=af01aac256229f33a90a9fcbfed04b01e3097f154d4d124f006476d6387c6a66
sha512=2a93bfe16881adbc2d8dcbfe38c1e19cd24ca105d8e1eda13d02440f3002874ffe2957dfd937510765233a054a40568b0052db92e31d382a5bd215d1ec12565c
doc/goblint.lib/Goblint_lib/AccessAnalysis/Spec/index.html
Module AccessAnalysis.Spec
Access analyzer without base --- this is the new standard
include module type of struct include Analyses.DefaultSpec end
module P = Analyses.EmptyPval asm : ('a, 'b, 'c, 'd) Analyses.man -> 'aval skip : ('a, 'b, 'c, 'd) Analyses.man -> 'aval sync : ('a, 'b, 'c, 'd) Analyses.man -> 'e -> 'aval paths_as_set : ('a, 'b, 'c, 'd) Analyses.man -> 'a listmodule A = Analyses.UnitAmodule D = Lattice.Unitmodule V : sig ... endmodule G = AccessDomain.EventSetval collect_local : bool refval emit_single_threaded : bool refval do_access :
(D.t, G.t, C.t, V.t) Analyses.man ->
AccessKind.t ->
bool ->
GoblintCil.exp ->
unitval access_one_top :
?force:bool ->
?deref:bool ->
(D.t, G.t, C.t, V.t) Analyses.man ->
AccessKind.t ->
bool ->
CilType.Exp.t ->
unitThree access levels:
deref=false,reach=false- Accessexpwithout dereferencing, used for all normal reads and all function call arguments.deref=true,reach=false- Accessexpby dereferencing once (may-point-to), used for lval writes and shallow special accesses.deref=true,reach=true- Accessexpby dereferencing transitively (reachable), used for deep special accesses.
Transfer functions:
val vdecl : (D.t, G.t, C.t, V.t) Analyses.man -> GoblintCil.varinfo -> D.tval assign :
(D.t, G.t, C.t, V.t) Analyses.man ->
GoblintCil.lval ->
CilType.Exp.t ->
D.tval branch : (D.t, G.t, C.t, V.t) Analyses.man -> CilType.Exp.t -> 'a -> D.tval return :
(D.t, G.t, C.t, V.t) Analyses.man ->
CilType.Exp.t option ->
'a ->
D.tval body : (D.t, 'a, 'b, 'c) Analyses.man -> 'd -> D.tval special :
(D.t, G.t, C.t, V.t) Analyses.man ->
GoblintCil.lval option ->
GoblintCil.Cil.varinfo ->
CilType.Exp.t list ->
D.tval enter :
(D.t, 'a, 'b, 'c) Analyses.man ->
'd ->
'e ->
'f ->
(D.t * D.t) listval combine_env :
(D.t, G.t, C.t, V.t) Analyses.man ->
'a ->
CilType.Exp.t ->
'b ->
CilType.Exp.t list ->
'c ->
'd ->
'e ->
'dval combine_assign :
(D.t, G.t, C.t, V.t) Analyses.man ->
GoblintCil.lval option ->
'a ->
'b ->
'c ->
'd ->
'e ->
'f ->
D.tval threadspawn :
(D.t, G.t, C.t, V.t) Analyses.man ->
multiple:'a ->
GoblintCil.lval option ->
'b ->
'c ->
'd ->
D.tval query :
('b, G.t, 'c, MyCFG.node) Analyses.man ->
'a Queries.t ->
'a Queries.resultval event : (unit, G.t, 'a, MyCFG.node) Analyses.man -> Events.t -> 'b -> unit sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>