Frama-C API - Eval_terms
Evaluation of terms and predicates
Evaluating a predicate. Unknown is the Top of the lattice
val join_predicate_status : predicate_status -> predicate_status -> predicate_statustype logic_evaluation_error = | Unsupported of string| UnsupportedLogicVar of Frama_c_kernel.Cil_types.logic_var| AstError of string| NoEnv of Frama_c_kernel.Cil_types.logic_label| NoResult| CAlarm
Error during the evaluation of a term or a predicate
val pretty_logic_evaluation_error : Stdlib.Format.formatter -> logic_evaluation_error -> unitexception LogicEvalError of logic_evaluation_errortype labels_states = Frama_c_kernel.Cvalue.Model.t Frama_c_kernel.Cil_datatype.Logic_label.Map.tEvaluation environment. Currently available are function Pre and Post, or the environment to evaluate an annotation.
val env_pre_f : pre:Frama_c_kernel.Cvalue.Model.t -> unit -> eval_envval env_annot : ?c_labels:labels_states -> pre:Frama_c_kernel.Cvalue.Model.t -> here:Frama_c_kernel.Cvalue.Model.t -> unit -> eval_envval env_post_f : ?c_labels:labels_states -> pre:Frama_c_kernel.Cvalue.Model.t -> post:Frama_c_kernel.Cvalue.Model.t -> result:Frama_c_kernel.Cil_types.varinfo option -> unit -> eval_envval env_assigns : pre:Frama_c_kernel.Cvalue.Model.t -> eval_envval env_only_here : Frama_c_kernel.Cvalue.Model.t -> eval_envUsed by auxiliary plugins, that do not supply the other states
val env_current_state : eval_env -> Frama_c_kernel.Cvalue.Model.ttype logic_deps = Frama_c_kernel.Locations.Zone.t Frama_c_kernel.Cil_datatype.Logic_label.Map.tDependencies needed to evaluate a term or a predicate
Three modes to handle the alarms when evaluating a logical term.
val eval_tlval_as_zone_under_over : alarm_mode:alarm_mode -> Frama_c_kernel.Locations.access -> eval_env -> Frama_c_kernel.Cil_types.term -> Frama_c_kernel.Locations.Zone.t * Frama_c_kernel.Locations.Zone.tReturn a pair of (under-approximating, over-approximating) zones.
type 'a eval_result = {etype : Frama_c_kernel.Cil_types.typ;eunder : 'a;eover : 'a;empty : bool;ldeps : logic_deps;
}val eval_term : alarm_mode:alarm_mode -> eval_env -> Frama_c_kernel.Cil_types.term -> Frama_c_kernel.Cvalue.V.t eval_resultval eval_tlval_as_location : alarm_mode:alarm_mode -> eval_env -> Frama_c_kernel.Cil_types.term -> Frama_c_kernel.Locations.locationval eval_tlval_as_zone : alarm_mode:alarm_mode -> Frama_c_kernel.Locations.access -> eval_env -> Frama_c_kernel.Cil_types.term -> Frama_c_kernel.Locations.Zone.tval eval_predicate : eval_env -> Frama_c_kernel.Cil_types.predicate -> predicate_statusval predicate_deps : eval_env -> Frama_c_kernel.Cil_types.predicate -> logic_deps optionpredicate_deps env p computes the logic dependencies needed to evaluate p in the given evaluation environment env. Returns None on either an evaluation error or on unsupported construct.
val tlval_deps : eval_env -> Frama_c_kernel.Cil_types.term -> logic_depstlval_deps env t computes the logic dependencies needed to evaluate the address of lvalue term t in the given evaluation environment env.
val reduce_by_predicate : eval_env -> bool -> Frama_c_kernel.Cil_types.predicate -> eval_env