module Annot:All these functions find the nodes needed for various kind of annotations.sig
..end
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
typedata_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.typectrl_info =
PdgTypes.Node.t list
ctrl_info
correspond to control dependancies nodestypedecl_info =
PdgTypes.Node.t list
decl_info
correspond to the declarations nodes of the variables needed to
parse the annotationval 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
Not_found
when the statement is unreachable.