Frama-C API - Frama_c_builtins
This module associates the name of a built-in function that might be used during elaboration with the corresponding varinfo. This is done when parsing ${FRAMAC_SHARE}/libc/__fc_builtins.h, which is always performed before processing the actual list of files provided on the command line (see File.init_from_c_files). Actual list of such built-ins is managed in Cabs2cil.
Hashtbl are a standard computation. BUT that is INCORRECT to use projectified hashtables if keys have a custom rehash function (see Datatype.Make_input.rehash)
include State_builder.S
val self : State.tThe kind of the registered state.
val mark_as_computed : ?project:Project.t -> unit -> unitIndicate that the registered state will not change again for the given project (default is current ()).
val is_computed : ?project:Project.t -> unit -> boolReturns true iff the registered state will not change again for the given project (default is current ()).
Exportation of some inputs (easier use of State_builder.Register).
module Datatype : Datatype.Sval add_hook_on_update : (Datatype.t -> unit) -> unitAdd an hook which is applied each time (just before) the project library changes the local value of the state.
val howto_marshal : (Datatype.t -> 'a) -> ('a -> Datatype.t) -> unithowto_marshal marshal unmarshal registers a custom couple of functions (marshal, unmarshal) to be used for serialization. Default functions are identities. In particular, this function must be used if Datatype.t is not marshallable and do_not_save is not called.
type data = Cil_types.varinfoMemoization. Compute on need the data associated to a given key using the given function. If the data is already computed, it is possible to change with change.
Return the current binding of the given key, or None if no such binding exists.
val mem : key -> boolval remove : key -> unitval add_hook_on_change : ((key, data) State_builder.hashtbl_event -> unit) -> unitAdd an hook which is applied each time (just after) a (key,value) pair in the hashtable changes inside the current project.
