package goblint

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
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 -> 'a
val asm : ('a, 'b, 'c, 'd) Analyses.ctx -> 'a
val skip : ('a, 'b, 'c, 'd) Analyses.ctx -> 'a
val query : 'b -> 'a Queries.t -> 'a
val event : ('a, 'b, 'c, 'd) Analyses.ctx -> 'e -> 'f -> 'a
val morphstate : 'a -> 'b -> 'b
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 access : 'a -> 'b -> unit
val body : ('a, 'b, 'c, 'd) Analyses.ctx -> GoblintCil.fundec -> 'a
val combine_env : 'a -> GoblintCil.lval option -> 'b -> GoblintCil.fundec -> GoblintCil.exp list -> 'c -> 'd -> Queries.ask -> 'd
val threadenter : ('a, 'b, 'c, 'd) Analyses.ctx -> multiple:'e -> 'f -> 'g -> 'h -> 'a list
val threadspawn : ('a, 'b, 'c, 'd) Analyses.ctx -> multiple:'e -> 'f -> 'g -> 'h -> 'i -> 'a
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 * 'a | `Index of ID.t * 'a | `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
OCaml

Innovation. Community. Security.