Module InferIR__ProcAttributes
Attributes of a procedure.
type objc_accessor_type
=
|
Objc_getter of InferIR.Typ.Struct.field
|
Objc_setter of InferIR.Typ.Struct.field
val kind_of_objc_accessor_type : objc_accessor_type -> string
type var_data
=
{
name : InferIR.Mangled.t;
typ : InferIR.Typ.t;
modify_in_block : bool;
__block attribute of Objective-C variables, means that it will be modified inside a block
is_constexpr : bool;
}
type t
=
{
access : InferIR.PredSymb.access;
visibility access
captured : (InferIR.Mangled.t * InferIR.Typ.t) list;
name and type of variables captured in blocks
exceptions : string list;
exceptions thrown by the procedure
formals : (InferIR.Mangled.t * InferIR.Typ.t) list;
name and type of formal parameters
const_formals : int list;
list of indices of formals that are const-qualified
func_attributes : InferIR.PredSymb.func_attribute list;
is_abstract : bool;
the procedure is abstract
is_biabduction_model : bool;
the procedure is a model for the biabduction analysis
is_bridge_method : bool;
the procedure is a bridge method
is_defined : bool;
true if the procedure is defined, and not just declared
is_cpp_noexcept_method : bool;
the procedure is an C++ method annotated with "noexcept"
is_java_synchronized_method : bool;
the procedure is a Java synchronized method
is_specialized : bool;
the procedure is a clone specialized for dynamic dispatch handling
is_synthetic_method : bool;
the procedure is a synthetic method
is_variadic : bool;
the procedure is variadic, only supported for Clang procedures
clang_method_kind : InferIR.ClangMethodKind.t;
the kind of method the procedure is
loc : InferBase.Location.t;
location of this procedure in the source code
translation_unit : InferBase.SourceFile.t;
source file where the procedure was captured
mutable locals : var_data list;
name, type and attributes of local variables
method_annotation : InferIR.Annot.Method.t;
annotations for all methods
objc_accessor : objc_accessor_type option;
type of ObjC accessor, if any
proc_name : InferIR.Typ.Procname.t;
name of the procedure
ret_type : InferIR.Typ.t;
return type
has_added_return_param : bool;
whether or not a return param was added
}
val default : InferBase.SourceFile.t -> InferIR.Typ.Procname.t -> t
Create a proc_attributes with default values.
val pp : Stdlib.Format.formatter -> t -> unit
module SQLite : InferBase.SqliteUtils.Data with type t = t