Frama-C API - Cil_builtins
Builtins management
module Frama_c_builtins : State_builder.Hashtbl with type key = string and type data = Cil_types.varinfoThis 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.
val is_builtin : Cil_types.varinfo -> boolval has_fc_builtin_attr : Cil_types.varinfo -> boolval is_unused_builtin : Cil_types.varinfo -> boolregister a new family of special built-in functions.
module Builtin_functions : State_builder.Hashtbl with type key = string and type data = Cil_types.typ * Cil_types.typ list * boolA list of the built-in functions for the current compiler (GCC or MSVC, depending on !Machine.msvcMode). Maps the name to the result and argument types, and whether it is vararg. Initialized by Machine.init. Do not add builtins directly, use add_custom_builtin below for that.
val string_of_compiler : compiler -> stringtype builtin_template = {name : string;compiler : compiler option;rettype : string;args : string list;types : string list option;variadic : bool;
}module Builtin_templates : State_builder.Hashtbl with type key = string and type data = builtin_templatemodule Gcc_builtin_templates_loaded : State_builder.Ref with type data = boolval add_custom_builtin : (unit -> string * Cil_types.typ * Cil_types.typ list * bool) -> unitRegister a new builtin. The function will be called after setting the machdep and initializing machine-dependent builtins. Hence, types such Cil.uint16_t might be used if needed.
val builtinLoc : Cil_types.locationThis is used as the location of the prototypes of builtin functions.
