Module Annot


module Annot: sig .. end
All these functions find the nodes needed for various kind of annotations.


Raises Kernel_function.No_Definition on annotations for function declarations.


module M: Macros
module G: PdgTypes.G
module Dpd: PdgTypes.Dpd
module FI: PdgIndex.FctIndex
module Key: PdgIndex.Key
type data_info = ((PdgTypes.Node.t * Locations.Zone.t option) list * Locations.Zone.t option)
option
data_info is composed of (node,z_part) list, undef_loc) and correspond to data dependencies nodes. Can be None if we don't know how to compute them.
type ctrl_info = PdgTypes.Node.t list 
ctrl_info correspond to control dependancies nodes
type decl_info = PdgTypes.Node.t list 
decl_info correspond to the declarations nodes of the variables needed to parse the annotation
val zone_info_nodes : Sets.t_pdg ->
Db.Properties.Interp.To_zone.t list option ->
((Sets.t_node * Sets.t_loc option) list * Sets.t_loc option) option
val get_decl_nodes : Sets.t_pdg -> Cil_datatype.Varinfo.Set.t -> Sets.t_node list
val find_nodes_for_function_contract : Sets.t_pdg ->
(Kernel_function.t ->
Db.Properties.Interp.To_zone.t list option * Cil_datatype.Varinfo.Set.t) ->
Sets.t_node list *
((Sets.t_node * Sets.t_loc option) list * Sets.t_loc option) option
val find_fun_precond_nodes : Sets.t_pdg ->
Cil_types.predicate ->
Sets.t_node list *
((Sets.t_node * Sets.t_loc option) list * Sets.t_loc option) option
val find_fun_postcond_nodes : Sets.t_pdg ->
Cil_types.predicate ->
Sets.t_node list *
((Sets.t_node * Sets.t_loc option) list * Sets.t_loc option) option
val find_fun_variant_nodes : Sets.t_pdg ->
Cil_types.term ->
Sets.t_node list *
((Sets.t_node * Sets.t_loc option) list * Sets.t_loc option) option
val find_code_annot_nodes : Sets.t_pdg ->
before:bool ->
Cil_types.stmt ->
Cil_types.code_annotation ->
Db.Pdg.t_node list * Sets.t_node list *
((Sets.t_node * Sets.t_loc option) list * Sets.t_loc option) option
Raises Not_found when the statement is unreachable.