module WpReached:sig..end
Reachability for Smoke Tests
type reached
control flow graph dedicated to smoke tests
val is_predicate : bool -> Cil_types.predicate -> boolIf returns true the predicate has always the given boolean value.
val is_dead_annot : Cil_types.code_annotation -> boolFalse assertions and loop invariant. Hence, also includes completely unrolled loop.
val is_dead_code : Cil_types.stmt -> boolChecks whether the stmt has a dead-code annotation.
val reached : Kernel_function.t -> reachedmemoized reached cfg for function
val smoking : reached -> Cil_types.stmt -> boolReturns whether a stmt need a smoke tests to avoid being unreachable. This is restricted to assignments, returns and calls not dominated another smoking statement.
val dump : dir:Datatype.Filepath.t -> Kernel_function.t -> reached -> unit