You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

175 lines
4.8 KiB

(*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
open! IStd
type t = Procname.t
let builtin_decls = ref Procname.Set.empty
let register pname = builtin_decls := Procname.Set.add pname !builtin_decls
let create_procname name =
let pname = Procname.from_string_c_fun name in
register pname ; pname
let create_objc_class_method class_name method_name parameters =
let method_kind = Procname.ObjC_Cpp.ObjCClassMethod in
let tname = Typ.Name.Objc.from_string class_name in
let pname =
Procname.ObjC_Cpp
(Procname.ObjC_Cpp.make tname method_name method_kind Typ.NoTemplate parameters)
in
register pname ; pname
let is_declared pname = Procname.Set.mem pname !builtin_decls
let __array_access = create_procname "__array_access"
let __assert_fail = create_procname "__assert_fail"
let __builtin_va_arg = create_procname "__builtin_va_arg"
let __builtin_va_copy = create_procname "__builtin_va_copy"
let __builtin_va_end = create_procname "__builtin_va_end"
let __builtin_va_start = create_procname "__builtin_va_start"
let __cast = create_procname "__cast"
let __cxx_typeid = create_procname "__cxx_typeid"
let __delete = create_procname "__delete"
let __delete_array = create_procname "__delete_array"
let __delete_locked_attribute = create_procname "__delete_locked_attribute"
let __exit = create_procname "_exit"
let __free_cf = create_procname "__free_cf"
let __get_array_length = create_procname "__get_array_length"
let __get_hidden_field = create_procname "__get_hidden_field"
let __get_type_of = create_procname "__get_type_of"
let __global_access = create_procname "__global_access"
let __infer_assume = create_procname "__infer_assume"
let __infer_fail = create_procname "__infer_fail"
let __infer_generic_selection_expr = Procname.from_string_c_fun "__infer_generic_selection_expr"
let __infer_skip = create_procname "__infer_skip"
let __infer_skip_function = Procname.from_string_c_fun "__infer_skip_function"
let __infer_skip_gcc_asm_stmt = Procname.from_string_c_fun "__infer_skip_gcc_asm_stmt"
let __instanceof = create_procname "__instanceof"
let __method_set_ignore_attribute = create_procname "__method_set_ignore_attribute"
let __new = create_procname "__new"
let __new_array = create_procname "__new_array"
let __objc_alloc = create_procname "__objc_alloc"
let __objc_alloc_no_fail = create_procname "__objc_alloc_no_fail"
let __objc_cast = create_procname "__objc_cast"
let __objc_dictionary_literal =
create_objc_class_method "NSDictionary" "dictionaryWithObjects:forKeys:count:" [None; None; None]
let __placement_delete = create_procname "__placement_delete"
let __placement_new = create_procname "__placement_new"
let __print_value = create_procname "__print_value"
let __require_allocated_array = create_procname "__require_allocated_array"
let __set_array_length = create_procname "__set_array_length"
let __set_autorelease_attribute = create_procname "__set_autorelease_attribute"
let __set_file_attribute = create_procname "__set_file_attribute"
let __set_hidden_field = create_procname "__set_hidden_field"
let __set_locked_attribute = create_procname "__set_locked_attribute"
let __set_mem_attribute = create_procname "__set_mem_attribute"
let __set_observer_attribute = create_procname "__set_observer_attribute"
let __set_unsubscribed_observer_attribute = create_procname "__set_unsubscribed_observer_attribute"
let __set_wont_leak_attribute = create_procname "__set_wont_leak_attribute"
let __split_get_nth = create_procname "__split_get_nth"
let __throw = create_procname "__throw"
let __unwrap_exception = create_procname "__unwrap_exception"
let abort = create_procname "abort"
let exit = create_procname "exit"
let free = create_procname "free"
let fscanf = create_procname "fscanf"
let fwscanf = create_procname "fwscanf"
let malloc = create_procname "malloc"
let malloc_no_fail = create_procname "malloc_no_fail"
let nsArray_arrayWithObjects =
let objc_object = Typ.Name.C.from_string "objc_object" in
create_objc_class_method "NSArray" "arrayWithObjects:" [Some objc_object]
let nsArray_arrayWithObjectsCount =
create_objc_class_method "NSArray" "arrayWithObjects:count:" [None; None]
let objc_cpp_throw = create_procname "__infer_objc_cpp_throw"
let pthread_create = create_procname "pthread_create"
let scanf = create_procname "scanf"
let sscanf = create_procname "sscanf"
let swscanf = create_procname "swscanf"
let vfscanf = create_procname "vfscanf"
let vfwscanf = create_procname "vfwscanf"
let vscanf = create_procname "vscanf"
let vsscanf = create_procname "vsscanf"
let vswscanf = create_procname "vswscanf"
let vwscanf = create_procname "vwscanf"
let wscanf = create_procname "wscanf"