MemOutOfBounds.Spec
include module type of struct include Analyses.IdentitySpec end
include module type of struct include Analyses.DefaultSpec end
Relatively safe default implementations of some boring Spec functions.
module G = Lattice.Unit
module V = Analyses.EmptyV
module P = Analyses.UnitP
val vdecl : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f
val asm : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e
val skip : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e
val query : 'b -> 'a Queries.t -> 'a0
val event : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f -> 'g
val sync : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f
val paths_as_set : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e list
module A = Analyses.UnitA
val body : ('a, 'b, 'c, 'd) Analyses.ctx -> GoblintCil.fundec -> 'e
val combine_env :
'a ->
GoblintCil.lval option ->
'b ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'c ->
'd ->
Queries.ask ->
'e
val threadenter :
('a, 'b, 'c, 'd) Analyses.ctx ->
multiple:'e ->
'f ->
'g ->
'h ->
'i list
val threadspawn :
('a, 'b, 'c, 'd) Analyses.ctx ->
multiple:'e ->
'f ->
'g ->
'h ->
'i ->
'j
module D = Lattice.Unit
val intdom_of_int : int -> ID.t
val size_of_type_in_bytes : GoblintCil.typ -> ID.t
val points_to_alloc_only :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.exp ->
bool
val get_size_of_ptr_target :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.exp ->
ValueDomainQueries.ID.t Queries.result
val eval_ptr_offset_in_binop :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.exp ->
GoblintCil.typ ->
[> `Bot | `Lifted of ID.t | `Top ]
val cil_offs_to_idx :
('a, 'b, 'c, 'd) Analyses.ctx ->
'e ->
GoblintCil.offset ->
PreValueDomain.Offs.idx
val check_unknown_addr_deref :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.exp ->
unit
val ptr_only_has_str_addr :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.exp ->
bool
val get_addr_offs : ('a, 'b, 'c, 'd) Analyses.ctx -> GoblintCil.exp -> ID.t
val check_lval_for_oob_access :
('a, 'b, 'c, 'd) Analyses.ctx ->
?is_implicitly_derefed:bool ->
GoblintCil.lval ->
unit
val check_no_binop_deref :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.exp ->
unit
val check_exp_for_oob_access :
('a, 'b, 'c, 'd) Analyses.ctx ->
?is_implicitly_derefed:bool ->
GoblintCil.exp ->
unit
val check_binop_exp :
('a, 'b, 'c, 'd) Analyses.ctx ->
GoblintCil.binop ->
GoblintCil.exp ->
GoblintCil.exp ->
GoblintCil.typ ->
unit
val check_count :
('a, 'b, 'c, 'd) Analyses.ctx ->
string ->
GoblintCil.exp ->
GoblintCil.exp ->
unit
val assign :
(D.t, 'a, 'b, 'c) Analyses.ctx ->
GoblintCil.lval ->
GoblintCil.exp ->
D.t
val branch : (D.t, 'a, 'b, 'c) Analyses.ctx -> GoblintCil.exp -> bool -> D.t
val return :
(D.t, 'a, 'b, 'c) Analyses.ctx ->
GoblintCil.exp option ->
GoblintCil.fundec ->
D.t
val special :
(D.t, 'a, 'b, 'c) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.varinfo ->
GoblintCil.exp list ->
D.t
val enter :
(D.t, 'a, 'b, 'c) Analyses.ctx ->
GoblintCil.lval option ->
GoblintCil.fundec ->
GoblintCil.exp list ->
(D.t * D.t) list
val combine_assign :
(D.t, 'a, 'b, 'c) Analyses.ctx ->
GoblintCil.lval option ->
'd ->
GoblintCil.fundec ->
GoblintCil.exp list ->
'e ->
D.t ->
Queries.ask ->
D.t