Module 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

type method_call_type =
  1. | MCVirtual
  2. | MCNoVirtual
  3. | MCStatic

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.CapturedVar.t 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.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_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.CapturedVar.t 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.CapturedVar.t list -> IR.Procname.t