Frama_c_kernel.Function_Froms
Datastructures and common operations for the results of the From plugin.
module Deps : sig ... end
module DepsOrUnassigned : sig ... end
module Memory : sig ... end
type froms = {
deps_return : Memory.return; | (* Dependencies for the returned value *) |
deps_table : Memory.t; | (* Dependencies on all the zones modified by the function *) |
}
include Datatype.S with type t = froms
include Datatype.S_no_copy with type t = froms
val packed_descr : Structural_descr.pack
Packed version of the descriptor.
val reprs : t list
List of representants of the descriptor.
val hash : t -> int
Hash function: same spec than Hashtbl.hash
.
val pretty : Stdlib.Format.formatter -> t -> unit
Pretty print each value in an user-friendly way.
val mem_project : ( Project_skeleton.t -> bool ) -> t -> bool
mem_project f x
must return true
iff there is a value p
of type Project.t
in x
such that f p
returns true
.
val top : froms
val pretty_with_type : Cil_types.typ -> froms Pretty_utils.formatter
Display dependencies of a function, using the function's type to improve readability
val pretty_with_type_indirect : Cil_types.typ -> froms Pretty_utils.formatter
Display dependencies of a function, using the function's type to improve readability, separating direct and indirect dependencies
val outputs : froms -> Locations.Zone.t
Extract the left part of a from result, ie. the zones that are written
val inputs : ?include_self:bool -> froms -> Locations.Zone.t
Extract the right part of a from result, ie. the zones on which the written zones depend. If include_self
is true, and the from is of the form x FROM y (and SELF)
, x
is added to the result; default value is false
.