Module Cil_builtins.Builtin_functions

module Builtin_functions: State_builder.Hashtbl  with type key = string
                         and type data = typ * typ list * bool

A list of the built-in functions for the current compiler (GCC or MSVC, depending on !msvcMode). Maps the name to the result and argument types, and whether it is vararg. Initialized by Cil.initCIL. Do not add builtins directly, use Cil_builtins.add_custom_builtin below for that.

This map replaces gccBuiltins and msvcBuiltins in previous versions of CIL.


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