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.3.0.tbz
sha256=b729c94adb383a39aea32eb005c988dfd44b92af22ee6a4eedf4239542ac6c26
sha512=643b98770e5fe5644324c95c9ae3a9f698f25c8b11b298f0751d524e0b20af368b2a465fc8200b75a73d48fc9a053fd90f5e8920d4db070927f93188bb8687e0
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.UnitPval vdecl : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'aval asm : ('a, 'b, 'c, 'd) Analyses.ctx -> 'aval skip : ('a, 'b, 'c, 'd) Analyses.ctx -> 'aval sync : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'aval paths_as_set : ('a, 'b, 'c, 'd) Analyses.ctx -> 'a listmodule A = Analyses.UnitAval branch : ('a, 'b, 'c, 'd) Analyses.ctx -> GoblintCil.exp -> bool -> 'aval body : ('a, 'b, 'c, 'd) Analyses.ctx -> GoblintCil.fundec -> 'aval return :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.exp option ->
GoblintCil.fundec ->
'aval enter :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.fundec ->
GoblintCil.exp list ->
('a * 'a) listval combine_env :
'a ->
GoblintCil.lval option ->
'b ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'c ->
'd ->
Queries.ask ->
'dval combine_assign :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.lval option ->
'e ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'f ->
'g ->
Queries.ask ->
'amodule ThreadIdSet : sig ... endmodule D = EscapeDomain.EscapedVarsmodule C = EscapeDomain.EscapedVarsmodule V = Analyses.VarinfoVmodule G = ThreadIdSetval reachable : Queries.ask -> GoblintCil.exp -> D.tval mpt : Queries.ask -> GoblintCil.exp -> D.tval thread_id :
('a, 'b, 'c, 'd) Analyses.ctx ->
ThreadIdDomain.ThreadLifted.t Queries.resultval emit_escape_event : ('a, 'b, 'c, 'd) Analyses.ctx -> D.t -> unitEmit 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 ->
unitSide 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.resultval escape_rval : ('a, G.t, 'b, D.elt) Analyses.ctx -> GoblintCil.exp -> D.tval assign :
(D.t, G.t, 'a, D.elt) Analyses.ctx ->
GoblintCil.lval ->
GoblintCil.exp ->
D.tval special :
(D.t, G.t, 'a, D.elt) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.varinfo ->
GoblintCil.exp list ->
D.tval startstate : 'a -> D.tval exitstate : 'a -> D.tval threadenter : 'a -> multiple:'b -> 'c -> 'd -> 'e -> D.t listval threadspawn :
(D.t, G.t, 'a, D.elt) Analyses.ctx ->
multiple:'b ->
'c ->
'd ->
GoblintCil.exp list ->
'e ->
D.t sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>