Frama-C API - Hcexprs
Hash-consed expressions and lvalues.
type unhashconsed_exprs = private | E of Eva_ast.exp| LV of Eva_ast.lval(*lvalues are never stored under a constructor
*)E, onlyLV
Reason of the replacement of an lvalue lval: Modified means that the value of lval has been modified (in which case &lval is unchanged), and Deleted means that lval is no longer in scope (in which case &lval raises the NonExchangeable error).
module E : Frama_c_kernel.Datatype.S with type t = unhashconsed_exprsmodule HCE : sig ... endDatatype + utilities functions for hashconsed exprsessions.
module HCESet : Frama_c_kernel.Hptset.S with type elt = HCE.t and type 'a map = 'a Frama_c_kernel.Hptmap.Shape(HCE).tHashconsed sets of symbolic expressions.
val empty_lvalues : lvaluesval syntactic_lvalues : Eva_ast.exp -> lvaluessyntactic_lvalues e returns the set of lvalues that appear in the expression e. This is used by the equality domain: the expression e will be removed from an equality if a lvalue from syntactic_lvalues e is removed. This function only computes the first lvalues of the expression, and does not go through the lvalues (for the expression ti+1, only the lvalue ti is returned).
module HCEToZone : sig ... endMaps from symbolic expressions to their memory dependencies, expressed as a Locations.Zone.t.
module BaseToHCESet : sig ... endMaps from Base.t to set of HCE.t.
