Module Db.Scope


module Scope: sig .. end
Interface for the Scope plugin.
See also internal documentation.

val get_data_scope_at_stmt : (Db_types.kernel_function ->
Cil_types.stmt ->
Cil_types.lval ->
Cilutil.StmtSet.t * (Cilutil.StmtSet.t * Cilutil.StmtSet.t))
Pervasives.ref
Raises Kernel_function.No_Definition if kf has no definition.
Returns 3 statement sets related to the value of lval before stmt :
val get_prop_scope_at_stmt : (Db_types.kernel_function ->
Cil_types.stmt ->
Cil_types.code_annotation ->
Cilutil.StmtSet.t * Cil_types.code_annotation list)
Pervasives.ref
compute the set of statements where the given annotation has the same value than it has before the given stmt. Also return the
val check_asserts : (unit -> Cil_types.code_annotation list) Pervasives.ref
Print how many assertions could be removed based on the previous analysis (get_prop_scope_at_stmt) and return the annotations that can be removed.
val rm_asserts : (unit -> unit) Pervasives.ref
Same analysis than check_asserts but change assert to remove by true
val get_defs : (Db_types.kernel_function ->
Cil_types.stmt ->
Cil_types.lval -> (Cilutil.StmtSet.t * Locations.Zone.t option) option)
Pervasives.ref
Returns the set of statements that define lval before stmt in kf. Also returns the zone that is possibly not defined. Can return None when the information is not available (Pdg missing).

Zones


type t_zones = Locations.Zone.t Inthash.t 
val build_zones : (Db_types.kernel_function ->
Cil_types.stmt -> Cil_types.lval -> Cilutil.StmtSet.t * t_zones)
Pervasives.ref
val pretty_zones : (Format.formatter -> t_zones -> unit) Pervasives.ref
val get_zones : (t_zones -> Cil_types.stmt -> Locations.Zone.t) Pervasives.ref