Module Cil.Frama_c_builtins

module Frama_c_builtins: State_builder.Hashtbl  with type key = string and type data = Cil_types.varinfo

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 $/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.


include State_builder.S

Hashtbl are a standard computation. BUT that is INCORRECT to use projectified hashtables if keys have a custom rehash function (see Project.DATATYPE_OUTPUT.rehash)

type key 
type data 
val replace : key -> data -> unit

Add a new binding. The previous one is removed.

val add : key -> data -> unit

Add a new binding. The previous one is only hidden.

val clear : unit -> unit

Clear the table.

val length : unit -> int

Length of the table.

val iter : (key -> data -> unit) -> unit
val iter_sorted : ?cmp:(key -> key -> int) ->
(key -> data -> unit) -> unit
val fold : (key -> data -> 'a -> 'a) ->
'a -> 'a
val fold_sorted : ?cmp:(key -> key -> int) ->
(key -> data -> 'a -> 'a) ->
'a -> 'a
val memo : ?change:(data -> data) ->
(key -> data) ->
key -> data

Memoization. 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.

val find : key -> data

Return the current binding of the given key.

val find_all : key -> data list

Return the list of all data associated with the given key.

val mem : key -> bool
val remove : key -> unit