IR.BuiltinDeclProcnames for the builtin functions supported
include BUILTINS.S with type t = Procname.ttype t = Procname.tval __assert_fail : tval __builtin_add_overflow : tval __builtin_mul_overflow : tval __builtin_sub_overflow : tval __builtin_va_arg : tval __builtin_va_copy : tval __builtin_va_end : tval __builtin_va_start : tval __builtin_offsetof : tval __cast : t__cast(val,typ) implements java's typ(val)
val __cxx_typeid : tval __delete : tval __delete_array : tval __delete_locked_attribute : tval __exit : tval __objc_bridge_transfer : tval __get_array_length : tval __get_type_of : tval __infer_assume : tval __infer_fail : tval __infer_skip : tused to represent behavior that is not modeled in infer
val __instanceof : t__instanceof(val,typ) implements java's val instanceof typ
val __java_throw : t__java_throw implements java's throw instruction (without arg yet, but this is covered by the usage of the return variable during frontend translation
val __hack_throw : tval __method_set_ignore_attribute : tval __new : tval __new_array : tval __objc_alloc_no_fail : tval __objc_dictionary_literal : tval __objc_get_ref_count : tval __objc_set_ref_count : tval __placement_delete : tval __placement_new : tval __print_value : tval __require_allocated_array : tval __set_array_length : tval __set_file_attribute : tval __set_locked_attribute : tval __set_mem_attribute : tval __set_observer_attribute : tval __set_unsubscribed_observer_attribute : tval __set_wont_leak_attribute : tval __split_get_nth : tval __throw : tval __unwrap_exception : tval abort : tval exit : tval free : tval malloc : tval malloc_no_fail : tval objc_insert_key : tval objc_insert_value : tval objc_autorelease_pool_pop : tval objc_autorelease_pool_push : tval objc_cpp_throw : tval zero_initialization : tval is_declared : Procname.t -> boolval __erlang_equal : Procname.tval __erlang_exactly_equal : Procname.tval __erlang_not_equal : Procname.tval __erlang_exactly_not_equal : Procname.tval __erlang_lesser : Procname.tval __erlang_lesser_or_equal : Procname.tval __erlang_greater : Procname.tval __erlang_greater_or_equal : Procname.tval __erlang_error_badgenerator : Procname.tval __erlang_error_badkey : Procname.tval __erlang_error_badmatch : Procname.tval __erlang_error_badmap : Procname.tval __erlang_error_badrecord : Procname.tval __erlang_error_badreturn : Procname.tNot a runtime error in Erlang. It means that the actual type disagrees with the spec.
val __erlang_error_case_clause : Procname.tval __erlang_error_else_clause : Procname.tval __erlang_error_function_clause : Procname.tval __erlang_error_if_clause : Procname.tval __erlang_error_try_clause : Procname.tval __erlang_make_atom : Procname.tval __erlang_make_integer : Procname.tval __erlang_make_cons : Procname.tval __erlang_make_nil : Procname.tval __erlang_make_tuple : Procname.tval __erlang_make_map : Procname.tval __erlang_make_str_const : Procname.tval __erlang_make_bitstring : Procname.tval __erlang_map_to_list : Procname.tThis is an internal function we use for map generators, not to be confused with maps:to_list/1 from OTP library.
val __erlang_receive : Procname.tval __erlang_str_equal : Procname.tval __infer_initializer_list : Procname.tval __infer_skip_function : Procname.tval __infer_skip_gcc_asm_stmt : Procname.tval __infer_structured_binding : Procname.tval __infer_generic_selection_expr : Procname.tval __atomic_fetch_max : Procname.tval __atomic_fetch_min : Procname.tval __atomic_fetch_nand : Procname.tval __atomic_max_fetch : Procname.tval __atomic_min_fetch : Procname.tval __atomic_nand_fetch : Procname.tval __c11_atomic_fetch_max : Procname.tval __c11_atomic_fetch_min : Procname.tval __call_objc_block : Procname.tval __call_c_function_ptr : Procname.tval __opencl_atomic_fetch_max : Procname.tval __opencl_atomic_fetch_min : Procname.tval __builtin_cxx_co_return : Procname.tval __builtin_cxx_co_await : Procname.tval __get_lazy_class : treturns the a LazyClass representation of its arguement (a type name). A LazyClass represents a class that we know the name of but don't necessarily know if the class has been defined somewhere.
val __lazy_class_initialize : treturns the singleton object associated with a given type, and performs lazily its initialization (only generated by the Hack frontend currently)
val dispatch_sync : Procname.tval match_builtin : t -> 'a -> string -> bool