Module 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
type marshal = unit
val init : 'a -> unit
val finalize : unit -> unit
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 morphstate : 'a -> 'b -> 'c
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 access : 'a -> 'b -> unit
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
include sig ... end
module C : sig ... end
val startcontext : unit -> D.t
val context : 'a -> 'b -> 'c -> unit
val name : unit -> string
val intdom_of_int : int -> ID.t
val size_of_type_in_bytes : GoblintCil.typ -> ID.t
val exp_contains_a_ptr : GoblintCil.exp -> bool
val lval_contains_a_ptr : GoblintCil.lval -> bool
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 get_ptr_deref_type : GoblintCil.typ -> GoblintCil.typ option
val eval_ptr_offset_in_binop : ('a, 'b, 'c, 'd) Analyses.ctx -> GoblintCil.exp -> GoblintCil.typ -> [> `Bot | `Lifted of ID.t | `Top ]
val offs_to_idx : GoblintCil.typ -> [< `Field of GoblintCil.fieldinfo * 'b | `Index of ID.t * 'c | `NoOffset ] as 'a -> ID.t
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
val startstate : 'a -> unit
val exitstate : 'a -> unit