Module Builtins

module Builtins: sig .. end

Value analysis builtin shipped with Frama-C, more efficient than their equivalent in C


exception Invalid_nb_of_args of int
val register_builtin : string -> ?replace:string -> Db.Value.builtin_sig -> unit

Register the given OCaml function as a builtin, that will be used instead of the Cil C function of the same name

val clobbered_set_from_ret : Cvalue.Model.t -> Cvalue.V.t -> Base.SetLattice.t

clobbered_set_from_ret state ret can be used for functions that return a pointer to where they have written some data. It returns all the bases of ret whose contents may contain local variables.

val warn_definitions_overridden_by_builtins : unit -> unit

Emits warnings for each function definition that will be overridden by an Eva built-in. Does not include definitions in the Frama-C stdlib.

type builtin 
type call = (Precise_locs.precise_location, Cvalue.V.t) Eval.call 
type result = Cvalue.Model.t * Locals_scoping.clobbered_set 
val find_builtin_override : Cil_types.kernel_function ->
(string * builtin * Cil_types.funspec) option

Returns the cvalue builtin for a function, if any. Also returns the name of the builtin and the specification of the function; the preconditions must be evaluated along with the builtin.

val apply_builtin : builtin ->
call ->
Cvalue.Model.t -> result list * Value_types.cacheable