module Key:sig
..end
The keys can be used to identify an element of a function.
Have a look at the type t
to know which kind of elements can be
identified.
type
key = private
| |
SigKey of |
(* | key for an element of the function signature input/output nodes of the function | *) |
| |
VarDecl of |
(* | variable declaration local, parameter or global variable definition | *) |
| |
Stmt of |
(* | any statement, except a call simple statement (not call) excluding its label (stmt.id) | *) |
| |
CallStmt of |
(* | call statement call statement | *) |
| |
Label of |
(* | program label Labels are considered as function elements by themselves. | *) |
| |
SigCallKey of |
(* | key for an element of a call signature Key for an element of a call (input or output). The call is identified by the statement. | *) |
include Datatype.S
val param_key : int -> t
val implicit_in_key : Locations.Zone.t -> t
val entry_point : t
val top_input : t
val output_key : t
val out_from_key : Locations.Zone.t -> t
this is for the nodes inside undefined functions
val decl_var_key : Cil_types.varinfo -> t
val label_key : Cil_types.stmt -> Cil_types.label -> t
val stmt_key : Cil_types.stmt -> t
val call_key : Cil_types.stmt -> t
val call_input_key : Cil_types.stmt -> int -> t
val call_output_key : Cil_types.stmt -> Locations.Zone.t -> t
val call_outret_key : Cil_types.stmt -> t
val call_ctrl_key : Cil_types.stmt -> t
val call_topin_key : Cil_types.stmt -> t
val stmt : t -> Cil_types.stmt option
val call_from_id : Cil_types.stmt -> Cil_types.stmt