Module InferModules.CFrontend_config
val compare_clang_lang : clang_lang -> clang_lang -> int
val string_of_clang_lang : clang_lang -> string
val equal_clang_lang : clang_lang -> clang_lang -> bool
type exception_details
=
{
msg : string;
position : InferBase.Logging.ocaml_pos;
source_range : InferGenerated.Clang_ast_t.source_range;
ast_node : string option;
}
exception
Unimplemented of exception_details
val unimplemented : InferBase.Logging.ocaml_pos -> InferGenerated.Clang_ast_t.source_range -> ?ast_node:string -> ('a, Stdlib.Format.formatter, unit, _) InferStdlib.IStd.format4 -> 'a
Raise Unimplemented. This is caught at the level of translating a method and makes the frontend give up on that method.
exception
IncorrectAssumption of exception_details
val incorrect_assumption : InferBase.Logging.ocaml_pos -> InferGenerated.Clang_ast_t.source_range -> ?ast_node:string -> ('a, Stdlib.Format.formatter, unit, _) InferStdlib.IStd.format4 -> 'a
Used to mark places in the frontend that incorrectly assume something to be impossible. TODO(t21762295) get rid of all instances of this.
type translation_unit_context
=
{
lang : clang_lang;
source_file : InferBase.SourceFile.t;
integer_type_widths : InferIR.Typ.IntegerWidths.t;
}
val alloc : string
val assert_fail : string
val assert_rtn : string
val biniou_buffer_size : int
val builtin_expect : string
val builtin_memset_chk : string
val builtin_object_size : string
val ckcomponent_cl : string
val ckcomponentcontroller_cl : string
val clang_bin : string -> string
Script to run our own clang. The argument is expected to be either "" or "++".
val class_method : string
val fbAssertWithSignalAndLogFunctionHelper : string
val google_LogMessageFatal : string
val google_MakeCheckOpString : string
val handleFailureInFunction : string
val handleFailureInMethod : string
val id_cl : string
val infer : string
val infer_skip_fun : string
val infer_skip_gcc_asm_stmt : string
val infer_generic_selection_expr : string
val init : string
val is_kind_of_class : string
val malloc : string
val new_str : string
val next_object : string
val nsproxy_cl : string
val nsobject_cl : string
val nsstring_cl : string
val objc_class : string
val objc_object : string
val return_param : string
val self : string
val std_addressof : InferIR.QualifiedCppName.Match.quals_matcher
val string_with_utf8_m : string
val this : string
val replace_with_deref_first_arg_attr : string
val modeled_function_attributes : string list
val enum_map : (InferGenerated.Clang_ast_t.pointer option * InferIR.Exp.t option) ClangPointers.Map.t InferStdlib.IStd.ref
Map from enum constants pointers to their predecesor and their sil value
val global_translation_unit_decls : InferGenerated.Clang_ast_t.decl list InferStdlib.IStd.ref
val sil_types_map : InferIR.Typ.desc Clang_ast_extend.TypePointerMap.t InferStdlib.IStd.ref
Map from type pointers (clang pointers and types created later by frontend) to sil types Populated during frontend execution when new type is found
val procedures_attempted : int InferStdlib.IStd.ref
val procedures_failed : int InferStdlib.IStd.ref
val get_fresh_block_index : unit -> int
val reset_block_counter : unit -> unit
val reset_global_state : unit -> unit
val tableaux_evaluation : bool