module Lexical_successors:Compute a graph which provide the lexical successor of each statement s, ie. the statement which is the next one if 's' is replaced by Nop. Notice that if 's' is an If, Loop, ... the considered statement is the whole block.sig
..end
Example : (1) x = 3; (2) if (c) (3) y = 3; (4) goto L; else (5) z = 8; (6) while (c--) (7) x++; (8) L : return x;
(1) -> (2) -> (6) -> (8)
(3) -> (4) -> (6)
(5) -> (6)
(7) -> (6)
val add_link : Cil_types.stmt Inthash.t ->
prev:Cil_types.kinstr -> next:Cil_types.kinstr -> unit
val add_links : Cil_types.stmt Inthash.t -> Cil_types.kinstr list -> Cil_types.kinstr -> unit
val process_stmt : Cil_types.stmt Inthash.t ->
prev_list:Cil_types.kinstr list ->
stmt:Cil_types.stmt -> Cil_types.kinstr list
val process_tail : Cil_types.stmt Inthash.t ->
Cil_types.kinstr list -> Cil_types.stmt list -> Cil_types.kinstr list
val process_block : Cil_types.stmt Inthash.t -> Cil_types.block -> Cil_types.kinstr list
typet =
Cil_types.stmt Inthash.t
val compute : Kernel_function.t -> Cil_types.stmt Inthash.t
val find : 'a Inthash.t -> Cil_types.stmt -> 'a
Not_found
if 'stmt' has no successor in 'graph'.