package goblint
Static analysis framework for C
Install
Dune Dependency
Authors
Maintainers
Sources
goblint-2.2.1.tbz
sha256=ca24f72fa9a87d288affe97c411753f14b7802bab4ca3649b337276b89bf5674
sha512=394b3521ccda0da91540cebb2f433f7525763060be4bbe179edd3b952a3580a8e173c4e410fc6895dc67fe6d17e6699aeddfed600f4692858bec093dd912bf1e
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.UnitP
val asm : ('a, 'b, 'c, 'd) Analyses.ctx -> 'a
val skip : ('a, 'b, 'c, 'd) Analyses.ctx -> 'a
val sync : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'a
val paths_as_set : ('a, 'b, 'c, 'd) Analyses.ctx -> 'a list
module A = Analyses.UnitA
module D = Lattice.Unit
module C = Lattice.Unit
module V : sig ... end
module G = AccessDomain.EventSet
val do_access :
(D.t, G.t, C.t, V.t) Analyses.ctx ->
AccessKind.t ->
bool ->
GoblintCil.exp ->
unit
val access_one_top :
?force:bool ->
?deref:bool ->
(D.t, G.t, C.t, V.t) Analyses.ctx ->
AccessKind.t ->
bool ->
CilType.Exp.t ->
unit
Three access levels:
deref=false
,reach=false
- Accessexp
without dereferencing, used for all normal reads and all function call arguments.deref=true
,reach=false
- Accessexp
by dereferencing once (may-point-to), used for lval writes and shallow special accesses.deref=true
,reach=true
- Accessexp
by dereferencing transitively (reachable), used for deep special accesses.
Transfer functions:
val assign :
(D.t, G.t, C.t, V.t) Analyses.ctx ->
GoblintCil.lval ->
CilType.Exp.t ->
D.t
val branch : (D.t, G.t, C.t, V.t) Analyses.ctx -> CilType.Exp.t -> 'a -> D.t
val return :
(D.t, G.t, C.t, V.t) Analyses.ctx ->
CilType.Exp.t option ->
'a ->
D.t
val body : (D.t, 'a, 'b, 'c) Analyses.ctx -> 'd -> D.t
val special :
(D.t, G.t, C.t, V.t) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.Cil.varinfo ->
CilType.Exp.t list ->
D.t
val enter :
(D.t, 'a, 'b, 'c) Analyses.ctx ->
'd ->
'e ->
'f ->
(D.t * D.t) list
val combine_env :
(D.t, G.t, C.t, V.t) Analyses.ctx ->
'a ->
CilType.Exp.t ->
'b ->
CilType.Exp.t list ->
'c ->
'd ->
'e ->
'd
val query :
('b, G.t, 'c, MyCFG.node) Analyses.ctx ->
'a Queries.t ->
'a Queries.result
val event : (unit, G.t, 'a, MyCFG.node) Analyses.ctx -> Events.t -> 'b -> unit
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>