ClangFrontend.CMethod_trans
Methods for creating a procdesc from a method or function declaration and for resolving a method call and finding the right callee
When the methoc call is MCStatic, means that it is a class method. When it is MCVirtual, it means that it is an instance method and that the method to be called will be determined at runtime. If it is MCNoVirtual it means that it is an instance method but that the method to be called will be determined at compile time
val compare_method_call_type : method_call_type -> method_call_type -> int
val equal_method_call_type : method_call_type -> method_call_type -> bool
val should_create_procdesc :
IR.Cfg.t ->
IR.Procname.t ->
defined:bool ->
set_objc_accessor_attr:bool ->
bool
Return if a procdesc should be added or not. It returns false
when the same name of procdesc was added previously. defined
represents if the function body is non-empty. set_objc_accessor_attr
represents if the function is a getter/setter in Obj-C.
val create_local_procdesc :
?loc_instantiated:IBase.Location.t ->
?set_objc_accessor_attr:bool ->
?record_lambda_captured:bool ->
?is_cpp_lambda_call_operator:bool ->
CFrontend_config.translation_unit_context ->
IR.Cfg.t ->
IR.Tenv.t ->
CMethodSignature.t ->
ATDGenerated.Clang_ast_t.stmt list ->
(IR.Pvar.t * IR.Typ.t * IR.CapturedVar.capture_mode) list ->
bool
val create_attributes :
?loc_instantiated:IBase.Location.t ->
?set_objc_accessor_attr:bool ->
CFrontend_config.translation_unit_context ->
IR.Tenv.t ->
CMethodSignature.t ->
ATDGenerated.Clang_ast_t.stmt list ->
(IR.Pvar.t * IR.Typ.t * IR.CapturedVar.capture_mode) list ->
IR.ProcAttributes.t
val create_external_procdesc :
CFrontend_config.translation_unit_context ->
IR.Cfg.t ->
IR.Procname.t ->
IR.ClangMethodKind.t ->
(IR.Typ.t * IR.Typ.t list) option ->
unit
val get_objc_method_data :
ATDGenerated.Clang_ast_t.obj_c_message_expr_info ->
string * method_call_type
val get_class_name_method_call_from_receiver_kind :
CContext.t ->
ATDGenerated.Clang_ast_t.obj_c_message_expr_info ->
(IR.Exp.t * IR.Typ.t) list ->
IR.Typ.Name.t
val get_class_name_method_call_from_clang :
IR.Tenv.t ->
ATDGenerated.Clang_ast_t.obj_c_message_expr_info ->
IR.Typ.Name.t option
val method_signature_of_pointer :
IR.Tenv.t ->
ATDGenerated.Clang_ast_t.pointer ->
CMethodSignature.t option
val get_method_name_from_clang :
CMethodSignature.t option ->
IR.Procname.t option
val create_procdesc_with_pointer :
?is_cpp_lambda_call_operator:bool ->
?captured_vars:(IR.Pvar.t * IR.Typ.t * IR.CapturedVar.capture_mode) list ->
CContext.t ->
ATDGenerated.Clang_ast_t.pointer ->
IR.Typ.Name.t option ->
string ->
IR.Procname.t
val get_procname_from_cpp_lambda :
CContext.t ->
ATDGenerated.Clang_ast_t.decl ->
(IR.Pvar.t * IR.Typ.t * IR.CapturedVar.capture_mode) list ->
IR.Procname.t
val get_captures_from_cpp_lambda :
ATDGenerated.Clang_ast_t.decl ->
ATDGenerated.Clang_ast_t.lambda_capture_info list