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-1.1.1.tbz
sha256=999272bfbd3b9b96fcd58987b237ac6e9fa6d92ef935cc89f1ea2b4205185141
sha512=f3bf6ab71cf8c258d3290da4bf9f6fe42d7c671822e0efeb0fc50afdff078ab15e352237e5c1db31c5aa3a9d430691268ed2e5e00da10f2615835f672f91683d
doc/goblint.lib/Osek/Spec/index.html
Module Osek.Spec
include module type of struct include Analyses.DefaultSpec end
val vdecl : ('a, 'b, 'c) Analyses.ctx -> 'd -> 'aval asm : ('a, 'b, 'c) Analyses.ctx -> 'aval skip : ('a, 'b, 'c) Analyses.ctx -> 'aval event : ('a, 'b, 'c) Analyses.ctx -> 'd -> 'e -> 'aval sync : ('a, 'b, 'c) Analyses.ctx -> 'd -> 'aval names : (LockDomain.Addr.t * 'a) -> stringmodule MyParam : sig ... endmodule M : sig ... endmodule Offs = ValueDomain.Offsmodule Lockset = LockDomain.Locksetmodule Flags = FlagModes.Spec.Dmodule Acc : sig ... endmodule AccKeySet : sig ... endmodule AccLoc : sig ... endmodule AccValSet : sig ... endval acc : AccValSet.t Acc.tval accKeys : AccKeySet.t Prelude.Ana.refmodule D = M.Dmodule C = M.Cmodule G = M.Gval offensivepriorities : (string, int) Prelude.Ana.Hashtbl.tval off_pry_with_flag : (string, (Flags.t * int) list) Prelude.Ana.Hashtbl.tval dummy_release : Prelude.Ana.fundec -> Cil.varinfoval dummy_get : Prelude.Ana.fundec -> Cil.varinfoval is_task_res' : (LockDomain.Addr.t * 'a) -> boolval partition : D.ReverseAddrSet.t -> D.ReverseAddrSet.t * D.ReverseAddrSet.tval lockset_to_task : D.ReverseAddrSet.t -> stringval mem : Prelude.Ana.exp -> D.ReverseAddrSet.t -> boolval get_val : Flags.key -> ('a * Flags.t) -> IntDomain.FlatPureIntegers.tval flag_list_to_string : Prelude.Ana.varinfo list -> stringval split_may_eq :
Flags.key ->
IntDomain.FlatPureIntegers.t ->
('a * Flags.t) list ->
('a * Flags.t) listval just_locks :
('a * Lockset.ReverseAddrSet.t * 'b) list ->
Lockset.ReverseAddrSet.elt list listval prys : ('a * Lockset.ReverseAddrSet.t * 'b) list -> string list listval offprys : ('a * Lockset.ReverseAddrSet.t * 'b) list -> int listval accprys : ('a * Lockset.ReverseAddrSet.t * 'b) list -> int listval maxpry : ('a * Lockset.ReverseAddrSet.t * 'b) list -> intval minpry : ('a * Lockset.ReverseAddrSet.t * 'b) list -> intval offpry : ('a * Lockset.ReverseAddrSet.t * 'b) list -> intval minoffpry : ('a * Lockset.ReverseAddrSet.t * 'b) list -> intval offpry_flags : Flags.t -> Cil.varinfo -> intval query_lv : Queries.ask -> Cil.exp -> Queries.LS.elt listval eval_fv : Queries.ask -> Cil.exp -> CilType.Varinfo.t optionval eval_arg :
('a, 'b, 'c) Analyses.ctx ->
Prelude.Ana.exp ->
Prelude.Ana.varinfoval add_concrete_access :
('a, [> `Bot | `Lifted of int64 ], 'b) Analyses.ctx ->
Flag.t ->
CilType.Location.t ->
Lockset.t ->
Flags.t ->
(Cil.varinfo * Offs.t * bool) ->
unitval type_inv_tbl : (int, CilType.Varinfo.t) Prelude.Ana.Hashtbl.tval type_inv : Prelude.Ana.compinfo -> Lval.CilLval.t listval best_type_inv : Cil.exp list -> (Prelude.Ana.varinfo * Offs.t) optionval add_type_access :
('a, [> `Bot | `Lifted of int64 ], 'b) Analyses.ctx ->
Flag.t ->
CilType.Location.t ->
Lockset.t ->
Flags.t ->
(Prelude.Ana.exp * bool) ->
unittype access = | Concrete of Prelude.Ana.exp option * Prelude.Ana.varinfo * Offs.t * bool| Region of Prelude.Ana.exp option * Prelude.Ana.varinfo * Offs.t * bool| Unknown of Prelude.Ana.exp * bool
type accesses = access listval struct_type_inv :
Prelude.Ana.varinfo ->
Offs.t ->
(Prelude.Ana.varinfo * Offs.t) optionval add_accesses :
('a, [> `Bot | `Lifted of int64 ], 'b) Analyses.ctx ->
accesses ->
Flags.t ->
D.t ->
unitval query :
(MutexAnalysis.Lockset.ReverseAddrSet.t, M.G.t, 'b) Analyses.ctx ->
'a Queries.t ->
'a Queries.resultval conv_offset :
([< `Field of 'b * 'a | `Index of Prelude.Ana.exp * 'a | `NoOffset ] as 'a) ->
[> `Field of 'b * 'c | `Index of ValueDomain.IndexDomain.t * 'c | `NoOffset ] as 'cval conv_const_offset :
Prelude.Ana.offset ->
[> `Field of Prelude.Ana.fieldinfo * 'a
| `Index of ValueDomain.IndexDomain.t * 'a
| `NoOffset ] as 'aval replace_elem :
('a
* ([< `Field of 'c * 'b | `Index of Prelude.Ana.exp * 'b | `NoOffset ] as 'b)) ->
Prelude.Ana.exp ->
Prelude.Ana.exp ->
'a
* ([> `Field of 'c * 'd
| `Index of ValueDomain.IndexDomain.t * 'd
| `NoOffset ] as 'd)val access_address :
Queries.ask ->
(Prelude.Ana.varinfo
* ([< `Field of Cil.fieldinfo * 'a
| `Index of Prelude.Ana.exp * 'a
| `NoOffset ] as 'a))
list ->
bool ->
Cil.lval ->
accessesval access_one_byval : Queries.ask -> bool -> Prelude.Ana.exp -> accessesval access_lv_byval : Queries.ask -> Prelude.Ana.lval -> accessesval access_one_top : Queries.ask -> bool -> Prelude.Ana.exp -> accessesval access_byval : Queries.ask -> bool -> Prelude.Ana.exp list -> accessesval access_reachable :
(Queries.LS.t Queries.t -> Queries.LS.t) ->
Prelude.Ana.exp list ->
access listval startstate : 'a -> D.ReverseAddrSet.tval exitstate : 'a -> D.ReverseAddrSet.tval threadenter : 'a -> 'b -> 'c -> 'd -> D.ReverseAddrSet.t listval threadspawn : ('a, 'b, 'c) Analyses.ctx -> 'd -> 'e -> 'f -> 'g -> 'aval activate_task : ('a, 'b, 'c) Analyses.ctx -> string -> unitval intrpt : (D.t, 'a, 'b) Analyses.ctx -> D.tval assign :
(D.t, [> `Bot | `Lifted of int64 ], 'a) Analyses.ctx ->
Prelude.Ana.lval ->
Prelude.Ana.exp ->
D.tval branch :
(D.t, [> `Bot | `Lifted of int64 ], 'a) Analyses.ctx ->
Prelude.Ana.exp ->
bool ->
D.tval body : (M.D.t, M.G.t, M.C.t) Analyses.ctx -> Prelude.Ana.fundec -> D.tval return :
(D.t, M.G.t, M.C.t) Analyses.ctx ->
Prelude.Ana.exp option ->
Prelude.Ana.fundec ->
D.tval eval_funvar :
(Flags.t, [> `Bot | `Lifted of int64 ], 'a) Analyses.ctx ->
Prelude.Ana.exp ->
D.t ->
unitval enter :
(M.D.t, 'a, 'b) Analyses.ctx ->
Prelude.Ana.lval option ->
Prelude.Ana.fundec ->
Prelude.Ana.exp list ->
(D.t * D.t) listval combine :
(M.D.t, M.G.t, M.C.t) Analyses.ctx ->
Prelude.Ana.lval option ->
Prelude.Ana.exp ->
Prelude.Ana.fundec ->
Prelude.Ana.exp list ->
'a ->
D.t ->
D.tval special :
(M.D.t, M.G.t, M.C.t) Analyses.ctx ->
Prelude.Ana.lval option ->
Prelude.Ana.varinfo ->
Prelude.Ana.exp list ->
D.tval es_to_string : Prelude.Ana.fundec -> 'a -> stringFinalization and other result printing functions:
val race_free : bool Prelude.Ana.refare we still race free
type access_status = | Race| Guarded of Mutex.Lockset.t| Priority of int| Defence of int * int| Flag of string| ReadOnly| ThreadLocal| HighRead| HighWrite| LowRead| LowWrite| BadFlag| GoodFlag| SomeFlag of int
module OffsMap : sig ... endmodules used for grouping varinfos by Offset
module OffsSet : sig ... endval get_acc_map :
Acc.key ->
(((CilType.Location.t * Flag.t * IntDomain.Booleans.t)
* Lockset.t
* OffsMap.key)
* Flags.t)
list
OffsMap.tval suppressed : int Prelude.Ana.refval filtered : int Prelude.Ana.refval postprocess_acc : Prelude.Ana.varinfo -> unitpostprocess_acc gl groups and report races in gl
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>