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/ThreadEscape/Spec/index.html
Module ThreadEscape.Spec
include module type of struct include Analyses.IdentitySpec end
include module type of struct include Analyses.DefaultSpec end
module P = Analyses.UnitP
val vdecl : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'a
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
val branch : ('a, 'b, 'c, 'd) Analyses.ctx -> GoblintCil.exp -> bool -> 'a
val body : ('a, 'b, 'c, 'd) Analyses.ctx -> GoblintCil.fundec -> 'a
val return :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.exp option ->
GoblintCil.fundec ->
'a
val enter :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.fundec ->
GoblintCil.exp list ->
('a * 'a) list
val combine_env :
'a ->
GoblintCil.lval option ->
'b ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'c ->
'd ->
Queries.ask ->
'd
val combine_assign :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.lval option ->
'e ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'f ->
'g ->
Queries.ask ->
'a
module ThreadIdSet : sig ... end
module D = EscapeDomain.EscapedVars
module C = EscapeDomain.EscapedVars
module V = Analyses.VarinfoV
module G = ThreadIdSet
val reachable : Queries.ask -> GoblintCil.exp -> D.t
val mpt : Queries.ask -> GoblintCil.exp -> D.t
val thread_id :
('a, 'b, 'c, 'd) Analyses.ctx ->
ThreadIdDomain.ThreadLifted.t Queries.result
val emit_escape_event : ('a, 'b, 'c, 'd) Analyses.ctx -> D.t -> unit
Emit an escape event: Only necessary when code has ever been multithreaded, or when about to go multithreaded.
val side_effect_escape :
('a, G.t, 'b, D.elt) Analyses.ctx ->
D.t ->
G.elt ->
unit
Side effect escapes: In contrast to the emitting the event, side-effecting is necessary in single threaded mode, since we rely on escape status in Base for passing locals reachable via globals
val query :
(D.t, ThreadIdSet.t, 'b, GoblintCil.varinfo) Analyses.ctx ->
'a Queries.t ->
'a Queries.result
val escape_rval : ('a, G.t, 'b, D.elt) Analyses.ctx -> GoblintCil.exp -> D.t
val assign :
(D.t, G.t, 'a, D.elt) Analyses.ctx ->
GoblintCil.lval ->
GoblintCil.exp ->
D.t
val special :
(D.t, G.t, 'a, D.elt) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.varinfo ->
GoblintCil.exp list ->
D.t
val startstate : 'a -> D.t
val exitstate : 'a -> D.t
val threadenter : 'a -> 'b -> 'c -> 'd -> D.t list
val threadspawn :
(D.t, G.t, 'a, D.elt) Analyses.ctx ->
'b ->
'c ->
GoblintCil.exp list ->
'd ->
D.t
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>