From 6e37247b7b88c0d2088c8633c8b9c2ec14da83ce Mon Sep 17 00:00:00 2001
From: Jules Villard
--class-loads
-Activates: checker class-loads: -Compute set of Java classes loaded. (Conversely: ---no-class-loads)
+--config-checks-between-markers
---class-loads-only
+Activates: checker +config-checks-between-markers: [EXPERIMENTAL] Collects +config checks between marker start and end. (Conversely: +--no-config-checks-between-markers)
-Activates: Enable class-loads -and disable all other checkers (Conversely: ---no-class-loads-only)
+ +--config-checks-between-markers-only
+ +Activates: Enable +config-checks-between-markers and disable all other checkers +(Conversely: +--no-config-checks-between-markers-only)
--continue-analysis
@@ -441,6 +445,12 @@ pulse will only explore one path. Can be used on pathologically large procedures to prevent too-big states from being produced. +--pulse-model-abort ++string
+ +Methods that should be modelled +as abort in Pulse
+--pulse-model-alloc-pattern string
diff --git a/website/static/man/next/infer-capture.1.html b/website/static/man/next/infer-capture.1.html index 9266ab2b8..a4f799bd3 100644 --- a/website/static/man/next/infer-capture.1.html +++ b/website/static/man/next/infer-capture.1.html @@ -1,5 +1,5 @@ - + diff --git a/website/static/man/next/infer-compile.1.html b/website/static/man/next/infer-compile.1.html index ae6dd74bf..75492ba88 100644 --- a/website/static/man/next/infer-compile.1.html +++ b/website/static/man/next/infer-compile.1.html @@ -1,5 +1,5 @@ - + diff --git a/website/static/man/next/infer-explore.1.html b/website/static/man/next/infer-explore.1.html index 22a7ca8d8..7b00fe7bd 100644 --- a/website/static/man/next/infer-explore.1.html +++ b/website/static/man/next/infer-explore.1.html @@ -1,5 +1,5 @@ - + diff --git a/website/static/man/next/infer-help.1.html b/website/static/man/next/infer-help.1.html index 2bb809019..72638fa84 100644 --- a/website/static/man/next/infer-help.1.html +++ b/website/static/man/next/infer-help.1.html @@ -1,5 +1,5 @@ - + diff --git a/website/static/man/next/infer-report.1.html b/website/static/man/next/infer-report.1.html index 3b1664818..6ac3044f4 100644 --- a/website/static/man/next/infer-report.1.html +++ b/website/static/man/next/infer-report.1.html @@ -1,5 +1,5 @@ - + @@ -175,13 +175,9 @@ Array_of_pointsto (enabled by default),Show this manual with all internal options in the INTERNAL OPTIONS section
+--pmd-xml
+ +Activates: Output issues in +(PMD) XML format in infer-out/report.xml (Conversely: +--no-pmd-xml)
+--print-logs
Activates: Also log messages to diff --git a/website/static/man/next/infer.1.html b/website/static/man/next/infer.1.html index 95df8d418..6de12fb56 100644 --- a/website/static/man/next/infer.1.html +++ b/website/static/man/next/infer.1.html @@ -1,5 +1,5 @@ - + @@ -411,22 +411,6 @@ each analysis has to model.
See also
infer-analyze(1) and infer-capture(1).
---class-loads
Activates: checker class-loads: -Compute set of Java classes loaded. (Conversely: ---no-class-loads)
- -See also
-infer-analyze(1).
---class-loads-only
Activates: Enable class-loads -and disable all other checkers (Conversely: ---no-class-loads-only)
- -See also
-infer-analyze(1).
--compilation-database +path
File that contain compilation @@ -451,6 +435,24 @@ component kit file cyclomatic complexity (Conversely:
See also
infer-capture(1) and infer-run(1).
+--config-checks-between-markers
Activates: checker +config-checks-between-markers: [EXPERIMENTAL] Collects +config checks between marker start and end. (Conversely: +--no-config-checks-between-markers)
+ +See also
+infer-analyze(1).
+--config-checks-between-markers-only
Activates: Enable +config-checks-between-markers and disable all other checkers +(Conversely: +--no-config-checks-between-markers-only)
+ +See also
+infer-analyze(1).
--continue
Activates: Continue the capture
@@ -660,13 +662,9 @@ Array_of_pointsto (enabled by default),
Assert_failure (enabled by default),
BAD_POINTER_COMPARISON (enabled by default),
BIABDUCTION_ANALYSIS_STOPS (disabled by default),
+BIABDUCTION_MEMORY_LEAK (disabled by default),
BIABD_CONDITION_ALWAYS_FALSE (disabled by default),
BIABD_CONDITION_ALWAYS_TRUE (disabled by default),
-BIABD_REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by
-default),
-BIABD_STACK_VARIABLE_ADDRESS_ESCAPE (disabled by default),
-
-BIABD_USE_AFTER_FREE (enabled by default),
BUFFER_OVERRUN_L1 (enabled by default),
BUFFER_OVERRUN_L2 (enabled by default),
BUFFER_OVERRUN_L3 (enabled by default),
@@ -688,7 +686,6 @@ CHECKERS_FRAGMENT_RETAINS_VIEW (enabled by default),
CHECKERS_IMMUTABLE_CAST (enabled by default),
CHECKERS_PRINTF_ARGS (enabled by default),
CLASS_CAST_EXCEPTION (disabled by default),
-CLASS_LOAD (enabled by default),
COMPONENT_FACTORY_FUNCTION (enabled by default),
COMPONENT_FILE_CYCLOMATIC_COMPLEXITY (enabled by default),
@@ -701,6 +698,7 @@ COMPONENT_WITH_UNCONVENTIONAL_SUPERCLASS (enabled by
default),
CONDITION_ALWAYS_FALSE (disabled by default),
CONDITION_ALWAYS_TRUE (disabled by default),
+CONFIG_CHECKS_BETWEEN_MARKERS (disabled by default),
CONSTANT_ADDRESS_DEREFERENCE (disabled by default),
CREATE_INTENT_FROM_URI (enabled by default),
CROSS_SITE_SCRIPTING (enabled by default),
@@ -714,7 +712,6 @@ DEADLOCK (enabled by default),
DEAD_STORE (enabled by default),
DEALLOCATE_STACK_VARIABLE (enabled by default),
DEALLOCATE_STATIC_MEMORY (enabled by default),
-DEALLOCATION_MISMATCH (enabled by default),
DIRECT_ATOMIC_PROPERTY_ACCESS (enabled by default),
DISCOURAGED_WEAK_PROPERTY_CUSTOM_SETTER (enabled by
default),
@@ -809,7 +806,6 @@ PRECONDITION_NOT_FOUND (enabled by default),
PRECONDITION_NOT_MET (enabled by default),
PREMATURE_NIL_TERMINATION_ARGUMENT (enabled by default),
-PULSE_MEMORY_LEAK (disabled by default),
PURE_FUNCTION (enabled by default),
QUANDARY_TAINT_ERROR (enabled by default),
REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by default),
@@ -1384,6 +1380,14 @@ containing perf profiler data to read
See also
infer-analyze(1).
+--pmd-xml
Activates: Output issues in +(PMD) XML format in infer-out/report.xml (Conversely: +--no-pmd-xml)
+ +See also infer-run(1).
+
--print-active-checkers
Activates: Print the active @@ -1526,6 +1530,13 @@ pulse will only explore one path. Can be used on pathologically large procedures to prevent too-big states from being produced.
+See also
+infer-analyze(1).
+--pulse-model-abort +string
Methods that should be modelled +as abort in Pulse
+See also
infer-analyze(1).
--pulse-model-alloc-pattern string
AbstractDomain.TopLiftedUtils
val leq : leq:(lhs:'a -> rhs:'a -> bool) -> lhs:'a Types.top_lifted -> rhs:'a Types.top_lifted -> bool
val pp : pp:(Stdlib.Format.formatter -> 'a -> unit) -> Stdlib.Format.formatter -> 'a Types.top_lifted -> unit
val pp_top : Stdlib.Format.formatter -> unit
Absint.Localise
module Tags : sig ... end
type error_desc
=
{
descriptions : string list; |
tags : Tags.t; |
dotty : string option; |
}
description field of error messages
val compare_error_desc : error_desc -> error_desc -> int
val no_desc : error_desc
empty error description
val verbatim_desc : string -> error_desc
verbatim desc from a string, not to be used for user-visible descs
module BucketLevel : sig ... end
val error_desc_get_bucket : error_desc -> string option
get the bucket value of an error_desc, if any
val error_desc_set_bucket : error_desc -> string -> error_desc
set the bucket value of an error_desc
val error_desc_is_reportable_bucket : error_desc -> bool
check if the report is in a high confidence bucket
val error_desc_hash : error_desc -> int
hash function for error_desc
val error_desc_equal : error_desc -> error_desc -> bool
equality for error_desc
val pp_error_desc : Stdlib.Format.formatter -> error_desc -> unit
pretty print an error description
val error_desc_get_dotty : error_desc -> string option
val deref_str_null : IR.Procname.t option -> deref_str
dereference strings for null dereference
val deref_str_nullable : IR.Procname.t option -> string -> deref_str
dereference strings for null dereference due to Nullable annotation
val deref_str_undef : (IR.Procname.t * IBase.Location.t) -> deref_str
dereference strings for an undefined value coming from the given procedure
val deref_str_freed : IR.PredSymb.res_action -> deref_str
dereference strings for a freed pointer dereference
val deref_str_dangling : IR.PredSymb.dangling_kind option -> deref_str
dereference strings for a dangling pointer dereference
val deref_str_array_bound : IR.IntLit.t option -> IR.IntLit.t option -> deref_str
dereference strings for an array out of bound access
val deref_str_nil_argument_in_variadic_method : IR.Procname.t -> int -> int -> deref_str
dereference strings for nonterminal nil arguments in c/objc variadic methods
val deref_str_pointer_size_mismatch : IR.Typ.t -> IR.Typ.t -> deref_str
dereference strings for a pointer size mismatch
type access
=
| Last_assigned of int * bool | line, null_case_flag |
| Last_accessed of int * bool | line, is_nullable flag |
| Initialized_automatically | |
| Returned_from_call of int |
type of access
val dereference_string : IR.Procname.t -> deref_str -> string -> access option -> IBase.Location.t -> error_desc
val parameter_field_not_null_checked_desc : error_desc -> IR.Exp.t -> error_desc
val is_parameter_not_null_checked_desc : error_desc -> bool
val is_field_not_null_checked_desc : error_desc -> bool
val desc_allocation_mismatch : (IR.Procname.t * IR.Procname.t * IBase.Location.t) -> (IR.Procname.t * IR.Procname.t * IBase.Location.t) -> error_desc
val desc_class_cast_exception : IR.Procname.t option -> string -> string -> string option -> IBase.Location.t -> error_desc
val desc_condition_always_true_false : IR.IntLit.t -> string option -> IBase.Location.t -> error_desc
val desc_deallocate_stack_variable : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_deallocate_static_memory : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_divide_by_zero : string -> IBase.Location.t -> error_desc
val desc_empty_vector_access : IR.Procname.t option -> string -> IBase.Location.t -> error_desc
val is_empty_vector_access_desc : error_desc -> bool
val desc_frontend_warning : string -> string option -> IBase.Location.t -> error_desc
val desc_leak : IR.Exp.t option -> string option -> IR.PredSymb.resource option -> IR.PredSymb.res_action option -> IBase.Location.t -> string option -> error_desc
val desc_null_test_after_dereference : string -> int -> IBase.Location.t -> error_desc
val desc_custom_error : IBase.Location.t -> error_desc
Create human-readable error description for assertion failures
val desc_precondition_not_met : pnm_kind option -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_retain_cycle : string -> IBase.Location.t -> string option -> error_desc
val desc_registered_observer_being_deallocated : IR.Pvar.t -> IBase.Location.t -> error_desc
val desc_stack_variable_address_escape : IR.Pvar.t -> string option -> IBase.Location.t -> error_desc
val desc_skip_function : IR.Procname.t -> error_desc
val desc_inherently_dangerous_function : IR.Procname.t -> error_desc
val desc_unary_minus_applied_to_unsigned_expression : string option -> string -> IBase.Location.t -> error_desc
val desc_uninitialized_dangling_pointer_deref : deref_str -> string -> IBase.Location.t -> error_desc
val access_desc : access option -> string list
Absint.Localise
module Tags : sig ... end
type error_desc
=
{
descriptions : string list; |
tags : Tags.t; |
dotty : string option; |
}
description field of error messages
val compare_error_desc : error_desc -> error_desc -> int
val no_desc : error_desc
empty error description
val verbatim_desc : string -> error_desc
verbatim desc from a string, not to be used for user-visible descs
module BucketLevel : sig ... end
val error_desc_get_bucket : error_desc -> string option
get the bucket value of an error_desc, if any
val error_desc_set_bucket : error_desc -> string -> error_desc
set the bucket value of an error_desc
val error_desc_is_reportable_bucket : error_desc -> bool
check if the report is in a high confidence bucket
val error_desc_hash : error_desc -> int
hash function for error_desc
val error_desc_equal : error_desc -> error_desc -> bool
equality for error_desc
val pp_error_desc : Stdlib.Format.formatter -> error_desc -> unit
pretty print an error description
val error_desc_get_dotty : error_desc -> string option
val deref_str_null : IR.Procname.t option -> deref_str
dereference strings for null dereference
val deref_str_nullable : IR.Procname.t option -> string -> deref_str
dereference strings for null dereference due to Nullable annotation
val deref_str_undef : (IR.Procname.t * IBase.Location.t) -> deref_str
dereference strings for an undefined value coming from the given procedure
val deref_str_dangling : IR.PredSymb.dangling_kind option -> deref_str
dereference strings for a dangling pointer dereference
val deref_str_array_bound : IR.IntLit.t option -> IR.IntLit.t option -> deref_str
dereference strings for an array out of bound access
val deref_str_nil_argument_in_variadic_method : IR.Procname.t -> int -> int -> deref_str
dereference strings for nonterminal nil arguments in c/objc variadic methods
val deref_str_pointer_size_mismatch : IR.Typ.t -> IR.Typ.t -> deref_str
dereference strings for a pointer size mismatch
type access
=
| Last_assigned of int * bool | line, null_case_flag |
| Last_accessed of int * bool | line, is_nullable flag |
| Initialized_automatically | |
| Returned_from_call of int |
type of access
val dereference_string : IR.Procname.t -> deref_str -> string -> access option -> IBase.Location.t -> error_desc
val parameter_field_not_null_checked_desc : error_desc -> IR.Exp.t -> error_desc
val is_parameter_not_null_checked_desc : error_desc -> bool
val is_field_not_null_checked_desc : error_desc -> bool
val desc_class_cast_exception : IR.Procname.t option -> string -> string -> string option -> IBase.Location.t -> error_desc
val desc_condition_always_true_false : IR.IntLit.t -> string option -> IBase.Location.t -> error_desc
val desc_deallocate_stack_variable : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_deallocate_static_memory : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_divide_by_zero : string -> IBase.Location.t -> error_desc
val desc_empty_vector_access : IR.Procname.t option -> string -> IBase.Location.t -> error_desc
val is_empty_vector_access_desc : error_desc -> bool
val desc_frontend_warning : string -> string option -> IBase.Location.t -> error_desc
val desc_leak : IR.Exp.t option -> string option -> IR.PredSymb.resource option -> IR.PredSymb.res_action option -> IBase.Location.t -> string option -> error_desc
val desc_null_test_after_dereference : string -> int -> IBase.Location.t -> error_desc
val desc_custom_error : IBase.Location.t -> error_desc
Create human-readable error description for assertion failures
val desc_precondition_not_met : pnm_kind option -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_retain_cycle : string -> IBase.Location.t -> string option -> error_desc
val desc_registered_observer_being_deallocated : IR.Pvar.t -> IBase.Location.t -> error_desc
val desc_skip_function : IR.Procname.t -> error_desc
val desc_inherently_dangerous_function : IR.Procname.t -> error_desc
val desc_unary_minus_applied_to_unsigned_expression : string option -> string -> IBase.Location.t -> error_desc
val desc_uninitialized_dangling_pointer_deref : deref_str -> string -> IBase.Location.t -> error_desc
val access_desc : access option -> string list
Absint__AbstractDomain.TopLiftedUtils
val leq : leq:(lhs:'a -> rhs:'a -> bool) -> lhs:'a Types.top_lifted -> rhs:'a Types.top_lifted -> bool
val pp : pp:(Stdlib.Format.formatter -> 'a -> unit) -> Stdlib.Format.formatter -> 'a Types.top_lifted -> unit
val pp_top : Stdlib.Format.formatter -> unit
Absint__Localise
module Tags : sig ... end
type error_desc
=
{
descriptions : string list; |
tags : Tags.t; |
dotty : string option; |
}
description field of error messages
val compare_error_desc : error_desc -> error_desc -> int
val no_desc : error_desc
empty error description
val verbatim_desc : string -> error_desc
verbatim desc from a string, not to be used for user-visible descs
module BucketLevel : sig ... end
val error_desc_get_bucket : error_desc -> string option
get the bucket value of an error_desc, if any
val error_desc_set_bucket : error_desc -> string -> error_desc
set the bucket value of an error_desc
val error_desc_is_reportable_bucket : error_desc -> bool
check if the report is in a high confidence bucket
val error_desc_hash : error_desc -> int
hash function for error_desc
val error_desc_equal : error_desc -> error_desc -> bool
equality for error_desc
val pp_error_desc : Stdlib.Format.formatter -> error_desc -> unit
pretty print an error description
val error_desc_get_dotty : error_desc -> string option
val deref_str_null : IR.Procname.t option -> deref_str
dereference strings for null dereference
val deref_str_nullable : IR.Procname.t option -> string -> deref_str
dereference strings for null dereference due to Nullable annotation
val deref_str_undef : (IR.Procname.t * IBase.Location.t) -> deref_str
dereference strings for an undefined value coming from the given procedure
val deref_str_freed : IR.PredSymb.res_action -> deref_str
dereference strings for a freed pointer dereference
val deref_str_dangling : IR.PredSymb.dangling_kind option -> deref_str
dereference strings for a dangling pointer dereference
val deref_str_array_bound : IR.IntLit.t option -> IR.IntLit.t option -> deref_str
dereference strings for an array out of bound access
val deref_str_nil_argument_in_variadic_method : IR.Procname.t -> int -> int -> deref_str
dereference strings for nonterminal nil arguments in c/objc variadic methods
val deref_str_pointer_size_mismatch : IR.Typ.t -> IR.Typ.t -> deref_str
dereference strings for a pointer size mismatch
type access
=
| Last_assigned of int * bool | line, null_case_flag |
| Last_accessed of int * bool | line, is_nullable flag |
| Initialized_automatically | |
| Returned_from_call of int |
type of access
val dereference_string : IR.Procname.t -> deref_str -> string -> access option -> IBase.Location.t -> error_desc
val parameter_field_not_null_checked_desc : error_desc -> IR.Exp.t -> error_desc
val is_parameter_not_null_checked_desc : error_desc -> bool
val is_field_not_null_checked_desc : error_desc -> bool
val desc_allocation_mismatch : (IR.Procname.t * IR.Procname.t * IBase.Location.t) -> (IR.Procname.t * IR.Procname.t * IBase.Location.t) -> error_desc
val desc_class_cast_exception : IR.Procname.t option -> string -> string -> string option -> IBase.Location.t -> error_desc
val desc_condition_always_true_false : IR.IntLit.t -> string option -> IBase.Location.t -> error_desc
val desc_deallocate_stack_variable : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_deallocate_static_memory : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_divide_by_zero : string -> IBase.Location.t -> error_desc
val desc_empty_vector_access : IR.Procname.t option -> string -> IBase.Location.t -> error_desc
val is_empty_vector_access_desc : error_desc -> bool
val desc_frontend_warning : string -> string option -> IBase.Location.t -> error_desc
val desc_leak : IR.Exp.t option -> string option -> IR.PredSymb.resource option -> IR.PredSymb.res_action option -> IBase.Location.t -> string option -> error_desc
val desc_null_test_after_dereference : string -> int -> IBase.Location.t -> error_desc
val desc_custom_error : IBase.Location.t -> error_desc
Create human-readable error description for assertion failures
val desc_precondition_not_met : pnm_kind option -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_retain_cycle : string -> IBase.Location.t -> string option -> error_desc
val desc_registered_observer_being_deallocated : IR.Pvar.t -> IBase.Location.t -> error_desc
val desc_stack_variable_address_escape : IR.Pvar.t -> string option -> IBase.Location.t -> error_desc
val desc_skip_function : IR.Procname.t -> error_desc
val desc_inherently_dangerous_function : IR.Procname.t -> error_desc
val desc_unary_minus_applied_to_unsigned_expression : string option -> string -> IBase.Location.t -> error_desc
val desc_uninitialized_dangling_pointer_deref : deref_str -> string -> IBase.Location.t -> error_desc
val access_desc : access option -> string list
Absint__Localise
module Tags : sig ... end
type error_desc
=
{
descriptions : string list; |
tags : Tags.t; |
dotty : string option; |
}
description field of error messages
val compare_error_desc : error_desc -> error_desc -> int
val no_desc : error_desc
empty error description
val verbatim_desc : string -> error_desc
verbatim desc from a string, not to be used for user-visible descs
module BucketLevel : sig ... end
val error_desc_get_bucket : error_desc -> string option
get the bucket value of an error_desc, if any
val error_desc_set_bucket : error_desc -> string -> error_desc
set the bucket value of an error_desc
val error_desc_is_reportable_bucket : error_desc -> bool
check if the report is in a high confidence bucket
val error_desc_hash : error_desc -> int
hash function for error_desc
val error_desc_equal : error_desc -> error_desc -> bool
equality for error_desc
val pp_error_desc : Stdlib.Format.formatter -> error_desc -> unit
pretty print an error description
val error_desc_get_dotty : error_desc -> string option
val deref_str_null : IR.Procname.t option -> deref_str
dereference strings for null dereference
val deref_str_nullable : IR.Procname.t option -> string -> deref_str
dereference strings for null dereference due to Nullable annotation
val deref_str_undef : (IR.Procname.t * IBase.Location.t) -> deref_str
dereference strings for an undefined value coming from the given procedure
val deref_str_dangling : IR.PredSymb.dangling_kind option -> deref_str
dereference strings for a dangling pointer dereference
val deref_str_array_bound : IR.IntLit.t option -> IR.IntLit.t option -> deref_str
dereference strings for an array out of bound access
val deref_str_nil_argument_in_variadic_method : IR.Procname.t -> int -> int -> deref_str
dereference strings for nonterminal nil arguments in c/objc variadic methods
val deref_str_pointer_size_mismatch : IR.Typ.t -> IR.Typ.t -> deref_str
dereference strings for a pointer size mismatch
type access
=
| Last_assigned of int * bool | line, null_case_flag |
| Last_accessed of int * bool | line, is_nullable flag |
| Initialized_automatically | |
| Returned_from_call of int |
type of access
val dereference_string : IR.Procname.t -> deref_str -> string -> access option -> IBase.Location.t -> error_desc
val parameter_field_not_null_checked_desc : error_desc -> IR.Exp.t -> error_desc
val is_parameter_not_null_checked_desc : error_desc -> bool
val is_field_not_null_checked_desc : error_desc -> bool
val desc_class_cast_exception : IR.Procname.t option -> string -> string -> string option -> IBase.Location.t -> error_desc
val desc_condition_always_true_false : IR.IntLit.t -> string option -> IBase.Location.t -> error_desc
val desc_deallocate_stack_variable : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_deallocate_static_memory : string -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_divide_by_zero : string -> IBase.Location.t -> error_desc
val desc_empty_vector_access : IR.Procname.t option -> string -> IBase.Location.t -> error_desc
val is_empty_vector_access_desc : error_desc -> bool
val desc_frontend_warning : string -> string option -> IBase.Location.t -> error_desc
val desc_leak : IR.Exp.t option -> string option -> IR.PredSymb.resource option -> IR.PredSymb.res_action option -> IBase.Location.t -> string option -> error_desc
val desc_null_test_after_dereference : string -> int -> IBase.Location.t -> error_desc
val desc_custom_error : IBase.Location.t -> error_desc
Create human-readable error description for assertion failures
val desc_precondition_not_met : pnm_kind option -> IR.Procname.t -> IBase.Location.t -> error_desc
val desc_retain_cycle : string -> IBase.Location.t -> string option -> error_desc
val desc_registered_observer_being_deallocated : IR.Pvar.t -> IBase.Location.t -> error_desc
val desc_skip_function : IR.Procname.t -> error_desc
val desc_inherently_dangerous_function : IR.Procname.t -> error_desc
val desc_unary_minus_applied_to_unsigned_expression : string option -> string -> IBase.Location.t -> error_desc
val desc_uninitialized_dangling_pointer_deref : deref_str -> string -> IBase.Location.t -> error_desc
val access_desc : access option -> string list
Fields.Direct
val iter : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> unit) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> unit) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> unit) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> unit) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> unit) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> unit) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> unit) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> unit) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> unit) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> unit) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> unit) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> unit) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> unit) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> unit) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> unit) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> unit) -> unit
val fold : t -> init:'acc__0 -> annot_map:('acc__0 -> (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'acc__1) -> biabduction:('acc__1 -> (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'acc__4) -> class_loads:('acc__4 -> (t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> 'acc__5) -> cost:('acc__5 -> (t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'acc__7) -> litho_required_props:('acc__7 -> (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'acc__8) -> pulse:('acc__8 -> (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'acc__9) -> purity:('acc__9 -> (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'acc__10) -> quandary:('acc__10 -> (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'acc__11) -> racerd:('acc__11 -> (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'acc__12) -> siof:('acc__12 -> (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'acc__13) -> starvation:('acc__13 -> (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'acc__14) -> nullsafe:('acc__14 -> (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'acc__15) -> uninit:('acc__15 -> (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'acc__16) -> 'acc__16
val for_all : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val exists : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val to_list : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'elem__) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'elem__) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'elem__) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'elem__) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> 'elem__) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'elem__) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'elem__) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'elem__) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'elem__) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'elem__) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'elem__) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'elem__) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'elem__) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'elem__) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'elem__) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'elem__) -> 'elem__ list
val map : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> BO.BufferOverrunCheckerSummary.t option) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> Checkers.ClassLoadsDomain.summary option) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> Checkers.LithoDomain.summary option) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> Pulselib.PulseSummary.t option) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> Checkers.PurityDomain.summary option) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> Quandary.QuandarySummary.t option) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> Concurrency.RacerDDomain.summary option) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> Checkers.SiofDomain.Summary.t option) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> Concurrency.StarvationDomain.summary option) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> Nullsafe.NullsafeSummary.t option) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> Checkers.UninitDomain.Summary.t option) -> t
val set_all_mutable_fields : t -> unit
Fields.Direct
val iter : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> unit) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> unit) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> unit) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> unit) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> unit) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> unit) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> unit) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> unit) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> unit) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> unit) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> unit) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> unit) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> unit) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> unit) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> unit) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> unit) -> unit
val fold : t -> init:'acc__0 -> annot_map:('acc__0 -> (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'acc__1) -> biabduction:('acc__1 -> (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'acc__4) -> config_checks_between_markers:('acc__4 -> (t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> 'acc__5) -> cost:('acc__5 -> (t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'acc__7) -> litho_required_props:('acc__7 -> (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'acc__8) -> pulse:('acc__8 -> (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'acc__9) -> purity:('acc__9 -> (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'acc__10) -> quandary:('acc__10 -> (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'acc__11) -> racerd:('acc__11 -> (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'acc__12) -> siof:('acc__12 -> (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'acc__13) -> starvation:('acc__13 -> (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'acc__14) -> nullsafe:('acc__14 -> (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'acc__15) -> uninit:('acc__15 -> (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'acc__16) -> 'acc__16
val for_all : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val exists : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val to_list : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'elem__) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'elem__) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'elem__) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'elem__) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> 'elem__) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'elem__) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'elem__) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'elem__) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'elem__) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'elem__) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'elem__) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'elem__) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'elem__) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'elem__) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'elem__) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'elem__) -> 'elem__ list
val map : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> BO.BufferOverrunCheckerSummary.t option) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> Checkers.LithoDomain.summary option) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> Pulselib.PulseSummary.t option) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> Checkers.PurityDomain.summary option) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> Quandary.QuandarySummary.t option) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> Concurrency.RacerDDomain.summary option) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> Checkers.SiofDomain.Summary.t option) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> Concurrency.StarvationDomain.summary option) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> Nullsafe.NullsafeSummary.t option) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> Checkers.UninitDomain.Summary.t option) -> t
val set_all_mutable_fields : t -> unit
Payloads.Fields
val names : string list
val uninit : (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t
val nullsafe : (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t
val starvation : (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t
val siof : (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t
val racerd : (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t
val quandary : (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t
val purity : (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t
val pulse : (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t
val litho_required_props : (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t
val lab_resource_leaks : (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t
val cost : (t, Costlib.CostDomain.summary option) Fieldslib.Field.t
val class_loads : (t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t
val buffer_overrun_checker : (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t
val buffer_overrun_analysis : (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t
val biabduction : (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t
val annot_map : (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t
val fold : init:'acc__0 -> annot_map:('acc__0 -> (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__1) -> biabduction:('acc__1 -> (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__4) -> class_loads:('acc__4 -> (t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'acc__5) -> cost:('acc__5 -> (t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__7) -> litho_required_props:('acc__7 -> (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__8) -> pulse:('acc__8 -> (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__9) -> purity:('acc__9 -> (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__10) -> quandary:('acc__10 -> (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__11) -> racerd:('acc__11 -> (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__12) -> siof:('acc__12 -> (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__13) -> starvation:('acc__13 -> (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__14) -> nullsafe:('acc__14 -> (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__15) -> uninit:('acc__15 -> (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__16) -> 'acc__16
val make_creator : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__0 -> ('input__ -> Checkers.AnnotationReachabilityDomain.t option) * 'acc__1) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__1 -> ('input__ -> Biabduction.BiabductionSummary.t option) * 'acc__2) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__2 -> ('input__ -> BO.BufferOverrunAnalysisSummary.t option) * 'acc__3) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__3 -> ('input__ -> BO.BufferOverrunCheckerSummary.t option) * 'acc__4) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'acc__4 -> ('input__ -> Checkers.ClassLoadsDomain.summary option) * 'acc__5) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__5 -> ('input__ -> Costlib.CostDomain.summary option) * 'acc__6) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__6 -> ('input__ -> Labs.ResourceLeakDomain.summary option) * 'acc__7) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__7 -> ('input__ -> Checkers.LithoDomain.summary option) * 'acc__8) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__8 -> ('input__ -> Pulselib.PulseSummary.t option) * 'acc__9) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__9 -> ('input__ -> Checkers.PurityDomain.summary option) * 'acc__10) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__10 -> ('input__ -> Quandary.QuandarySummary.t option) * 'acc__11) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__11 -> ('input__ -> Concurrency.RacerDDomain.summary option) * 'acc__12) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__12 -> ('input__ -> Checkers.SiofDomain.Summary.t option) * 'acc__13) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__13 -> ('input__ -> Concurrency.StarvationDomain.summary option) * 'acc__14) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__14 -> ('input__ -> Nullsafe.NullsafeSummary.t option) * 'acc__15) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__15 -> ('input__ -> Checkers.UninitDomain.Summary.t option) * 'acc__16) -> 'acc__0 -> ('input__ -> t) * 'acc__16
val create : annot_map:Checkers.AnnotationReachabilityDomain.t option -> biabduction:Biabduction.BiabductionSummary.t option -> buffer_overrun_analysis:BO.BufferOverrunAnalysisSummary.t option -> buffer_overrun_checker:BO.BufferOverrunCheckerSummary.t option -> class_loads:Checkers.ClassLoadsDomain.summary option -> cost:Costlib.CostDomain.summary option -> lab_resource_leaks:Labs.ResourceLeakDomain.summary option -> litho_required_props:Checkers.LithoDomain.summary option -> pulse:Pulselib.PulseSummary.t option -> purity:Checkers.PurityDomain.summary option -> quandary:Quandary.QuandarySummary.t option -> racerd:Concurrency.RacerDDomain.summary option -> siof:Checkers.SiofDomain.Summary.t option -> starvation:Concurrency.StarvationDomain.summary option -> nullsafe:Nullsafe.NullsafeSummary.t option -> uninit:Checkers.UninitDomain.Summary.t option -> t
val map : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunCheckerSummary.t option) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> Checkers.ClassLoadsDomain.summary option) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> Checkers.LithoDomain.summary option) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> Pulselib.PulseSummary.t option) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> Checkers.PurityDomain.summary option) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> Quandary.QuandarySummary.t option) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> Concurrency.RacerDDomain.summary option) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> Checkers.SiofDomain.Summary.t option) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> Concurrency.StarvationDomain.summary option) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> Nullsafe.NullsafeSummary.t option) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> Checkers.UninitDomain.Summary.t option) -> t
val iter : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> unit) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> unit) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> unit) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> unit) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> unit) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> unit) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> unit) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> unit) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> unit) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> unit) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> unit) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> unit) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> unit) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> unit) -> unit
val for_all : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val exists : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val to_list : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'elem__) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'elem__) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'elem__) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'elem__) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'elem__) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'elem__) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'elem__) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'elem__) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'elem__) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'elem__) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'elem__) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'elem__) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
val map_poly : ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user -> 'x0 list
module Direct : sig ... end
Payloads.Fields
val names : string list
val uninit : (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t
val nullsafe : (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t
val starvation : (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t
val siof : (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t
val racerd : (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t
val quandary : (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t
val purity : (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t
val pulse : (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t
val litho_required_props : (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t
val lab_resource_leaks : (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t
val cost : (t, Costlib.CostDomain.summary option) Fieldslib.Field.t
val config_checks_between_markers : (t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t
val buffer_overrun_checker : (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t
val buffer_overrun_analysis : (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t
val biabduction : (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t
val annot_map : (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t
val fold : init:'acc__0 -> annot_map:('acc__0 -> (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__1) -> biabduction:('acc__1 -> (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__4) -> config_checks_between_markers:('acc__4 -> (t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'acc__5) -> cost:('acc__5 -> (t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__7) -> litho_required_props:('acc__7 -> (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__8) -> pulse:('acc__8 -> (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__9) -> purity:('acc__9 -> (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__10) -> quandary:('acc__10 -> (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__11) -> racerd:('acc__11 -> (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__12) -> siof:('acc__12 -> (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__13) -> starvation:('acc__13 -> (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__14) -> nullsafe:('acc__14 -> (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__15) -> uninit:('acc__15 -> (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__16) -> 'acc__16
val make_creator : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__0 -> ('input__ -> Checkers.AnnotationReachabilityDomain.t option) * 'acc__1) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__1 -> ('input__ -> Biabduction.BiabductionSummary.t option) * 'acc__2) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__2 -> ('input__ -> BO.BufferOverrunAnalysisSummary.t option) * 'acc__3) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__3 -> ('input__ -> BO.BufferOverrunCheckerSummary.t option) * 'acc__4) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'acc__4 -> ('input__ -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) * 'acc__5) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__5 -> ('input__ -> Costlib.CostDomain.summary option) * 'acc__6) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__6 -> ('input__ -> Labs.ResourceLeakDomain.summary option) * 'acc__7) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__7 -> ('input__ -> Checkers.LithoDomain.summary option) * 'acc__8) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__8 -> ('input__ -> Pulselib.PulseSummary.t option) * 'acc__9) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__9 -> ('input__ -> Checkers.PurityDomain.summary option) * 'acc__10) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__10 -> ('input__ -> Quandary.QuandarySummary.t option) * 'acc__11) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__11 -> ('input__ -> Concurrency.RacerDDomain.summary option) * 'acc__12) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__12 -> ('input__ -> Checkers.SiofDomain.Summary.t option) * 'acc__13) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__13 -> ('input__ -> Concurrency.StarvationDomain.summary option) * 'acc__14) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__14 -> ('input__ -> Nullsafe.NullsafeSummary.t option) * 'acc__15) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__15 -> ('input__ -> Checkers.UninitDomain.Summary.t option) * 'acc__16) -> 'acc__0 -> ('input__ -> t) * 'acc__16
val create : annot_map:Checkers.AnnotationReachabilityDomain.t option -> biabduction:Biabduction.BiabductionSummary.t option -> buffer_overrun_analysis:BO.BufferOverrunAnalysisSummary.t option -> buffer_overrun_checker:BO.BufferOverrunCheckerSummary.t option -> config_checks_between_markers:Checkers.ConfigChecksBetweenMarkers.Summary.t option -> cost:Costlib.CostDomain.summary option -> lab_resource_leaks:Labs.ResourceLeakDomain.summary option -> litho_required_props:Checkers.LithoDomain.summary option -> pulse:Pulselib.PulseSummary.t option -> purity:Checkers.PurityDomain.summary option -> quandary:Quandary.QuandarySummary.t option -> racerd:Concurrency.RacerDDomain.summary option -> siof:Checkers.SiofDomain.Summary.t option -> starvation:Concurrency.StarvationDomain.summary option -> nullsafe:Nullsafe.NullsafeSummary.t option -> uninit:Checkers.UninitDomain.Summary.t option -> t
val map : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunCheckerSummary.t option) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> Checkers.LithoDomain.summary option) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> Pulselib.PulseSummary.t option) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> Checkers.PurityDomain.summary option) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> Quandary.QuandarySummary.t option) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> Concurrency.RacerDDomain.summary option) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> Checkers.SiofDomain.Summary.t option) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> Concurrency.StarvationDomain.summary option) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> Nullsafe.NullsafeSummary.t option) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> Checkers.UninitDomain.Summary.t option) -> t
val iter : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> unit) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> unit) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> unit) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> unit) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> unit) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> unit) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> unit) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> unit) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> unit) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> unit) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> unit) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> unit) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> unit) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> unit) -> unit
val for_all : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val exists : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val to_list : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'elem__) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'elem__) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'elem__) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'elem__) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'elem__) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'elem__) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'elem__) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'elem__) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'elem__) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'elem__) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'elem__) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'elem__) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
val map_poly : ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user -> 'x0 list
module Direct : sig ... end
Backend.Payloads
include sig ... end
type t
=
{
annot_map : Checkers.AnnotationReachabilityDomain.t option; |
biabduction : Biabduction.BiabductionSummary.t option; |
buffer_overrun_analysis : BO.BufferOverrunAnalysisSummary.t option; |
buffer_overrun_checker : BO.BufferOverrunCheckerSummary.t option; |
class_loads : Checkers.ClassLoadsDomain.summary option; |
cost : Costlib.CostDomain.summary option; |
lab_resource_leaks : Labs.ResourceLeakDomain.summary option; |
litho_required_props : Checkers.LithoDomain.summary option; |
pulse : Pulselib.PulseSummary.t option; |
purity : Checkers.PurityDomain.summary option; |
quandary : Quandary.QuandarySummary.t option; |
racerd : Concurrency.RacerDDomain.summary option; |
siof : Checkers.SiofDomain.Summary.t option; |
starvation : Concurrency.StarvationDomain.summary option; |
nullsafe : Nullsafe.NullsafeSummary.t option; |
uninit : Checkers.UninitDomain.Summary.t option; |
}
analysis results
val uninit : t -> Checkers.UninitDomain.Summary.t option
val nullsafe : t -> Nullsafe.NullsafeSummary.t option
val starvation : t -> Concurrency.StarvationDomain.summary option
val siof : t -> Checkers.SiofDomain.Summary.t option
val racerd : t -> Concurrency.RacerDDomain.summary option
val quandary : t -> Quandary.QuandarySummary.t option
val purity : t -> Checkers.PurityDomain.summary option
val pulse : t -> Pulselib.PulseSummary.t option
val litho_required_props : t -> Checkers.LithoDomain.summary option
val lab_resource_leaks : t -> Labs.ResourceLeakDomain.summary option
val cost : t -> Costlib.CostDomain.summary option
val class_loads : t -> Checkers.ClassLoadsDomain.summary option
val buffer_overrun_checker : t -> BO.BufferOverrunCheckerSummary.t option
val buffer_overrun_analysis : t -> BO.BufferOverrunAnalysisSummary.t option
val biabduction : t -> Biabduction.BiabductionSummary.t option
val annot_map : t -> Checkers.AnnotationReachabilityDomain.t option
module Fields : sig ... end
val pp : IStdlib.Pp.env -> Stdlib.Format.formatter -> t -> unit
val empty : t
Backend.Payloads
include sig ... end
type t
=
{
annot_map : Checkers.AnnotationReachabilityDomain.t option; |
biabduction : Biabduction.BiabductionSummary.t option; |
buffer_overrun_analysis : BO.BufferOverrunAnalysisSummary.t option; |
buffer_overrun_checker : BO.BufferOverrunCheckerSummary.t option; |
config_checks_between_markers : Checkers.ConfigChecksBetweenMarkers.Summary.t option; |
cost : Costlib.CostDomain.summary option; |
lab_resource_leaks : Labs.ResourceLeakDomain.summary option; |
litho_required_props : Checkers.LithoDomain.summary option; |
pulse : Pulselib.PulseSummary.t option; |
purity : Checkers.PurityDomain.summary option; |
quandary : Quandary.QuandarySummary.t option; |
racerd : Concurrency.RacerDDomain.summary option; |
siof : Checkers.SiofDomain.Summary.t option; |
starvation : Concurrency.StarvationDomain.summary option; |
nullsafe : Nullsafe.NullsafeSummary.t option; |
uninit : Checkers.UninitDomain.Summary.t option; |
}
analysis results
val uninit : t -> Checkers.UninitDomain.Summary.t option
val nullsafe : t -> Nullsafe.NullsafeSummary.t option
val starvation : t -> Concurrency.StarvationDomain.summary option
val siof : t -> Checkers.SiofDomain.Summary.t option
val racerd : t -> Concurrency.RacerDDomain.summary option
val quandary : t -> Quandary.QuandarySummary.t option
val purity : t -> Checkers.PurityDomain.summary option
val pulse : t -> Pulselib.PulseSummary.t option
val litho_required_props : t -> Checkers.LithoDomain.summary option
val lab_resource_leaks : t -> Labs.ResourceLeakDomain.summary option
val cost : t -> Costlib.CostDomain.summary option
val config_checks_between_markers : t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option
val buffer_overrun_checker : t -> BO.BufferOverrunCheckerSummary.t option
val buffer_overrun_analysis : t -> BO.BufferOverrunAnalysisSummary.t option
val biabduction : t -> Biabduction.BiabductionSummary.t option
val annot_map : t -> Checkers.AnnotationReachabilityDomain.t option
module Fields : sig ... end
val pp : IStdlib.Pp.env -> Stdlib.Format.formatter -> t -> unit
val empty : t
Fields.Direct
val iter : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> unit) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> unit) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> unit) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> unit) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> unit) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> unit) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> unit) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> unit) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> unit) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> unit) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> unit) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> unit) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> unit) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> unit) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> unit) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> unit) -> unit
val fold : t -> init:'acc__0 -> annot_map:('acc__0 -> (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'acc__1) -> biabduction:('acc__1 -> (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'acc__4) -> class_loads:('acc__4 -> (t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> 'acc__5) -> cost:('acc__5 -> (t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'acc__7) -> litho_required_props:('acc__7 -> (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'acc__8) -> pulse:('acc__8 -> (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'acc__9) -> purity:('acc__9 -> (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'acc__10) -> quandary:('acc__10 -> (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'acc__11) -> racerd:('acc__11 -> (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'acc__12) -> siof:('acc__12 -> (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'acc__13) -> starvation:('acc__13 -> (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'acc__14) -> nullsafe:('acc__14 -> (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'acc__15) -> uninit:('acc__15 -> (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'acc__16) -> 'acc__16
val for_all : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val exists : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val to_list : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'elem__) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'elem__) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'elem__) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'elem__) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> 'elem__) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'elem__) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'elem__) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'elem__) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'elem__) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'elem__) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'elem__) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'elem__) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'elem__) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'elem__) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'elem__) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'elem__) -> 'elem__ list
val map : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> BO.BufferOverrunCheckerSummary.t option) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> t -> Checkers.ClassLoadsDomain.summary option -> Checkers.ClassLoadsDomain.summary option) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> Checkers.LithoDomain.summary option) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> Pulselib.PulseSummary.t option) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> Checkers.PurityDomain.summary option) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> Quandary.QuandarySummary.t option) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> Concurrency.RacerDDomain.summary option) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> Checkers.SiofDomain.Summary.t option) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> Concurrency.StarvationDomain.summary option) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> Nullsafe.NullsafeSummary.t option) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> Checkers.UninitDomain.Summary.t option) -> t
val set_all_mutable_fields : t -> unit
Fields.Direct
val iter : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> unit) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> unit) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> unit) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> unit) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> unit) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> unit) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> unit) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> unit) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> unit) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> unit) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> unit) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> unit) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> unit) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> unit) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> unit) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> unit) -> unit
val fold : t -> init:'acc__0 -> annot_map:('acc__0 -> (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'acc__1) -> biabduction:('acc__1 -> (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'acc__4) -> config_checks_between_markers:('acc__4 -> (t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> 'acc__5) -> cost:('acc__5 -> (t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'acc__7) -> litho_required_props:('acc__7 -> (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'acc__8) -> pulse:('acc__8 -> (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'acc__9) -> purity:('acc__9 -> (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'acc__10) -> quandary:('acc__10 -> (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'acc__11) -> racerd:('acc__11 -> (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'acc__12) -> siof:('acc__12 -> (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'acc__13) -> starvation:('acc__13 -> (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'acc__14) -> nullsafe:('acc__14 -> (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'acc__15) -> uninit:('acc__15 -> (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'acc__16) -> 'acc__16
val for_all : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val exists : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> bool) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> bool) -> bool
val to_list : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> 'elem__) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> 'elem__) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> 'elem__) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> 'elem__) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> 'elem__) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> 'elem__) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> 'elem__) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> 'elem__) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> 'elem__) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> 'elem__) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> 'elem__) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> 'elem__) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> 'elem__) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> 'elem__) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> 'elem__) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> 'elem__) -> 'elem__ list
val map : t -> annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> t -> Checkers.AnnotationReachabilityDomain.t option -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> t -> Biabduction.BiabductionSummary.t option -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunAnalysisSummary.t option -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> t -> BO.BufferOverrunCheckerSummary.t option -> BO.BufferOverrunCheckerSummary.t option) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> t -> Costlib.CostDomain.summary option -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> t -> Labs.ResourceLeakDomain.summary option -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> t -> Checkers.LithoDomain.summary option -> Checkers.LithoDomain.summary option) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> t -> Pulselib.PulseSummary.t option -> Pulselib.PulseSummary.t option) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> t -> Checkers.PurityDomain.summary option -> Checkers.PurityDomain.summary option) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> t -> Quandary.QuandarySummary.t option -> Quandary.QuandarySummary.t option) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.RacerDDomain.summary option -> Concurrency.RacerDDomain.summary option) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.SiofDomain.Summary.t option -> Checkers.SiofDomain.Summary.t option) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> t -> Concurrency.StarvationDomain.summary option -> Concurrency.StarvationDomain.summary option) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> t -> Nullsafe.NullsafeSummary.t option -> Nullsafe.NullsafeSummary.t option) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> t -> Checkers.UninitDomain.Summary.t option -> Checkers.UninitDomain.Summary.t option) -> t
val set_all_mutable_fields : t -> unit
Backend__Payloads.Fields
val names : string list
val uninit : (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t
val nullsafe : (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t
val starvation : (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t
val siof : (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t
val racerd : (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t
val quandary : (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t
val purity : (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t
val pulse : (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t
val litho_required_props : (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t
val lab_resource_leaks : (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t
val cost : (t, Costlib.CostDomain.summary option) Fieldslib.Field.t
val class_loads : (t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t
val buffer_overrun_checker : (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t
val buffer_overrun_analysis : (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t
val biabduction : (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t
val annot_map : (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t
val fold : init:'acc__0 -> annot_map:('acc__0 -> (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__1) -> biabduction:('acc__1 -> (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__4) -> class_loads:('acc__4 -> (t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'acc__5) -> cost:('acc__5 -> (t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__7) -> litho_required_props:('acc__7 -> (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__8) -> pulse:('acc__8 -> (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__9) -> purity:('acc__9 -> (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__10) -> quandary:('acc__10 -> (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__11) -> racerd:('acc__11 -> (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__12) -> siof:('acc__12 -> (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__13) -> starvation:('acc__13 -> (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__14) -> nullsafe:('acc__14 -> (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__15) -> uninit:('acc__15 -> (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__16) -> 'acc__16
val make_creator : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__0 -> ('input__ -> Checkers.AnnotationReachabilityDomain.t option) * 'acc__1) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__1 -> ('input__ -> Biabduction.BiabductionSummary.t option) * 'acc__2) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__2 -> ('input__ -> BO.BufferOverrunAnalysisSummary.t option) * 'acc__3) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__3 -> ('input__ -> BO.BufferOverrunCheckerSummary.t option) * 'acc__4) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'acc__4 -> ('input__ -> Checkers.ClassLoadsDomain.summary option) * 'acc__5) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__5 -> ('input__ -> Costlib.CostDomain.summary option) * 'acc__6) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__6 -> ('input__ -> Labs.ResourceLeakDomain.summary option) * 'acc__7) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__7 -> ('input__ -> Checkers.LithoDomain.summary option) * 'acc__8) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__8 -> ('input__ -> Pulselib.PulseSummary.t option) * 'acc__9) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__9 -> ('input__ -> Checkers.PurityDomain.summary option) * 'acc__10) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__10 -> ('input__ -> Quandary.QuandarySummary.t option) * 'acc__11) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__11 -> ('input__ -> Concurrency.RacerDDomain.summary option) * 'acc__12) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__12 -> ('input__ -> Checkers.SiofDomain.Summary.t option) * 'acc__13) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__13 -> ('input__ -> Concurrency.StarvationDomain.summary option) * 'acc__14) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__14 -> ('input__ -> Nullsafe.NullsafeSummary.t option) * 'acc__15) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__15 -> ('input__ -> Checkers.UninitDomain.Summary.t option) * 'acc__16) -> 'acc__0 -> ('input__ -> t) * 'acc__16
val create : annot_map:Checkers.AnnotationReachabilityDomain.t option -> biabduction:Biabduction.BiabductionSummary.t option -> buffer_overrun_analysis:BO.BufferOverrunAnalysisSummary.t option -> buffer_overrun_checker:BO.BufferOverrunCheckerSummary.t option -> class_loads:Checkers.ClassLoadsDomain.summary option -> cost:Costlib.CostDomain.summary option -> lab_resource_leaks:Labs.ResourceLeakDomain.summary option -> litho_required_props:Checkers.LithoDomain.summary option -> pulse:Pulselib.PulseSummary.t option -> purity:Checkers.PurityDomain.summary option -> quandary:Quandary.QuandarySummary.t option -> racerd:Concurrency.RacerDDomain.summary option -> siof:Checkers.SiofDomain.Summary.t option -> starvation:Concurrency.StarvationDomain.summary option -> nullsafe:Nullsafe.NullsafeSummary.t option -> uninit:Checkers.UninitDomain.Summary.t option -> t
val map : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunCheckerSummary.t option) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> Checkers.ClassLoadsDomain.summary option) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> Checkers.LithoDomain.summary option) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> Pulselib.PulseSummary.t option) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> Checkers.PurityDomain.summary option) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> Quandary.QuandarySummary.t option) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> Concurrency.RacerDDomain.summary option) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> Checkers.SiofDomain.Summary.t option) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> Concurrency.StarvationDomain.summary option) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> Nullsafe.NullsafeSummary.t option) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> Checkers.UninitDomain.Summary.t option) -> t
val iter : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> unit) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> unit) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> unit) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> unit) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> unit) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> unit) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> unit) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> unit) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> unit) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> unit) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> unit) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> unit) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> unit) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> unit) -> unit
val for_all : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val exists : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val to_list : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'elem__) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'elem__) -> class_loads:((t, Checkers.ClassLoadsDomain.summary option) Fieldslib.Field.t -> 'elem__) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'elem__) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'elem__) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'elem__) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'elem__) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'elem__) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'elem__) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'elem__) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'elem__) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'elem__) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
val map_poly : ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user -> 'x0 list
module Direct : sig ... end
Backend__Payloads.Fields
val names : string list
val uninit : (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t
val nullsafe : (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t
val starvation : (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t
val siof : (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t
val racerd : (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t
val quandary : (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t
val purity : (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t
val pulse : (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t
val litho_required_props : (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t
val lab_resource_leaks : (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t
val cost : (t, Costlib.CostDomain.summary option) Fieldslib.Field.t
val config_checks_between_markers : (t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t
val buffer_overrun_checker : (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t
val buffer_overrun_analysis : (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t
val biabduction : (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t
val annot_map : (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t
val fold : init:'acc__0 -> annot_map:('acc__0 -> (t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__1) -> biabduction:('acc__1 -> (t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__2) -> buffer_overrun_analysis:('acc__2 -> (t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__3) -> buffer_overrun_checker:('acc__3 -> (t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__4) -> config_checks_between_markers:('acc__4 -> (t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'acc__5) -> cost:('acc__5 -> (t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__6) -> lab_resource_leaks:('acc__6 -> (t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__7) -> litho_required_props:('acc__7 -> (t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__8) -> pulse:('acc__8 -> (t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__9) -> purity:('acc__9 -> (t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__10) -> quandary:('acc__10 -> (t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__11) -> racerd:('acc__11 -> (t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__12) -> siof:('acc__12 -> (t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__13) -> starvation:('acc__13 -> (t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__14) -> nullsafe:('acc__14 -> (t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__15) -> uninit:('acc__15 -> (t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__16) -> 'acc__16
val make_creator : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'acc__0 -> ('input__ -> Checkers.AnnotationReachabilityDomain.t option) * 'acc__1) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'acc__1 -> ('input__ -> Biabduction.BiabductionSummary.t option) * 'acc__2) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'acc__2 -> ('input__ -> BO.BufferOverrunAnalysisSummary.t option) * 'acc__3) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'acc__3 -> ('input__ -> BO.BufferOverrunCheckerSummary.t option) * 'acc__4) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'acc__4 -> ('input__ -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) * 'acc__5) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'acc__5 -> ('input__ -> Costlib.CostDomain.summary option) * 'acc__6) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'acc__6 -> ('input__ -> Labs.ResourceLeakDomain.summary option) * 'acc__7) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'acc__7 -> ('input__ -> Checkers.LithoDomain.summary option) * 'acc__8) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'acc__8 -> ('input__ -> Pulselib.PulseSummary.t option) * 'acc__9) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'acc__9 -> ('input__ -> Checkers.PurityDomain.summary option) * 'acc__10) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'acc__10 -> ('input__ -> Quandary.QuandarySummary.t option) * 'acc__11) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'acc__11 -> ('input__ -> Concurrency.RacerDDomain.summary option) * 'acc__12) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'acc__12 -> ('input__ -> Checkers.SiofDomain.Summary.t option) * 'acc__13) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'acc__13 -> ('input__ -> Concurrency.StarvationDomain.summary option) * 'acc__14) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'acc__14 -> ('input__ -> Nullsafe.NullsafeSummary.t option) * 'acc__15) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'acc__15 -> ('input__ -> Checkers.UninitDomain.Summary.t option) * 'acc__16) -> 'acc__0 -> ('input__ -> t) * 'acc__16
val create : annot_map:Checkers.AnnotationReachabilityDomain.t option -> biabduction:Biabduction.BiabductionSummary.t option -> buffer_overrun_analysis:BO.BufferOverrunAnalysisSummary.t option -> buffer_overrun_checker:BO.BufferOverrunCheckerSummary.t option -> config_checks_between_markers:Checkers.ConfigChecksBetweenMarkers.Summary.t option -> cost:Costlib.CostDomain.summary option -> lab_resource_leaks:Labs.ResourceLeakDomain.summary option -> litho_required_props:Checkers.LithoDomain.summary option -> pulse:Pulselib.PulseSummary.t option -> purity:Checkers.PurityDomain.summary option -> quandary:Quandary.QuandarySummary.t option -> racerd:Concurrency.RacerDDomain.summary option -> siof:Checkers.SiofDomain.Summary.t option -> starvation:Concurrency.StarvationDomain.summary option -> nullsafe:Nullsafe.NullsafeSummary.t option -> uninit:Checkers.UninitDomain.Summary.t option -> t
val map : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> Checkers.AnnotationReachabilityDomain.t option) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> Biabduction.BiabductionSummary.t option) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunAnalysisSummary.t option) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> BO.BufferOverrunCheckerSummary.t option) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> Costlib.CostDomain.summary option) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> Labs.ResourceLeakDomain.summary option) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> Checkers.LithoDomain.summary option) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> Pulselib.PulseSummary.t option) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> Checkers.PurityDomain.summary option) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> Quandary.QuandarySummary.t option) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> Concurrency.RacerDDomain.summary option) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> Checkers.SiofDomain.Summary.t option) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> Concurrency.StarvationDomain.summary option) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> Nullsafe.NullsafeSummary.t option) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> Checkers.UninitDomain.Summary.t option) -> t
val iter : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> unit) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> unit) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> unit) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> unit) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> unit) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> unit) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> unit) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> unit) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> unit) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> unit) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> unit) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> unit) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> unit) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> unit) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> unit) -> unit
val for_all : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val exists : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> bool) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> bool) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> bool) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> bool) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> bool) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> bool) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> bool) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> bool) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> bool) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> bool) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> bool) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> bool) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> bool) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> bool) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> bool) -> bool
val to_list : annot_map:((t, Checkers.AnnotationReachabilityDomain.t option) Fieldslib.Field.t -> 'elem__) -> biabduction:((t, Biabduction.BiabductionSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_analysis:((t, BO.BufferOverrunAnalysisSummary.t option) Fieldslib.Field.t -> 'elem__) -> buffer_overrun_checker:((t, BO.BufferOverrunCheckerSummary.t option) Fieldslib.Field.t -> 'elem__) -> config_checks_between_markers:((t, Checkers.ConfigChecksBetweenMarkers.Summary.t option) Fieldslib.Field.t -> 'elem__) -> cost:((t, Costlib.CostDomain.summary option) Fieldslib.Field.t -> 'elem__) -> lab_resource_leaks:((t, Labs.ResourceLeakDomain.summary option) Fieldslib.Field.t -> 'elem__) -> litho_required_props:((t, Checkers.LithoDomain.summary option) Fieldslib.Field.t -> 'elem__) -> pulse:((t, Pulselib.PulseSummary.t option) Fieldslib.Field.t -> 'elem__) -> purity:((t, Checkers.PurityDomain.summary option) Fieldslib.Field.t -> 'elem__) -> quandary:((t, Quandary.QuandarySummary.t option) Fieldslib.Field.t -> 'elem__) -> racerd:((t, Concurrency.RacerDDomain.summary option) Fieldslib.Field.t -> 'elem__) -> siof:((t, Checkers.SiofDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> starvation:((t, Concurrency.StarvationDomain.summary option) Fieldslib.Field.t -> 'elem__) -> nullsafe:((t, Nullsafe.NullsafeSummary.t option) Fieldslib.Field.t -> 'elem__) -> uninit:((t, Checkers.UninitDomain.Summary.t option) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
val map_poly : ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user -> 'x0 list
module Direct : sig ... end
Backend__Payloads
include sig ... end
type t
=
{
annot_map : Checkers.AnnotationReachabilityDomain.t option; |
biabduction : Biabduction.BiabductionSummary.t option; |
buffer_overrun_analysis : BO.BufferOverrunAnalysisSummary.t option; |
buffer_overrun_checker : BO.BufferOverrunCheckerSummary.t option; |
class_loads : Checkers.ClassLoadsDomain.summary option; |
cost : Costlib.CostDomain.summary option; |
lab_resource_leaks : Labs.ResourceLeakDomain.summary option; |
litho_required_props : Checkers.LithoDomain.summary option; |
pulse : Pulselib.PulseSummary.t option; |
purity : Checkers.PurityDomain.summary option; |
quandary : Quandary.QuandarySummary.t option; |
racerd : Concurrency.RacerDDomain.summary option; |
siof : Checkers.SiofDomain.Summary.t option; |
starvation : Concurrency.StarvationDomain.summary option; |
nullsafe : Nullsafe.NullsafeSummary.t option; |
uninit : Checkers.UninitDomain.Summary.t option; |
}
analysis results
val uninit : t -> Checkers.UninitDomain.Summary.t option
val nullsafe : t -> Nullsafe.NullsafeSummary.t option
val starvation : t -> Concurrency.StarvationDomain.summary option
val siof : t -> Checkers.SiofDomain.Summary.t option
val racerd : t -> Concurrency.RacerDDomain.summary option
val quandary : t -> Quandary.QuandarySummary.t option
val purity : t -> Checkers.PurityDomain.summary option
val pulse : t -> Pulselib.PulseSummary.t option
val litho_required_props : t -> Checkers.LithoDomain.summary option
val lab_resource_leaks : t -> Labs.ResourceLeakDomain.summary option
val cost : t -> Costlib.CostDomain.summary option
val class_loads : t -> Checkers.ClassLoadsDomain.summary option
val buffer_overrun_checker : t -> BO.BufferOverrunCheckerSummary.t option
val buffer_overrun_analysis : t -> BO.BufferOverrunAnalysisSummary.t option
val biabduction : t -> Biabduction.BiabductionSummary.t option
val annot_map : t -> Checkers.AnnotationReachabilityDomain.t option
module Fields : sig ... end
val pp : IStdlib.Pp.env -> Stdlib.Format.formatter -> t -> unit
val empty : t
Backend__Payloads
include sig ... end
type t
=
{
annot_map : Checkers.AnnotationReachabilityDomain.t option; |
biabduction : Biabduction.BiabductionSummary.t option; |
buffer_overrun_analysis : BO.BufferOverrunAnalysisSummary.t option; |
buffer_overrun_checker : BO.BufferOverrunCheckerSummary.t option; |
config_checks_between_markers : Checkers.ConfigChecksBetweenMarkers.Summary.t option; |
cost : Costlib.CostDomain.summary option; |
lab_resource_leaks : Labs.ResourceLeakDomain.summary option; |
litho_required_props : Checkers.LithoDomain.summary option; |
pulse : Pulselib.PulseSummary.t option; |
purity : Checkers.PurityDomain.summary option; |
quandary : Quandary.QuandarySummary.t option; |
racerd : Concurrency.RacerDDomain.summary option; |
siof : Checkers.SiofDomain.Summary.t option; |
starvation : Concurrency.StarvationDomain.summary option; |
nullsafe : Nullsafe.NullsafeSummary.t option; |
uninit : Checkers.UninitDomain.Summary.t option; |
}
analysis results
val uninit : t -> Checkers.UninitDomain.Summary.t option
val nullsafe : t -> Nullsafe.NullsafeSummary.t option
val starvation : t -> Concurrency.StarvationDomain.summary option
val siof : t -> Checkers.SiofDomain.Summary.t option
val racerd : t -> Concurrency.RacerDDomain.summary option
val quandary : t -> Quandary.QuandarySummary.t option
val purity : t -> Checkers.PurityDomain.summary option
val pulse : t -> Pulselib.PulseSummary.t option
val litho_required_props : t -> Checkers.LithoDomain.summary option
val lab_resource_leaks : t -> Labs.ResourceLeakDomain.summary option
val cost : t -> Costlib.CostDomain.summary option
val config_checks_between_markers : t -> Checkers.ConfigChecksBetweenMarkers.Summary.t option
val buffer_overrun_checker : t -> BO.BufferOverrunCheckerSummary.t option
val buffer_overrun_analysis : t -> BO.BufferOverrunAnalysisSummary.t option
val biabduction : t -> Biabduction.BiabductionSummary.t option
val annot_map : t -> Checkers.AnnotationReachabilityDomain.t option
module Fields : sig ... end
val pp : IStdlib.Pp.env -> Stdlib.Format.formatter -> t -> unit
val empty : t
Biabduction.Attribute
val is_pred : Predicates.atom -> bool
Check whether an atom is used to mark an attribute
val add : IR.Tenv.t -> ?footprint:bool -> ?polarity:bool -> Prop.normal Prop.t -> IR.PredSymb.t -> IR.Exp.t list -> Prop.normal Prop.t
Add an attribute associated to the argument expressions
val add_or_replace : IR.Tenv.t -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t
Replace an attribute associated to the expression
val add_or_replace_check_changed : IR.Tenv.t -> (IR.PredSymb.t -> IR.PredSymb.t -> unit) -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t
Replace an attribute associated to the expression, and call the given function with new and old attributes if they changed.
val get_all : 'a Prop.t -> Predicates.atom list
Get all the attributes of the prop
val get_for_exp : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom list
Get the attributes associated to the expression, if any
val get_objc_null : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option
Get the objc null attribute associated to the expression, if any
val get_observer : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option
Get the observer attribute associated to the expression, if any
val get_resource : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option
Get the resource attribute associated to the expression, if any
val get_undef : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option
Get the undef attribute associated to the expression, if any
val get_wontleak : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option
Get the wontleak attribute associated to the expression, if any
val has_dangling_uninit : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> bool
Test for existence of an Adangling DAuninit attribute associated to the exp
val remove : IR.Tenv.t -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t
Remove an attribute
val remove_for_attr : IR.Tenv.t -> Prop.normal Prop.t -> IR.PredSymb.t -> Prop.normal Prop.t
Remove all attributes for the given attr
val remove_resource : IR.Tenv.t -> IR.PredSymb.res_act_kind -> IR.PredSymb.resource -> Prop.normal Prop.t -> Prop.normal Prop.t
Remove all attributes for the given resource and kind
val map_resource : IR.Tenv.t -> Prop.normal Prop.t -> (IR.Exp.t -> IR.PredSymb.res_action -> IR.PredSymb.res_action) -> Prop.normal Prop.t
Apply f to every resource attribute in the prop
val replace_objc_null : IR.Tenv.t -> Prop.normal Prop.t -> IR.Exp.t -> IR.Exp.t -> Prop.normal Prop.t
replace_objc_null lhs rhs
. If rhs has the objc_null attribute, replace the attribute and set the lhs = 0
val nullify_exp_with_objc_null : IR.Tenv.t -> Prop.normal Prop.t -> IR.Exp.t -> Prop.normal Prop.t
For each Var subexp of the argument with an Aobjc_null attribute, remove the attribute and conjoin an equality to zero.
val mark_vars_as_undefined : IR.Tenv.t -> Prop.normal Prop.t -> ret_exp:IR.Exp.t -> undefined_actuals_by_ref:IR.Exp.t list -> IR.Procname.t -> IR.Annot.Item.t -> IBase.Location.t -> IR.PredSymb.path_pos -> Prop.normal Prop.t
mark Exp.Var's or Exp.Lvar's as undefined
type arith_problem
=
| Div0 of IR.Exp.t |
| UminusUnsigned of IR.Exp.t * IR.Typ.t |
type for arithmetic problems
val find_arithmetic_problem : IR.Tenv.t -> IR.PredSymb.path_pos -> Prop.normal Prop.t -> IR.Exp.t -> arith_problem option * Prop.normal Prop.t
Look for an arithmetic problem in exp
val deallocate_stack_vars : IR.Tenv.t -> Prop.normal Prop.t -> IR.Pvar.t list -> IR.Pvar.t list * Prop.normal Prop.t
Deallocate the stack variables in pvars
, and replace them by normal variables. Return the list of stack variables whose address was still present after deallocation.
Biabduction.Attribute
val is_pred : Predicates.atom -> bool
Check whether an atom is used to mark an attribute
val add : IR.Tenv.t -> ?footprint:bool -> ?polarity:bool -> Prop.normal Prop.t -> IR.PredSymb.t -> IR.Exp.t list -> Prop.normal Prop.t
Add an attribute associated to the argument expressions
val add_or_replace : IR.Tenv.t -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t
Replace an attribute associated to the expression
val add_or_replace_check_changed : IR.Tenv.t -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t
Replace an attribute associated to the expression, and call the given function with new and old attributes if they changed.
val get_all : 'a Prop.t -> Predicates.atom list
Get all the attributes of the prop
val get_for_exp : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom list
Get the attributes associated to the expression, if any
val get_objc_null : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option
Get the objc null attribute associated to the expression, if any
val get_observer : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option
Get the observer attribute associated to the expression, if any
val get_resource : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option
Get the resource attribute associated to the expression, if any
val get_undef : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option
Get the undef attribute associated to the expression, if any
val get_wontleak : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> Predicates.atom option
Get the wontleak attribute associated to the expression, if any
val has_dangling_uninit : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> bool
Test for existence of an Adangling DAuninit attribute associated to the exp
val remove : IR.Tenv.t -> Prop.normal Prop.t -> Predicates.atom -> Prop.normal Prop.t
Remove an attribute
val remove_for_attr : IR.Tenv.t -> Prop.normal Prop.t -> IR.PredSymb.t -> Prop.normal Prop.t
Remove all attributes for the given attr
val remove_resource : IR.Tenv.t -> IR.PredSymb.res_act_kind -> IR.PredSymb.resource -> Prop.normal Prop.t -> Prop.normal Prop.t
Remove all attributes for the given resource and kind
val map_resource : IR.Tenv.t -> Prop.normal Prop.t -> (IR.Exp.t -> IR.PredSymb.res_action -> IR.PredSymb.res_action) -> Prop.normal Prop.t
Apply f to every resource attribute in the prop
val replace_objc_null : IR.Tenv.t -> Prop.normal Prop.t -> IR.Exp.t -> IR.Exp.t -> Prop.normal Prop.t
replace_objc_null lhs rhs
. If rhs has the objc_null attribute, replace the attribute and set the lhs = 0
val nullify_exp_with_objc_null : IR.Tenv.t -> Prop.normal Prop.t -> IR.Exp.t -> Prop.normal Prop.t
For each Var subexp of the argument with an Aobjc_null attribute, remove the attribute and conjoin an equality to zero.
val mark_vars_as_undefined : IR.Tenv.t -> Prop.normal Prop.t -> ret_exp:IR.Exp.t -> undefined_actuals_by_ref:IR.Exp.t list -> IR.Procname.t -> IR.Annot.Item.t -> IBase.Location.t -> IR.PredSymb.path_pos -> Prop.normal Prop.t
mark Exp.Var's or Exp.Lvar's as undefined
type arith_problem
=
| Div0 of IR.Exp.t |
| UminusUnsigned of IR.Exp.t * IR.Typ.t |
type for arithmetic problems
val find_arithmetic_problem : IR.Tenv.t -> IR.PredSymb.path_pos -> Prop.normal Prop.t -> IR.Exp.t -> arith_problem option * Prop.normal Prop.t
Look for an arithmetic problem in exp
val deallocate_stack_vars : IR.Tenv.t -> Prop.normal Prop.t -> IR.Pvar.t list -> IR.Pvar.t list * Prop.normal Prop.t
Deallocate the stack variables in pvars
, and replace them by normal variables. Return the list of stack variables whose address was still present after deallocation.
Biabduction.Errdesc
val vpath_find : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> IR.DecompiledExp.vpath * IR.Typ.t option
find the dexp, if any, where the given value is stored also return the type of the value if found
val hpred_is_open_resource : IR.Tenv.t -> 'a Prop.t -> Predicates.hpred -> IR.PredSymb.resource option
Check whether the hpred is a |-> representing a resource in the Racquire state
val find_ident_assignment : IR.Procdesc.Node.t -> IR.Ident.t -> (IR.Procdesc.Node.t * IR.Exp.t) option
Find a program variable assignment to id in the current node or predecessors.
val exp_rv_dexp : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
describe rvalue e
as a dexp
val explain_allocation_mismatch : IR.PredSymb.res_action -> IR.PredSymb.res_action -> Absint.Localise.error_desc
Produce a description of a mismatch between an allocation function and a deallocation function
val explain_array_access : IR.Procname.t -> IR.Tenv.t -> Absint.Localise.deref_str -> 'a Prop.t -> IBase.Location.t -> Absint.Localise.error_desc
Produce a description of the array access performed in the current instruction, if any.
val explain_class_cast_exception : IR.Tenv.t -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a class cast exception
val explain_deallocate_stack_var : IR.Pvar.t -> IR.PredSymb.res_action -> Absint.Localise.error_desc
Explain a deallocate stack variable error
val explain_deallocate_constant_string : string -> IR.PredSymb.res_action -> Absint.Localise.error_desc
Explain a deallocate constant string error
val explain_dereference : IR.Procname.t -> IR.Tenv.t -> ?use_buckets:bool -> ?is_nullable:bool -> ?is_premature_nil:bool -> Absint.Localise.deref_str -> 'a Prop.t -> IBase.Location.t -> Absint.Localise.error_desc
Produce a description of which expression is dereferenced in the current instruction, if any.
val explain_dereference_as_caller_expression : IR.Procname.t -> IR.Tenv.t -> ?use_buckets:bool -> Absint.Localise.deref_str -> 'a Prop.t -> 'b Prop.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> IR.Pvar.t list -> Absint.Localise.error_desc
return a description explaining value exp
in prop
in terms of a source expression using the formal parameters of the call
val explain_divide_by_zero : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a division by zero
val explain_condition_always_true_false : IR.Tenv.t -> IR.IntLit.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a condition which is always true or false
val explain_stack_variable_address_escape : IBase.Location.t -> IR.Pvar.t -> IR.DecompiledExp.t option -> Absint.Localise.error_desc
explain the escape of a stack variable address from its scope
val explain_unary_minus_applied_to_unsigned_expression : IR.Tenv.t -> IR.Exp.t -> IR.Typ.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain unary minus applied to unsigned expression
val explain_leak : IR.Tenv.t -> Predicates.hpred -> 'a Prop.t -> IR.PredSymb.t option -> string option -> bool * Absint.Localise.error_desc
Produce a description of a leak by looking at the current state. If the current instruction is a variable nullify, blame the variable. If it is an abstraction, blame any variable nullify at the current node. If there is an alloc attribute, print the function call and line number.
val explain_null_test_after_dereference : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> int -> IBase.Location.t -> Absint.Localise.error_desc
explain a test for NULL of a dereferenced pointer
val warning_err : IBase.Location.t -> ('a, Stdlib.Format.formatter, unit) IStdlib.IStd.format -> 'a
warn at the given location
val find_outermost_dereference : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
val access_opt : ?is_nullable:bool -> Predicates.inst -> Absint.Localise.access option
Biabduction.Errdesc
val vpath_find : IR.Tenv.t -> 'a Prop.t -> IR.Exp.t -> IR.DecompiledExp.vpath * IR.Typ.t option
find the dexp, if any, where the given value is stored also return the type of the value if found
val hpred_is_open_resource : IR.Tenv.t -> 'a Prop.t -> Predicates.hpred -> IR.PredSymb.resource option
Check whether the hpred is a |-> representing a resource in the Racquire state
val find_ident_assignment : IR.Procdesc.Node.t -> IR.Ident.t -> (IR.Procdesc.Node.t * IR.Exp.t) option
Find a program variable assignment to id in the current node or predecessors.
val exp_rv_dexp : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
describe rvalue e
as a dexp
val explain_array_access : IR.Procname.t -> IR.Tenv.t -> Absint.Localise.deref_str -> 'a Prop.t -> IBase.Location.t -> Absint.Localise.error_desc
Produce a description of the array access performed in the current instruction, if any.
val explain_class_cast_exception : IR.Tenv.t -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a class cast exception
val explain_deallocate_stack_var : IR.Pvar.t -> IR.PredSymb.res_action -> Absint.Localise.error_desc
Explain a deallocate stack variable error
val explain_deallocate_constant_string : string -> IR.PredSymb.res_action -> Absint.Localise.error_desc
Explain a deallocate constant string error
val explain_dereference : IR.Procname.t -> IR.Tenv.t -> ?use_buckets:bool -> ?is_nullable:bool -> ?is_premature_nil:bool -> Absint.Localise.deref_str -> 'a Prop.t -> IBase.Location.t -> Absint.Localise.error_desc
Produce a description of which expression is dereferenced in the current instruction, if any.
val explain_dereference_as_caller_expression : IR.Procname.t -> IR.Tenv.t -> ?use_buckets:bool -> Absint.Localise.deref_str -> 'a Prop.t -> 'b Prop.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> IR.Pvar.t list -> Absint.Localise.error_desc
return a description explaining value exp
in prop
in terms of a source expression using the formal parameters of the call
val explain_divide_by_zero : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a division by zero
val explain_condition_always_true_false : IR.Tenv.t -> IR.IntLit.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a condition which is always true or false
val explain_unary_minus_applied_to_unsigned_expression : IR.Tenv.t -> IR.Exp.t -> IR.Typ.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain unary minus applied to unsigned expression
val explain_leak : IR.Tenv.t -> Predicates.hpred -> 'a Prop.t -> IR.PredSymb.t option -> string option -> bool * Absint.Localise.error_desc
Produce a description of a leak by looking at the current state. If the current instruction is a variable nullify, blame the variable. If it is an abstraction, blame any variable nullify at the current node. If there is an alloc attribute, print the function call and line number.
val explain_null_test_after_dereference : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> int -> IBase.Location.t -> Absint.Localise.error_desc
explain a test for NULL of a dereferenced pointer
val warning_err : IBase.Location.t -> ('a, Stdlib.Format.formatter, unit) IStdlib.IStd.format -> 'a
warn at the given location
val find_outermost_dereference : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
val access_opt : ?is_nullable:bool -> Predicates.inst -> Absint.Localise.access option
Biabduction.Exceptions
exception
Abduction_case_not_implemented of IBase.Logging.ocaml_pos
exception
Analysis_stops of Absint.Localise.error_desc * IBase.Logging.ocaml_pos option
exception
Array_of_pointsto of IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l1 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l2 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l3 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Bad_footprint of IBase.Logging.ocaml_pos
exception
Biabd_use_after_free of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Cannot_star of IBase.Logging.ocaml_pos
exception
Class_cast_exception of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Condition_always_true_false of Absint.Localise.error_desc * bool * IBase.Logging.ocaml_pos
exception
Custom_error of string * IBase.IssueType.severity * Absint.Localise.error_desc
exception
Dangling_pointer_dereference of bool * Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Deallocate_stack_variable of Absint.Localise.error_desc
exception
Deallocate_static_memory of Absint.Localise.error_desc
exception
Deallocation_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Divide_by_zero of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Field_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Empty_vector_access of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Inherently_dangerous_function of Absint.Localise.error_desc
exception
Internal_error of Absint.Localise.error_desc
exception
Leak of bool * bool * Absint.Localise.error_desc * bool * IR.PredSymb.resource * IBase.Logging.ocaml_pos
exception
Missing_fld of IR.Fieldname.t * IBase.Logging.ocaml_pos
exception
Premature_nil_termination of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Null_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Null_test_after_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Parameter_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Pointer_size_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Precondition_not_found of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Precondition_not_met of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Retain_cycle of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Registered_observer_being_deallocated of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Skip_function of Absint.Localise.error_desc
exception
Skip_pointer_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Stack_variable_address_escape of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Symexec_memory_error of IBase.Logging.ocaml_pos
exception
Unary_minus_applied_to_unsigned_expression of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Wrong_argument_number of IBase.Logging.ocaml_pos
val handle_exception : exn -> bool
Return true if the exception is not serious and should be handled in timeout mode
val print_exception_html : string -> exn -> unit
print a description of the exception to the html output
val recognize_exception : exn -> Absint.IssueToReport.t
Biabduction.Exceptions
exception
Abduction_case_not_implemented of IBase.Logging.ocaml_pos
exception
Analysis_stops of Absint.Localise.error_desc * IBase.Logging.ocaml_pos option
exception
Array_of_pointsto of IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l1 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l2 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l3 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Bad_footprint of IBase.Logging.ocaml_pos
exception
Cannot_star of IBase.Logging.ocaml_pos
exception
Class_cast_exception of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Condition_always_true_false of Absint.Localise.error_desc * bool * IBase.Logging.ocaml_pos
exception
Custom_error of string * IBase.IssueType.severity * Absint.Localise.error_desc
exception
Dangling_pointer_dereference of bool * Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Deallocate_stack_variable of Absint.Localise.error_desc
exception
Deallocate_static_memory of Absint.Localise.error_desc
exception
Divide_by_zero of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Field_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Empty_vector_access of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Inherently_dangerous_function of Absint.Localise.error_desc
exception
Internal_error of Absint.Localise.error_desc
exception
Leak of bool * bool * Absint.Localise.error_desc * bool * IR.PredSymb.resource * IBase.Logging.ocaml_pos
exception
Missing_fld of IR.Fieldname.t * IBase.Logging.ocaml_pos
exception
Premature_nil_termination of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Null_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Null_test_after_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Parameter_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Pointer_size_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Precondition_not_found of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Precondition_not_met of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Retain_cycle of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Registered_observer_being_deallocated of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Skip_function of Absint.Localise.error_desc
exception
Skip_pointer_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Symexec_memory_error of IBase.Logging.ocaml_pos
exception
Unary_minus_applied_to_unsigned_expression of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Wrong_argument_number of IBase.Logging.ocaml_pos
val handle_exception : exn -> bool
Return true if the exception is not serious and should be handled in timeout mode
val print_exception_html : string -> exn -> unit
print a description of the exception to the html output
val recognize_exception : exn -> Absint.IssueToReport.t
Biabduction.Tabulation
val remove_constant_string_class : IR.Tenv.t -> 'a Prop.t -> Prop.normal Prop.t
Remove constant string or class from a prop
val check_attr_dealloc_mismatch : IR.PredSymb.t -> IR.PredSymb.t -> unit
Check if the attribute change is a mismatch between a kind of allocation and a different kind of deallocation
val find_dereference_without_null_check_in_sexp : Predicates.strexp -> (int * IR.PredSymb.path_pos) option
Check whether a sexp contains a dereference without null check, and return the line number and path position
val create_cast_exception : IR.Tenv.t -> IBase.Logging.ocaml_pos -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> exn
raise a cast exception
val prop_is_exn : IR.Procname.t -> 'a Prop.t -> bool
check if a prop is an exception
val prop_get_exn_name : IR.Procname.t -> 'a Prop.t -> IR.Typ.Name.t option
when prop is an exception, return the exception name
val lookup_custom_errors : 'a Prop.t -> string option
search in prop contains an error state
val exe_function_call : BiabductionSummary.t Absint.InterproceduralAnalysis.t -> callee_attributes:IR.ProcAttributes.t -> callee_pname:IR.Procname.t -> callee_summary:BiabductionSummary.t -> ret_id:IR.Ident.t -> IBase.Location.t -> actuals:(IR.Exp.t * IR.Typ.t) list -> Prop.normal Prop.t -> Paths.Path.t -> (Prop.normal Prop.t * Paths.Path.t) list
Execute the function call and return the list of results with return value
Biabduction.Tabulation
val remove_constant_string_class : IR.Tenv.t -> 'a Prop.t -> Prop.normal Prop.t
Remove constant string or class from a prop
val find_dereference_without_null_check_in_sexp : Predicates.strexp -> (int * IR.PredSymb.path_pos) option
Check whether a sexp contains a dereference without null check, and return the line number and path position
val create_cast_exception : IR.Tenv.t -> IBase.Logging.ocaml_pos -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> exn
raise a cast exception
val prop_is_exn : IR.Procname.t -> 'a Prop.t -> bool
check if a prop is an exception
val prop_get_exn_name : IR.Procname.t -> 'a Prop.t -> IR.Typ.Name.t option
when prop is an exception, return the exception name
val lookup_custom_errors : 'a Prop.t -> string option
search in prop contains an error state
val exe_function_call : BiabductionSummary.t Absint.InterproceduralAnalysis.t -> callee_attributes:IR.ProcAttributes.t -> callee_pname:IR.Procname.t -> callee_summary:BiabductionSummary.t -> ret_id:IR.Ident.t -> IBase.Location.t -> actuals:(IR.Exp.t * IR.Typ.t) list -> Prop.normal Prop.t -> Paths.Path.t -> (Prop.normal Prop.t * Paths.Path.t) list
Execute the function call and return the list of results with return value
Biabduction__Attribute
val is_pred : Biabduction.Predicates.atom -> bool
Check whether an atom is used to mark an attribute
val add : IR.Tenv.t -> ?footprint:bool -> ?polarity:bool -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.PredSymb.t -> IR.Exp.t list -> Biabduction.Prop.normal Biabduction.Prop.t
Add an attribute associated to the argument expressions
val add_or_replace : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t
Replace an attribute associated to the expression
val add_or_replace_check_changed : IR.Tenv.t -> (IR.PredSymb.t -> IR.PredSymb.t -> unit) -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t
Replace an attribute associated to the expression, and call the given function with new and old attributes if they changed.
val get_all : 'a Biabduction.Prop.t -> Biabduction.Predicates.atom list
Get all the attributes of the prop
val get_for_exp : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom list
Get the attributes associated to the expression, if any
val get_objc_null : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option
Get the objc null attribute associated to the expression, if any
val get_observer : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option
Get the observer attribute associated to the expression, if any
val get_resource : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option
Get the resource attribute associated to the expression, if any
val get_undef : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option
Get the undef attribute associated to the expression, if any
val get_wontleak : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option
Get the wontleak attribute associated to the expression, if any
val has_dangling_uninit : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> bool
Test for existence of an Adangling DAuninit attribute associated to the exp
val remove : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t
Remove an attribute
val remove_for_attr : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.PredSymb.t -> Biabduction.Prop.normal Biabduction.Prop.t
Remove all attributes for the given attr
val remove_resource : IR.Tenv.t -> IR.PredSymb.res_act_kind -> IR.PredSymb.resource -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t
Remove all attributes for the given resource and kind
val map_resource : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> (IR.Exp.t -> IR.PredSymb.res_action -> IR.PredSymb.res_action) -> Biabduction.Prop.normal Biabduction.Prop.t
Apply f to every resource attribute in the prop
val replace_objc_null : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> IR.Exp.t -> Biabduction.Prop.normal Biabduction.Prop.t
replace_objc_null lhs rhs
. If rhs has the objc_null attribute, replace the attribute and set the lhs = 0
val nullify_exp_with_objc_null : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Prop.normal Biabduction.Prop.t
For each Var subexp of the argument with an Aobjc_null attribute, remove the attribute and conjoin an equality to zero.
val mark_vars_as_undefined : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> ret_exp:IR.Exp.t -> undefined_actuals_by_ref:IR.Exp.t list -> IR.Procname.t -> IR.Annot.Item.t -> IBase.Location.t -> IR.PredSymb.path_pos -> Biabduction.Prop.normal Biabduction.Prop.t
mark Exp.Var's or Exp.Lvar's as undefined
type arith_problem
=
| Div0 of IR.Exp.t |
| UminusUnsigned of IR.Exp.t * IR.Typ.t |
type for arithmetic problems
val find_arithmetic_problem : IR.Tenv.t -> IR.PredSymb.path_pos -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> arith_problem option * Biabduction.Prop.normal Biabduction.Prop.t
Look for an arithmetic problem in exp
val deallocate_stack_vars : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Pvar.t list -> IR.Pvar.t list * Biabduction.Prop.normal Biabduction.Prop.t
Deallocate the stack variables in pvars
, and replace them by normal variables. Return the list of stack variables whose address was still present after deallocation.
val find_equal_formal_path : IR.Tenv.t -> IR.Exp.t -> 'a Biabduction.Prop.t -> IR.Exp.t option
Biabduction__Attribute
val is_pred : Biabduction.Predicates.atom -> bool
Check whether an atom is used to mark an attribute
val add : IR.Tenv.t -> ?footprint:bool -> ?polarity:bool -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.PredSymb.t -> IR.Exp.t list -> Biabduction.Prop.normal Biabduction.Prop.t
Add an attribute associated to the argument expressions
val add_or_replace : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t
Replace an attribute associated to the expression
val add_or_replace_check_changed : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t
Replace an attribute associated to the expression, and call the given function with new and old attributes if they changed.
val get_all : 'a Biabduction.Prop.t -> Biabduction.Predicates.atom list
Get all the attributes of the prop
val get_for_exp : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom list
Get the attributes associated to the expression, if any
val get_objc_null : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option
Get the objc null attribute associated to the expression, if any
val get_observer : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option
Get the observer attribute associated to the expression, if any
val get_resource : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option
Get the resource attribute associated to the expression, if any
val get_undef : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option
Get the undef attribute associated to the expression, if any
val get_wontleak : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Predicates.atom option
Get the wontleak attribute associated to the expression, if any
val has_dangling_uninit : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> bool
Test for existence of an Adangling DAuninit attribute associated to the exp
val remove : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Predicates.atom -> Biabduction.Prop.normal Biabduction.Prop.t
Remove an attribute
val remove_for_attr : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.PredSymb.t -> Biabduction.Prop.normal Biabduction.Prop.t
Remove all attributes for the given attr
val remove_resource : IR.Tenv.t -> IR.PredSymb.res_act_kind -> IR.PredSymb.resource -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t
Remove all attributes for the given resource and kind
val map_resource : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> (IR.Exp.t -> IR.PredSymb.res_action -> IR.PredSymb.res_action) -> Biabduction.Prop.normal Biabduction.Prop.t
Apply f to every resource attribute in the prop
val replace_objc_null : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> IR.Exp.t -> Biabduction.Prop.normal Biabduction.Prop.t
replace_objc_null lhs rhs
. If rhs has the objc_null attribute, replace the attribute and set the lhs = 0
val nullify_exp_with_objc_null : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> Biabduction.Prop.normal Biabduction.Prop.t
For each Var subexp of the argument with an Aobjc_null attribute, remove the attribute and conjoin an equality to zero.
val mark_vars_as_undefined : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> ret_exp:IR.Exp.t -> undefined_actuals_by_ref:IR.Exp.t list -> IR.Procname.t -> IR.Annot.Item.t -> IBase.Location.t -> IR.PredSymb.path_pos -> Biabduction.Prop.normal Biabduction.Prop.t
mark Exp.Var's or Exp.Lvar's as undefined
type arith_problem
=
| Div0 of IR.Exp.t |
| UminusUnsigned of IR.Exp.t * IR.Typ.t |
type for arithmetic problems
val find_arithmetic_problem : IR.Tenv.t -> IR.PredSymb.path_pos -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Exp.t -> arith_problem option * Biabduction.Prop.normal Biabduction.Prop.t
Look for an arithmetic problem in exp
val deallocate_stack_vars : IR.Tenv.t -> Biabduction.Prop.normal Biabduction.Prop.t -> IR.Pvar.t list -> IR.Pvar.t list * Biabduction.Prop.normal Biabduction.Prop.t
Deallocate the stack variables in pvars
, and replace them by normal variables. Return the list of stack variables whose address was still present after deallocation.
val find_equal_formal_path : IR.Tenv.t -> IR.Exp.t -> 'a Biabduction.Prop.t -> IR.Exp.t option
Biabduction__Errdesc
val vpath_find : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> IR.DecompiledExp.vpath * IR.Typ.t option
find the dexp, if any, where the given value is stored also return the type of the value if found
val hpred_is_open_resource : IR.Tenv.t -> 'a Biabduction.Prop.t -> Biabduction.Predicates.hpred -> IR.PredSymb.resource option
Check whether the hpred is a |-> representing a resource in the Racquire state
val find_ident_assignment : IR.Procdesc.Node.t -> IR.Ident.t -> (IR.Procdesc.Node.t * IR.Exp.t) option
Find a program variable assignment to id in the current node or predecessors.
val exp_rv_dexp : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
describe rvalue e
as a dexp
val explain_allocation_mismatch : IR.PredSymb.res_action -> IR.PredSymb.res_action -> Absint.Localise.error_desc
Produce a description of a mismatch between an allocation function and a deallocation function
val explain_array_access : IR.Procname.t -> IR.Tenv.t -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> IBase.Location.t -> Absint.Localise.error_desc
Produce a description of the array access performed in the current instruction, if any.
val explain_class_cast_exception : IR.Tenv.t -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a class cast exception
val explain_deallocate_stack_var : IR.Pvar.t -> IR.PredSymb.res_action -> Absint.Localise.error_desc
Explain a deallocate stack variable error
val explain_deallocate_constant_string : string -> IR.PredSymb.res_action -> Absint.Localise.error_desc
Explain a deallocate constant string error
val explain_dereference : IR.Procname.t -> IR.Tenv.t -> ?use_buckets:bool -> ?is_nullable:bool -> ?is_premature_nil:bool -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> IBase.Location.t -> Absint.Localise.error_desc
Produce a description of which expression is dereferenced in the current instruction, if any.
val explain_dereference_as_caller_expression : IR.Procname.t -> IR.Tenv.t -> ?use_buckets:bool -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> 'b Biabduction.Prop.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> IR.Pvar.t list -> Absint.Localise.error_desc
return a description explaining value exp
in prop
in terms of a source expression using the formal parameters of the call
val explain_divide_by_zero : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a division by zero
val explain_condition_always_true_false : IR.Tenv.t -> IR.IntLit.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a condition which is always true or false
val explain_stack_variable_address_escape : IBase.Location.t -> IR.Pvar.t -> IR.DecompiledExp.t option -> Absint.Localise.error_desc
explain the escape of a stack variable address from its scope
val explain_unary_minus_applied_to_unsigned_expression : IR.Tenv.t -> IR.Exp.t -> IR.Typ.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain unary minus applied to unsigned expression
val explain_leak : IR.Tenv.t -> Biabduction.Predicates.hpred -> 'a Biabduction.Prop.t -> IR.PredSymb.t option -> string option -> bool * Absint.Localise.error_desc
Produce a description of a leak by looking at the current state. If the current instruction is a variable nullify, blame the variable. If it is an abstraction, blame any variable nullify at the current node. If there is an alloc attribute, print the function call and line number.
val explain_null_test_after_dereference : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> int -> IBase.Location.t -> Absint.Localise.error_desc
explain a test for NULL of a dereferenced pointer
val warning_err : IBase.Location.t -> ('a, Stdlib.Format.formatter, unit) IStdlib.IStd.format -> 'a
warn at the given location
val find_outermost_dereference : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
val access_opt : ?is_nullable:bool -> Biabduction.Predicates.inst -> Absint.Localise.access option
Biabduction__Errdesc
val vpath_find : IR.Tenv.t -> 'a Biabduction.Prop.t -> IR.Exp.t -> IR.DecompiledExp.vpath * IR.Typ.t option
find the dexp, if any, where the given value is stored also return the type of the value if found
val hpred_is_open_resource : IR.Tenv.t -> 'a Biabduction.Prop.t -> Biabduction.Predicates.hpred -> IR.PredSymb.resource option
Check whether the hpred is a |-> representing a resource in the Racquire state
val find_ident_assignment : IR.Procdesc.Node.t -> IR.Ident.t -> (IR.Procdesc.Node.t * IR.Exp.t) option
Find a program variable assignment to id in the current node or predecessors.
val exp_rv_dexp : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
describe rvalue e
as a dexp
val explain_array_access : IR.Procname.t -> IR.Tenv.t -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> IBase.Location.t -> Absint.Localise.error_desc
Produce a description of the array access performed in the current instruction, if any.
val explain_class_cast_exception : IR.Tenv.t -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a class cast exception
val explain_deallocate_stack_var : IR.Pvar.t -> IR.PredSymb.res_action -> Absint.Localise.error_desc
Explain a deallocate stack variable error
val explain_deallocate_constant_string : string -> IR.PredSymb.res_action -> Absint.Localise.error_desc
Explain a deallocate constant string error
val explain_dereference : IR.Procname.t -> IR.Tenv.t -> ?use_buckets:bool -> ?is_nullable:bool -> ?is_premature_nil:bool -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> IBase.Location.t -> Absint.Localise.error_desc
Produce a description of which expression is dereferenced in the current instruction, if any.
val explain_dereference_as_caller_expression : IR.Procname.t -> IR.Tenv.t -> ?use_buckets:bool -> Absint.Localise.deref_str -> 'a Biabduction.Prop.t -> 'b Biabduction.Prop.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> IR.Pvar.t list -> Absint.Localise.error_desc
return a description explaining value exp
in prop
in terms of a source expression using the formal parameters of the call
val explain_divide_by_zero : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a division by zero
val explain_condition_always_true_false : IR.Tenv.t -> IR.IntLit.t -> IR.Exp.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain a condition which is always true or false
val explain_unary_minus_applied_to_unsigned_expression : IR.Tenv.t -> IR.Exp.t -> IR.Typ.t -> IR.Procdesc.Node.t -> IBase.Location.t -> Absint.Localise.error_desc
explain unary minus applied to unsigned expression
val explain_leak : IR.Tenv.t -> Biabduction.Predicates.hpred -> 'a Biabduction.Prop.t -> IR.PredSymb.t option -> string option -> bool * Absint.Localise.error_desc
Produce a description of a leak by looking at the current state. If the current instruction is a variable nullify, blame the variable. If it is an abstraction, blame any variable nullify at the current node. If there is an alloc attribute, print the function call and line number.
val explain_null_test_after_dereference : IR.Tenv.t -> IR.Exp.t -> IR.Procdesc.Node.t -> int -> IBase.Location.t -> Absint.Localise.error_desc
explain a test for NULL of a dereferenced pointer
val warning_err : IBase.Location.t -> ('a, Stdlib.Format.formatter, unit) IStdlib.IStd.format -> 'a
warn at the given location
val find_outermost_dereference : IR.Tenv.t -> IR.Procdesc.Node.t -> IR.Exp.t -> IR.DecompiledExp.t option
val access_opt : ?is_nullable:bool -> Biabduction.Predicates.inst -> Absint.Localise.access option
Biabduction__Exceptions
exception
Abduction_case_not_implemented of IBase.Logging.ocaml_pos
exception
Analysis_stops of Absint.Localise.error_desc * IBase.Logging.ocaml_pos option
exception
Array_of_pointsto of IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l1 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l2 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l3 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Bad_footprint of IBase.Logging.ocaml_pos
exception
Biabd_use_after_free of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Cannot_star of IBase.Logging.ocaml_pos
exception
Class_cast_exception of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Condition_always_true_false of Absint.Localise.error_desc * bool * IBase.Logging.ocaml_pos
exception
Custom_error of string * IBase.IssueType.severity * Absint.Localise.error_desc
exception
Dangling_pointer_dereference of bool * Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Deallocate_stack_variable of Absint.Localise.error_desc
exception
Deallocate_static_memory of Absint.Localise.error_desc
exception
Deallocation_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Divide_by_zero of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Field_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Empty_vector_access of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Inherently_dangerous_function of Absint.Localise.error_desc
exception
Internal_error of Absint.Localise.error_desc
exception
Leak of bool * bool * Absint.Localise.error_desc * bool * IR.PredSymb.resource * IBase.Logging.ocaml_pos
exception
Missing_fld of IR.Fieldname.t * IBase.Logging.ocaml_pos
exception
Premature_nil_termination of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Null_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Null_test_after_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Parameter_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Pointer_size_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Precondition_not_found of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Precondition_not_met of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Retain_cycle of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Registered_observer_being_deallocated of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Skip_function of Absint.Localise.error_desc
exception
Skip_pointer_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Stack_variable_address_escape of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Symexec_memory_error of IBase.Logging.ocaml_pos
exception
Unary_minus_applied_to_unsigned_expression of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Wrong_argument_number of IBase.Logging.ocaml_pos
val handle_exception : exn -> bool
Return true if the exception is not serious and should be handled in timeout mode
val print_exception_html : string -> exn -> unit
print a description of the exception to the html output
val recognize_exception : exn -> Absint.IssueToReport.t
Biabduction__Exceptions
exception
Abduction_case_not_implemented of IBase.Logging.ocaml_pos
exception
Analysis_stops of Absint.Localise.error_desc * IBase.Logging.ocaml_pos option
exception
Array_of_pointsto of IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l1 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l2 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Array_out_of_bounds_l3 of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Bad_footprint of IBase.Logging.ocaml_pos
exception
Cannot_star of IBase.Logging.ocaml_pos
exception
Class_cast_exception of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Condition_always_true_false of Absint.Localise.error_desc * bool * IBase.Logging.ocaml_pos
exception
Custom_error of string * IBase.IssueType.severity * Absint.Localise.error_desc
exception
Dangling_pointer_dereference of bool * Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Deallocate_stack_variable of Absint.Localise.error_desc
exception
Deallocate_static_memory of Absint.Localise.error_desc
exception
Divide_by_zero of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Field_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Empty_vector_access of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Inherently_dangerous_function of Absint.Localise.error_desc
exception
Internal_error of Absint.Localise.error_desc
exception
Leak of bool * bool * Absint.Localise.error_desc * bool * IR.PredSymb.resource * IBase.Logging.ocaml_pos
exception
Missing_fld of IR.Fieldname.t * IBase.Logging.ocaml_pos
exception
Premature_nil_termination of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Null_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Null_test_after_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Parameter_not_null_checked of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Pointer_size_mismatch of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Precondition_not_found of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Precondition_not_met of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Retain_cycle of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Registered_observer_being_deallocated of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Skip_function of Absint.Localise.error_desc
exception
Skip_pointer_dereference of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Symexec_memory_error of IBase.Logging.ocaml_pos
exception
Unary_minus_applied_to_unsigned_expression of Absint.Localise.error_desc * IBase.Logging.ocaml_pos
exception
Wrong_argument_number of IBase.Logging.ocaml_pos
val handle_exception : exn -> bool
Return true if the exception is not serious and should be handled in timeout mode
val print_exception_html : string -> exn -> unit
print a description of the exception to the html output
val recognize_exception : exn -> Absint.IssueToReport.t
Biabduction__Tabulation
val remove_constant_string_class : IR.Tenv.t -> 'a Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t
Remove constant string or class from a prop
val check_attr_dealloc_mismatch : IR.PredSymb.t -> IR.PredSymb.t -> unit
Check if the attribute change is a mismatch between a kind of allocation and a different kind of deallocation
val find_dereference_without_null_check_in_sexp : Biabduction.Predicates.strexp -> (int * IR.PredSymb.path_pos) option
Check whether a sexp contains a dereference without null check, and return the line number and path position
val create_cast_exception : IR.Tenv.t -> IBase.Logging.ocaml_pos -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> exn
raise a cast exception
val prop_is_exn : IR.Procname.t -> 'a Biabduction.Prop.t -> bool
check if a prop is an exception
val prop_get_exn_name : IR.Procname.t -> 'a Biabduction.Prop.t -> IR.Typ.Name.t option
when prop is an exception, return the exception name
val lookup_custom_errors : 'a Biabduction.Prop.t -> string option
search in prop contains an error state
val exe_function_call : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> callee_attributes:IR.ProcAttributes.t -> callee_pname:IR.Procname.t -> callee_summary:Biabduction.BiabductionSummary.t -> ret_id:IR.Ident.t -> IBase.Location.t -> actuals:(IR.Exp.t * IR.Typ.t) list -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Paths.Path.t -> (Biabduction.Prop.normal Biabduction.Prop.t * Biabduction.Paths.Path.t) list
Execute the function call and return the list of results with return value
Biabduction__Tabulation
val remove_constant_string_class : IR.Tenv.t -> 'a Biabduction.Prop.t -> Biabduction.Prop.normal Biabduction.Prop.t
Remove constant string or class from a prop
val find_dereference_without_null_check_in_sexp : Biabduction.Predicates.strexp -> (int * IR.PredSymb.path_pos) option
Check whether a sexp contains a dereference without null check, and return the line number and path position
val create_cast_exception : IR.Tenv.t -> IBase.Logging.ocaml_pos -> IR.Procname.t option -> IR.Exp.t -> IR.Exp.t -> IR.Exp.t -> exn
raise a cast exception
val prop_is_exn : IR.Procname.t -> 'a Biabduction.Prop.t -> bool
check if a prop is an exception
val prop_get_exn_name : IR.Procname.t -> 'a Biabduction.Prop.t -> IR.Typ.Name.t option
when prop is an exception, return the exception name
val lookup_custom_errors : 'a Biabduction.Prop.t -> string option
search in prop contains an error state
val exe_function_call : Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> callee_attributes:IR.ProcAttributes.t -> callee_pname:IR.Procname.t -> callee_summary:Biabduction.BiabductionSummary.t -> ret_id:IR.Ident.t -> IBase.Location.t -> actuals:(IR.Exp.t * IR.Typ.t) list -> Biabduction.Prop.normal Biabduction.Prop.t -> Biabduction.Paths.Path.t -> (Biabduction.Prop.normal Biabduction.Prop.t * Biabduction.Paths.Path.t) list
Execute the function call and return the list of results with return value
Checkers.ClassLoads
val analyze_procedure : ClassLoadsDomain.summary Absint.InterproceduralAnalysis.t -> ClassLoadsDomain.summary option
ClassLoadsDomain.Event
type elem_t
= ClassLoad.t
type t
= private
{
elem : elem_t; |
loc : IBase.Location.t; |
trace : Absint.CallSite.t list; |
}
An elem
which occured at loc
, after the chain of steps (usually calls) in trace
.
Both pp
and describe
simply call the same function on the trace element.
include Absint.ExplicitTrace.Element with type Element.t := t
include IStdlib.PrettyPrintable.PrintableOrderedType
include IStdlib.PrettyPrintable.PrintableType with type t := t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val describe : Stdlib.Format.formatter -> t -> unit
Pretty printer used for trace construction; pp
is used for debug output.
val make : elem_t -> IBase.Location.t -> t
val map : f:(elem_t -> elem_t) -> t -> t
val get_loc : t -> IBase.Location.t
Starting location of the trace: this is either loc
if trace==[]
, or the head of trace
.
val make_loc_trace : ?nesting:int -> t -> Absint.Errlog.loc_trace
val with_callsite : t -> Absint.CallSite.t -> t
Push given callsite onto trace, extending the call chain by one.
module FiniteSet : Absint.ExplicitTrace.FiniteSet with type FiniteSet.elt = t
A powerset of traces.
Checkers.ClassLoadsDomain
module ClassLoad : Absint.ExplicitTrace.Element with type Element.t = string
module Event : Absint.ExplicitTrace.TraceElem with type elem_t = ClassLoad.t
include Absint.AbstractDomain.WithBottom
include Absint.AbstractDomain.S
include Absint.AbstractDomain.NoJoin
include IStdlib.PrettyPrintable.PrintableType
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val bottom : t
The bottom value of the domain.
val is_bottom : t -> bool
Return true if this is the bottom value
type summary
= t
val pp_summary : F.formatter -> summary -> unit
val mem_typename : IR.Typ.Name.t -> t -> bool
val add_typename : IBase.Location.t -> t -> IR.Typ.Name.t -> t
val integrate_summary : IR.Procname.t -> IBase.Location.t -> t -> summary -> t
val iter : (Event.t -> unit) -> t -> unit
Checkers.ConfigChecksBetweenMarkers
module Summary : sig ... end
val checker : Summary.t Absint.InterproceduralAnalysis.t -> Summary.t option
Checkers.FbGKInteraction
val is_config_class : IR.Pvar.t -> bool
val is_config_check : IR.Tenv.t -> IR.Procname.t -> bool
val is_marker_start : IR.Tenv.t -> IR.Procname.t -> bool
val is_marker_end : IR.Tenv.t -> IR.Procname.t -> bool
Checkers
module AddressTaken : sig ... end
module AnnotationReachability : sig ... end
module AnnotationReachabilityDomain : sig ... end
module ClassLoads : sig ... end
module ClassLoadsDomain : sig ... end
module Control : sig ... end
module Dominators : sig ... end
module FragmentRetainsViewChecker : sig ... end
module FunctionPointers : sig ... end
module Impurity : sig ... end
module ImpurityDomain : sig ... end
module InefficientKeysetIterator : sig ... end
module LithoDomain : sig ... end
module Liveness : sig ... end
module LoopInvariant : sig ... end
module Loop_control : sig ... end
module NullabilityPreanalysis : sig ... end
module PrintfArgs : sig ... end
module Purity : sig ... end
module PurityDomain : sig ... end
module PurityModels : sig ... end
module ReachingDefs : sig ... end
module RequiredProps : sig ... end
module SelfInBlock : sig ... end
module SimpleChecker : sig ... end
module Siof : sig ... end
module SiofDomain : sig ... end
module SiofTrace : sig ... end
module Uninit : sig ... end
module UninitDomain : sig ... end
Checkers
module AddressTaken : sig ... end
module AnnotationReachability : sig ... end
module AnnotationReachabilityDomain : sig ... end
module ConfigChecksBetweenMarkers : sig ... end
module Control : sig ... end
module Dominators : sig ... end
module FbGKInteraction : sig ... end
module FragmentRetainsViewChecker : sig ... end
module FunctionPointers : sig ... end
module Impurity : sig ... end
module ImpurityDomain : sig ... end
module InefficientKeysetIterator : sig ... end
module LithoDomain : sig ... end
module Liveness : sig ... end
module LoopInvariant : sig ... end
module Loop_control : sig ... end
module NullabilityPreanalysis : sig ... end
module PrintfArgs : sig ... end
module Purity : sig ... end
module PurityDomain : sig ... end
module PurityModels : sig ... end
module ReachingDefs : sig ... end
module RequiredProps : sig ... end
module SelfInBlock : sig ... end
module SimpleChecker : sig ... end
module Siof : sig ... end
module SiofDomain : sig ... end
module SiofTrace : sig ... end
module Uninit : sig ... end
module UninitDomain : sig ... end
Checkers__ClassLoads
val analyze_procedure : Checkers.ClassLoadsDomain.summary Absint.InterproceduralAnalysis.t -> Checkers.ClassLoadsDomain.summary option
Checkers__ClassLoadsDomain.Event
type elem_t
= ClassLoad.t
type t
= private
{
elem : elem_t; |
loc : IBase.Location.t; |
trace : Absint.CallSite.t list; |
}
An elem
which occured at loc
, after the chain of steps (usually calls) in trace
.
Both pp
and describe
simply call the same function on the trace element.
include Absint.ExplicitTrace.Element with type Element.t := t
include IStdlib.PrettyPrintable.PrintableOrderedType
include IStdlib.PrettyPrintable.PrintableType with type t := t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val describe : Stdlib.Format.formatter -> t -> unit
Pretty printer used for trace construction; pp
is used for debug output.
val make : elem_t -> IBase.Location.t -> t
val map : f:(elem_t -> elem_t) -> t -> t
val get_loc : t -> IBase.Location.t
Starting location of the trace: this is either loc
if trace==[]
, or the head of trace
.
val make_loc_trace : ?nesting:int -> t -> Absint.Errlog.loc_trace
val with_callsite : t -> Absint.CallSite.t -> t
Push given callsite onto trace, extending the call chain by one.
module FiniteSet : Absint.ExplicitTrace.FiniteSet with type FiniteSet.elt = t
A powerset of traces.
Checkers__ClassLoadsDomain
module ClassLoad : Absint.ExplicitTrace.Element with type Element.t = string
module Event : Absint.ExplicitTrace.TraceElem with type elem_t = ClassLoad.t
include Absint.AbstractDomain.WithBottom
include Absint.AbstractDomain.S
include Absint.AbstractDomain.NoJoin
include IStdlib.PrettyPrintable.PrintableType
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val bottom : t
The bottom value of the domain.
val is_bottom : t -> bool
Return true if this is the bottom value
type summary
= t
val pp_summary : F.formatter -> summary -> unit
val mem_typename : IR.Typ.Name.t -> t -> bool
val add_typename : IBase.Location.t -> t -> IR.Typ.Name.t -> t
val integrate_summary : IR.Procname.t -> IBase.Location.t -> t -> summary -> t
val iter : (Event.t -> unit) -> t -> unit
Checkers__ConfigChecksBetweenMarkers.Summary
val pp : Stdlib.Format.formatter -> t -> unit
Checkers__ConfigChecksBetweenMarkers
module Summary : sig ... end
val checker : Summary.t Absint.InterproceduralAnalysis.t -> Summary.t option
Checkers__FbGKInteraction
val is_config_class : IR.Pvar.t -> bool
val is_config_check : IR.Tenv.t -> IR.Procname.t -> bool
val is_marker_start : IR.Tenv.t -> IR.Procname.t -> bool
val is_marker_end : IR.Tenv.t -> IR.Procname.t -> bool
ClangFrontend.Ast_expressions
val create_pointer_qual_type : ?quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_reference_qual_type : ?quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_char_star_type : ?quals:IR.Typ.type_quals -> unit -> ATDGenerated.Clang_ast_t.qual_type
val make_next_object_exp : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt * ATDGenerated.Clang_ast_t.stmt
val create_nil : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt
val create_implicit_cast_expr : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.cast_kind -> ATDGenerated.Clang_ast_t.stmt
val make_obj_c_message_expr_info_class : string -> IR.Typ.Name.t -> ATDGenerated.Clang_ast_t.pointer option -> ATDGenerated.Clang_ast_t.obj_c_message_expr_info
val trans_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt
We translate an expression with a conditional x <=> x?1:0
val trans_negation_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt
We translate the logical negation of an expression with a conditional !x <=> x?0:1
ClangFrontend.Ast_expressions
val create_pointer_qual_type : ?quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_reference_qual_type : ?quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_void_type : ATDGenerated.Clang_ast_t.qual_type
val create_char_star_type : ?quals:IR.Typ.type_quals -> unit -> ATDGenerated.Clang_ast_t.qual_type
val make_next_object_exp : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt * ATDGenerated.Clang_ast_t.stmt
val create_nil : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt
val create_implicit_cast_expr : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.cast_kind -> ATDGenerated.Clang_ast_t.stmt
val make_obj_c_message_expr_info_class : string -> IR.Typ.Name.t -> ATDGenerated.Clang_ast_t.pointer option -> ATDGenerated.Clang_ast_t.obj_c_message_expr_info
val trans_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt
We translate an expression with a conditional x <=> x?1:0
val trans_negation_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt
We translate the logical negation of an expression with a conditional !x <=> x?0:1
ClangFrontend.CAddImplicitDeallocImpl
val process : IR.Cfg.t -> IR.Tenv.t -> unit
This models ARC implementation of dealloc, see https://clang.llvm.org/docs/AutomaticReferenceCounting.html#dealloc. Dealloc methods can be added to ObjC classes to free C memory for example, but the deallocation of the ObjC instance variables of the object is done automatically. So here we add this explicitely to Infer: we add calls to dealloc of the ObjC instance variables. Here we assume that every ObjC class has already a dealloc method, because if it doesn't exist we add an empty method in CFrontend_decl.create_and_process_dealloc_objc_impl TODO(T68411500): add calls to dealloc of the superclass.
ClangFrontend.CFrontend_config
val compare_clang_lang : clang_lang -> clang_lang -> int
val equal_clang_lang : clang_lang -> clang_lang -> bool
type translation_unit_context
=
{
lang : clang_lang; |
source_file : IBase.SourceFile.t; |
integer_type_widths : IR.Typ.IntegerWidths.t; |
}
type decl_trans_context
= [
| `DeclTraversal |
| `Translation |
]
val alloc : string
val assert_fail : string
val assert_rtn : string
val biniou_buffer_size : int
val builtin_expect : string
val builtin_memset_chk : string
val builtin_object_size : string
val ckcomponent_cl : string
val ckcomponentcontroller_cl : string
val clang_bin : string -> string
Script to run our own clang. The argument is expected to be either "" or "++".
val class_method : string
val fbAssertWithSignalAndLogFunctionHelper : string
val google_LogMessageFatal : string
val google_MakeCheckOpString : string
val handleFailureInFunction : string
val handleFailureInMethod : string
val id_cl : string
val infer : string
val init : string
val is_kind_of_class : string
val malloc : string
val new_str : string
val next_object : string
val nsproxy_cl : string
val nsobject_cl : string
val nsstring_cl : string
val objc_class : string
val objc_object : string
val return_param : string
val self : string
val std_addressof : IR.QualifiedCppName.Match.quals_matcher
val string_with_utf8_m : string
val this : string
val replace_with_deref_first_arg_attr : string
val modeled_function_attributes : string list
val enum_map : (ATDGenerated.Clang_ast_t.pointer option * IR.Exp.t option) ClangPointers.Map.t IStdlib.IStd.ref
Map from enum constants pointers to their predecesor and their sil value
val global_translation_unit_decls : ATDGenerated.Clang_ast_t.decl list IStdlib.IStd.ref
val sil_types_map : IR.Typ.desc Clang_ast_extend.TypePointerMap.t IStdlib.IStd.ref
Map from type pointers (clang pointers and types created later by frontend) to sil types Populated during frontend execution when new type is found
val procedures_attempted : int IStdlib.IStd.ref
val procedures_failed : int IStdlib.IStd.ref
val get_fresh_block_index : unit -> int
val reset_block_counter : unit -> unit
val reset_global_state : unit -> unit
ClangFrontend.CFrontend_config
val compare_clang_lang : clang_lang -> clang_lang -> int
val equal_clang_lang : clang_lang -> clang_lang -> bool
type translation_unit_context
=
{
lang : clang_lang; |
source_file : IBase.SourceFile.t; |
integer_type_widths : IR.Typ.IntegerWidths.t; |
}
type decl_trans_context
= [
| `DeclTraversal |
| `Translation |
]
val alloc : string
val dealloc : string
val assert_fail : string
val assert_rtn : string
val biniou_buffer_size : int
val builtin_expect : string
val builtin_memset_chk : string
val builtin_object_size : string
val ckcomponent_cl : string
val ckcomponentcontroller_cl : string
val clang_bin : string -> string
Script to run our own clang. The argument is expected to be either "" or "++".
val class_method : string
val fbAssertWithSignalAndLogFunctionHelper : string
val google_LogMessageFatal : string
val google_MakeCheckOpString : string
val handleFailureInFunction : string
val handleFailureInMethod : string
val id_cl : string
val infer : string
val init : string
val is_kind_of_class : string
val malloc : string
val new_str : string
val next_object : string
val nsproxy_cl : string
val nsobject_cl : string
val nsstring_cl : string
val objc_class : string
val objc_object : string
val return_param : string
val self : string
val std_addressof : IR.QualifiedCppName.Match.quals_matcher
val string_with_utf8_m : string
val this : string
val replace_with_deref_first_arg_attr : string
val modeled_function_attributes : string list
val enum_map : (ATDGenerated.Clang_ast_t.pointer option * IR.Exp.t option) ClangPointers.Map.t IStdlib.IStd.ref
Map from enum constants pointers to their predecesor and their sil value
val global_translation_unit_decls : ATDGenerated.Clang_ast_t.decl list IStdlib.IStd.ref
val sil_types_map : IR.Typ.desc Clang_ast_extend.TypePointerMap.t IStdlib.IStd.ref
Map from type pointers (clang pointers and types created later by frontend) to sil types Populated during frontend execution when new type is found
val procedures_attempted : int IStdlib.IStd.ref
val procedures_failed : int IStdlib.IStd.ref
val get_fresh_block_index : unit -> int
val reset_block_counter : unit -> unit
val reset_global_state : unit -> unit
ClangFrontend
module AstToRangeMap : sig ... end
module Ast_expressions : sig ... end
module CArithmetic_trans : sig ... end
module CAst_utils : sig ... end
module CContext : sig ... end
module CEnum_decl : sig ... end
module CField_decl : sig ... end
module CFrontend : sig ... end
module CFrontend_config : sig ... end
module CFrontend_decl : sig ... end
module CFrontend_errors : sig ... end
module CGeneral_utils : sig ... end
module CLocation : sig ... end
module CMethodProperties : sig ... end
module CMethodSignature : sig ... end
module CMethod_trans : sig ... end
module CModule_type : sig ... end
module CScope : sig ... end
module CTrans : sig ... end
module CTrans_models : sig ... end
module CTrans_utils : sig ... end
module CType : sig ... end
module CType_decl : sig ... end
module CType_to_sil_type : sig ... end
module CVar_decl : sig ... end
module Capture : sig ... end
module ClangCommand : sig ... end
module ClangPointers : sig ... end
module ClangQuotes : sig ... end
module ClangWrapper : sig ... end
module Clang_ast_extend : sig ... end
module ObjcCategory_decl : sig ... end
module ObjcInterface_decl : sig ... end
module ObjcMethod_decl : sig ... end
module ObjcProperty_decl : sig ... end
module ObjcProtocol_decl : sig ... end
module ProcessAST : sig ... end
module SwitchCase : sig ... end
ClangFrontend
module AstToRangeMap : sig ... end
module Ast_expressions : sig ... end
module CAddImplicitDeallocImpl : sig ... end
module CArithmetic_trans : sig ... end
module CAst_utils : sig ... end
module CContext : sig ... end
module CEnum_decl : sig ... end
module CField_decl : sig ... end
module CFrontend : sig ... end
module CFrontend_config : sig ... end
module CFrontend_decl : sig ... end
module CFrontend_errors : sig ... end
module CGeneral_utils : sig ... end
module CLocation : sig ... end
module CMethodProperties : sig ... end
module CMethodSignature : sig ... end
module CMethod_trans : sig ... end
module CModule_type : sig ... end
module CScope : sig ... end
module CTrans : sig ... end
module CTrans_models : sig ... end
module CTrans_utils : sig ... end
module CType : sig ... end
module CType_decl : sig ... end
module CType_to_sil_type : sig ... end
module CVar_decl : sig ... end
module Capture : sig ... end
module ClangCommand : sig ... end
module ClangPointers : sig ... end
module ClangQuotes : sig ... end
module ClangWrapper : sig ... end
module Clang_ast_extend : sig ... end
module ObjcCategory_decl : sig ... end
module ObjcInterface_decl : sig ... end
module ObjcMethod_decl : sig ... end
module ObjcProperty_decl : sig ... end
module ObjcProtocol_decl : sig ... end
module ProcessAST : sig ... end
module SwitchCase : sig ... end
ClangFrontend__Ast_expressions
val create_pointer_qual_type : ?quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_reference_qual_type : ?quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_char_star_type : ?quals:IR.Typ.type_quals -> unit -> ATDGenerated.Clang_ast_t.qual_type
val make_next_object_exp : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt * ATDGenerated.Clang_ast_t.stmt
val create_nil : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt
val create_implicit_cast_expr : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.cast_kind -> ATDGenerated.Clang_ast_t.stmt
val make_obj_c_message_expr_info_class : string -> IR.Typ.Name.t -> ATDGenerated.Clang_ast_t.pointer option -> ATDGenerated.Clang_ast_t.obj_c_message_expr_info
val trans_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt
We translate an expression with a conditional x <=> x?1:0
val trans_negation_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt
We translate the logical negation of an expression with a conditional !x <=> x?0:1
ClangFrontend__Ast_expressions
val create_pointer_qual_type : ?quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_reference_qual_type : ?quals:IR.Typ.type_quals -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.qual_type
val create_void_type : ATDGenerated.Clang_ast_t.qual_type
val create_char_star_type : ?quals:IR.Typ.type_quals -> unit -> ATDGenerated.Clang_ast_t.qual_type
val make_next_object_exp : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt -> ATDGenerated.Clang_ast_t.stmt * ATDGenerated.Clang_ast_t.stmt
val create_nil : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt
val create_implicit_cast_expr : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.qual_type -> ATDGenerated.Clang_ast_t.cast_kind -> ATDGenerated.Clang_ast_t.stmt
val make_obj_c_message_expr_info_class : string -> IR.Typ.Name.t -> ATDGenerated.Clang_ast_t.pointer option -> ATDGenerated.Clang_ast_t.obj_c_message_expr_info
val trans_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt
We translate an expression with a conditional x <=> x?1:0
val trans_negation_with_conditional : ATDGenerated.Clang_ast_t.stmt_info -> ATDGenerated.Clang_ast_t.expr_info -> ATDGenerated.Clang_ast_t.stmt list -> ATDGenerated.Clang_ast_t.stmt
We translate the logical negation of an expression with a conditional !x <=> x?0:1
ClangFrontend__CAddImplicitDeallocImpl
val process : IR.Cfg.t -> IR.Tenv.t -> unit
This models ARC implementation of dealloc, see https://clang.llvm.org/docs/AutomaticReferenceCounting.html#dealloc. Dealloc methods can be added to ObjC classes to free C memory for example, but the deallocation of the ObjC instance variables of the object is done automatically. So here we add this explicitely to Infer: we add calls to dealloc of the ObjC instance variables. Here we assume that every ObjC class has already a dealloc method, because if it doesn't exist we add an empty method in CFrontend_decl.create_and_process_dealloc_objc_impl TODO(T68411500): add calls to dealloc of the superclass.
ClangFrontend__CFrontend_config
val compare_clang_lang : clang_lang -> clang_lang -> int
val equal_clang_lang : clang_lang -> clang_lang -> bool
type translation_unit_context
=
{
lang : clang_lang; |
source_file : IBase.SourceFile.t; |
integer_type_widths : IR.Typ.IntegerWidths.t; |
}
type decl_trans_context
= [
| `DeclTraversal |
| `Translation |
]
val alloc : string
val assert_fail : string
val assert_rtn : string
val biniou_buffer_size : int
val builtin_expect : string
val builtin_memset_chk : string
val builtin_object_size : string
val ckcomponent_cl : string
val ckcomponentcontroller_cl : string
val clang_bin : string -> string
Script to run our own clang. The argument is expected to be either "" or "++".
val class_method : string
val fbAssertWithSignalAndLogFunctionHelper : string
val google_LogMessageFatal : string
val google_MakeCheckOpString : string
val handleFailureInFunction : string
val handleFailureInMethod : string
val id_cl : string
val infer : string
val init : string
val is_kind_of_class : string
val malloc : string
val new_str : string
val next_object : string
val nsproxy_cl : string
val nsobject_cl : string
val nsstring_cl : string
val objc_class : string
val objc_object : string
val return_param : string
val self : string
val std_addressof : IR.QualifiedCppName.Match.quals_matcher
val string_with_utf8_m : string
val this : string
val replace_with_deref_first_arg_attr : string
val modeled_function_attributes : string list
val enum_map : (ATDGenerated.Clang_ast_t.pointer option * IR.Exp.t option) ClangFrontend.ClangPointers.Map.t IStdlib.IStd.ref
Map from enum constants pointers to their predecesor and their sil value
val global_translation_unit_decls : ATDGenerated.Clang_ast_t.decl list IStdlib.IStd.ref
val sil_types_map : IR.Typ.desc ClangFrontend.Clang_ast_extend.TypePointerMap.t IStdlib.IStd.ref
Map from type pointers (clang pointers and types created later by frontend) to sil types Populated during frontend execution when new type is found
val procedures_attempted : int IStdlib.IStd.ref
val procedures_failed : int IStdlib.IStd.ref
val get_fresh_block_index : unit -> int
val reset_block_counter : unit -> unit
val reset_global_state : unit -> unit
ClangFrontend__CFrontend_config
val compare_clang_lang : clang_lang -> clang_lang -> int
val equal_clang_lang : clang_lang -> clang_lang -> bool
type translation_unit_context
=
{
lang : clang_lang; |
source_file : IBase.SourceFile.t; |
integer_type_widths : IR.Typ.IntegerWidths.t; |
}
type decl_trans_context
= [
| `DeclTraversal |
| `Translation |
]
val alloc : string
val dealloc : string
val assert_fail : string
val assert_rtn : string
val biniou_buffer_size : int
val builtin_expect : string
val builtin_memset_chk : string
val builtin_object_size : string
val ckcomponent_cl : string
val ckcomponentcontroller_cl : string
val clang_bin : string -> string
Script to run our own clang. The argument is expected to be either "" or "++".
val class_method : string
val fbAssertWithSignalAndLogFunctionHelper : string
val google_LogMessageFatal : string
val google_MakeCheckOpString : string
val handleFailureInFunction : string
val handleFailureInMethod : string
val id_cl : string
val infer : string
val init : string
val is_kind_of_class : string
val malloc : string
val new_str : string
val next_object : string
val nsproxy_cl : string
val nsobject_cl : string
val nsstring_cl : string
val objc_class : string
val objc_object : string
val return_param : string
val self : string
val std_addressof : IR.QualifiedCppName.Match.quals_matcher
val string_with_utf8_m : string
val this : string
val replace_with_deref_first_arg_attr : string
val modeled_function_attributes : string list
val enum_map : (ATDGenerated.Clang_ast_t.pointer option * IR.Exp.t option) ClangFrontend.ClangPointers.Map.t IStdlib.IStd.ref
Map from enum constants pointers to their predecesor and their sil value
val global_translation_unit_decls : ATDGenerated.Clang_ast_t.decl list IStdlib.IStd.ref
val sil_types_map : IR.Typ.desc ClangFrontend.Clang_ast_extend.TypePointerMap.t IStdlib.IStd.ref
Map from type pointers (clang pointers and types created later by frontend) to sil types Populated during frontend execution when new type is found
val procedures_attempted : int IStdlib.IStd.ref
val procedures_failed : int IStdlib.IStd.ref
val get_fresh_block_index : unit -> int
val reset_block_counter : unit -> unit
val reset_global_state : unit -> unit
IBase.Checker
type t
=
type support
=
| NoSupport | checker does not run at all for this language |
| ExperimentalSupport | checker runs but is not expected to give reasonable results |
| Support | checker is expected to give reasonable results |
per-language support for each checker
type cli_flags
=
{
deprecated : string list; | More command-line flags, similar to |
show_in_help : bool; |
}
type kind
=
type config
=
{
id : string; | Unique identifier. Used to generate web URLs for the documentation as well as the flag to enable this option on the command line. |
kind : kind; | |
support : Language.t -> support; | |
short_documentation : string; | used in man pages and as a short intro on the website |
cli_flags : cli_flags option; | If |
enabled_by_default : bool; | |
activates : t list; | list of checkers that get enabled when this checker is enabled |
}
val from_id : string -> t option
IBase.Checker
type t
=
| AnnotationReachability |
| Biabduction |
| BufferOverrunAnalysis |
| BufferOverrunChecker |
| ConfigChecksBetweenMarkers |
| Cost |
| Eradicate |
| FragmentRetainsView |
| ImmutableCast |
| Impurity |
| InefficientKeysetIterator |
| Linters |
| LithoRequiredProps |
| Liveness |
| LoopHoisting |
| NullsafeDeprecated |
| PrintfArgs |
| Pulse |
| Purity |
| Quandary |
| RacerD |
| ResourceLeakLabExercise |
| SIOF |
| SelfInBlock |
| Starvation |
| TOPL |
| Uninit |
type support
=
| NoSupport | checker does not run at all for this language |
| ExperimentalSupport | checker runs but is not expected to give reasonable results |
| Support | checker is expected to give reasonable results |
per-language support for each checker
type cli_flags
=
{
deprecated : string list; | More command-line flags, similar to |
show_in_help : bool; |
}
type kind
=
| UserFacing of {
} | can report issues to users | |||||
| UserFacingDeprecated of {
} | can report issues to users but should probably be deleted from infer | |||||
| Internal | Analysis that only serves other analyses. Do not use to mean experimental! Please still document experimental checkers as they will become non-experimental. | |||||
| Exercise | reserved for the "resource leak" lab exercise |
type config
=
{
id : string; | Unique identifier. Used to generate web URLs for the documentation as well as the flag to enable this option on the command line. |
kind : kind; | |
support : Language.t -> support; | |
short_documentation : string; | used in man pages and as a short intro on the website |
cli_flags : cli_flags option; | If |
enabled_by_default : bool; | |
activates : t list; | list of checkers that get enabled when this checker is enabled |
}
val from_id : string -> t option
IBase.Config
type os_type
=
| Unix |
| Win32 |
| Cygwin |
type build_system
=
| BAnt |
| BBuck |
| BClang |
| BGradle |
| BJava |
| BJavac |
| BMake |
| BMvn |
| BNdk |
| BXcode |
type scheduler
=
| File |
| Restart |
| SyntacticCallGraph |
val build_system_of_exe_name : string -> build_system
val string_of_build_system : build_system -> string
val env_inside_maven : IStdlib.IStd.Unix.env
val anonymous_block_num_sep : string
val anonymous_block_prefix : string
val append_buck_flavors : string list
val assign : string
val biabduction_models_dir : string
val biabduction_models_jar : string
val biabduction_models_src_dir : string
val bin_dir : string
val bound_error_allowed_in_procedure_call : bool
val clang_exe_aliases : string list
val clang_initializer_prefix : string
val clang_inner_destructor_prefix : string
val clang_plugin_path : string
val classpath : string option
val default_failure_name : string
val dotty_frontend_output : string
val etc_dir : string
val fail_on_issue_exit_code : int
val fcp_dir : string
val idempotent_getters : bool
val initial_analysis_time : float
val ivar_attributes : string
val java_lambda_marker_infix : string
marker to recognize methods generated by javalib to eliminate lambdas
val lib_dir : string
val load_average : float option
val max_narrows : int
val max_widens : int
val meet_level : int
val nsnotification_center_checker_backend : bool
val os_type : os_type
val passthroughs : bool
val patterns_modeled_expensive : string * Yojson.Basic.t
val patterns_never_returning_null : string * Yojson.Basic.t
val patterns_skip_implementation : string * Yojson.Basic.t
val patterns_skip_translation : string * Yojson.Basic.t
val pp_version : Stdlib.Format.formatter -> unit -> unit
val property_attributes : string
val relative_path_backtrack : int
val report : bool
val report_condition_always_true_in_clang : bool
val report_custom_error : bool
val report_force_relative_path : bool
val report_nullable_inconsistency : bool
val save_compact_summaries : bool
val smt_output : bool
val source_file_extentions : string list
val sourcepath : string option
val sources : string list
val specs_files_suffix : string
val trace_absarray : bool
val unsafe_unret : string
val incremental_analysis : bool
val weak : string
val whitelisted_cpp_classes : string list
val whitelisted_cpp_methods : string list
val wrappers_dir : string
val abs_struct : int
val abs_val : int
val allow_leak : bool
val annotation_reachability_cxx : Yojson.Basic.t
val annotation_reachability_cxx_sources : Yojson.Basic.t
val annotation_reachability_custom_pairs : Yojson.Basic.t
val anon_args : string list
val array_level : int
val biabduction_models_mode : bool
val bo_debug : int
val bo_field_depth_limit : int option
val bo_service_handler_request : bool
val bootclasspath : string option
val buck : bool
val buck_blacklist : string list
val buck_build_args : string list
val buck_build_args_no_inline : string list
val buck_cache_mode : bool
val buck_merge_all_deps : bool
val buck_mode : BuckMode.t option
val buck_out_gen : string
val buck_targets_blacklist : string list
val call_graph_schedule : bool
val capture : bool
val capture_blacklist : string option
val censor_report : ((bool * Str.regexp) * (bool * Str.regexp) * string) list
val changed_files_index : string option
val check_version : string option
val clang_biniou_file : string option
val clang_compound_literal_init_limit : int
val clang_extra_flags : string list
val clang_blacklisted_flags : string list
val clang_blacklisted_flags_with_arg : string list
val clang_ignore_regex : string option
val clang_isystem_to_override_regex : Str.regexp option
val clang_idirafter_to_override_regex : Str.regexp option
val clang_libcxx_include_to_override_regex : string option
val class_loads_roots : IStdlib.IStd.String.Set.t
val command : ATDGenerated.InferCommand.t
val compute_analytics : bool
val continue_analysis : bool
val continue_capture : bool
val costs_current : string option
val cost_issues_tests : string option
val costs_previous : string option
val cxx : bool
val cxx_scope_guards : Yojson.Basic.t
val deduplicate : bool
val debug_exceptions : bool
val debug_level_analysis : int
val debug_level_capture : int
val debug_level_linters : int
val debug_level_test_determinator : int
val debug_mode : bool
val default_linters : bool
val dependency_mode : bool
val developer_mode : bool
val differential_filter_files : string option
val differential_filter_set : [ `Introduced | `Fixed | `Preexisting ] list
val dotty_cfg_libs : bool
val dump_duplicate_symbols : bool
val eradicate_condition_redundant : bool
val eradicate_field_over_annotated : bool
val eradicate_return_over_annotated : bool
val eradicate_verbose : bool
val fail_on_bug : bool
val fcp_apple_clang : string option
val fcp_syntax_only : bool
val file_renamings : string option
val filter_paths : bool
val filtering : bool
val force_delete_results_dir : bool
val force_integration : build_system option
val from_json_report : string
val from_json_costs_report : string
val frontend_stats : bool
val frontend_tests : bool
val function_pointer_specialization : bool
val generated_classes : string option
val genrule_mode : bool
val get_linter_doc_url : linter_id:string -> string option
val help_checker : Checker.t list
val help_issue_type : IssueType.t list
val hoisting_report_only_expensive : bool
val html : bool
val icfg_dotty_outfile : string option
val infer_is_clang : bool
val infer_is_javac : bool
val implicit_sdk_root : string option
val inclusive_cost : bool
val inferconfig_file : string option
val inferconfig_dir : string option
val iphoneos_target_sdk_version : string option
val iphoneos_target_sdk_version_path_regex : iphoneos_target_sdk_version_path_regex list
val is_checker_enabled : Checker.t -> bool
val issues_tests : string option
val issues_tests_fields : IssuesTestField.t list
val iterations : int
val java_debug_source_file_info : string option
val java_jar_compiler : string option
val java_version : int option
val javac_classes_out : string
val job_id : string option
val jobs : int
val join_cond : int
val keep_going : bool
val linter : string option
val linters_def_file : string list
val linters_def_folder : string list
val linters_developer_mode : bool
val linters_ignore_clang_failures : bool
val linters_validate_syntax_only : bool
val list_checkers : bool
val list_issue_types : bool
val liveness_dangerous_classes : Yojson.Basic.t
val max_nesting : int option
val merge : bool
val method_decls_info : string option
val ml_buckets : [ `MLeak_all | `MLeak_arc | `MLeak_cf | `MLeak_cpp | `MLeak_no_arc | `MLeak_unknown ] list
val modified_lines : string option
val monitor_prop_size : bool
val nelseg : bool
val no_translate_libs : bool
val nullable_annotation : string option
val nullsafe_disable_field_not_initialized_in_nonstrict_classes : bool
val nullsafe_optimistic_third_party_params_in_non_strict : bool
val nullsafe_third_party_signatures : string option
val nullsafe_third_party_location_for_messaging_only : string option
val nullsafe_strict_containers : bool
val oom_threshold : int option
val only_cheap_debug : bool
val only_footprint : bool
val print_active_checkers : bool
val print_builtins : bool
val print_logs : bool
val print_types : bool
val print_using_diff : bool
val procedures : bool
val procedures_attributes : bool
val procedures_definedness : bool
val procedures_filter : string option
val procedures_name : bool
val procedures_source_file : bool
val procedures_summary : bool
val process_clang_ast : bool
val clang_frontend_action_string : string
val profiler_samples : string option
val progress_bar : [ `MultiLine | `Plain | `Quiet ]
val project_root : string
val pudge : bool
val pulse_cut_to_one_path_procedures_pattern : Str.regexp option
val pulse_recency_limit : int
val pulse_intraprocedural_only : bool
val pulse_max_disjuncts : int
val pulse_model_alloc_pattern : Str.regexp option
val pulse_model_release_pattern : Str.regexp option
val pulse_model_transfer_ownership_namespace : (string * string) list
val pulse_model_transfer_ownership : string list
val pulse_widen_threshold : int
val pure_by_default : bool
val quandary_endpoints : Yojson.Basic.t
val quandary_sanitizers : Yojson.Basic.t
val quandary_sinks : Yojson.Basic.t
val quandary_sources : Yojson.Basic.t
val quiet : bool
val racerd_guardedby : bool
val reactive_mode : bool
val reanalyze : bool
val report_blacklist_files_containing : string list
val report_console_limit : int option
val report_current : string option
val report_formatter : [ `No_formatter | `Phabricator_formatter ]
val report_path_regex_blacklist : string list
val report_path_regex_whitelist : string list
val report_previous : string option
val report_suppress_errors : string list
val reports_include_ml_loc : bool
val rest : string list
val results_dir : string
val scheduler : scheduler
val scuba_logging : bool
val scuba_normals : string IStdlib.IStd.String.Map.t
val scuba_tags : string list IStdlib.IStd.String.Map.t
val seconds_per_iteration : float option
val select : int option
val show_buckets : bool
val siof_check_iostreams : bool
val siof_safe_methods : string list
val skip_analysis_in_path : string list
val skip_analysis_in_path_skips_compilation : bool
val skip_duplicated_types : bool
val skip_translation_headers : string list
val sledge_timers : bool
val source_files : bool
val source_files_cfg : bool
val source_files_filter : string option
val source_files_freshly_captured : bool
val source_files_procedure_names : bool
val source_files_type_environment : bool
val source_preview : bool
val sqlite_cache_size : int
val sqlite_page_size : int
val sqlite_lock_timeout : int
val sqlite_vfs : string option
val sqlite_write_daemon : bool
val starvation_skip_analysis : Yojson.Basic.t
val starvation_strict_mode : bool
val starvation_whole_program : bool
val subtype_multirange : bool
val summaries_caches_max_size : int
val symops_per_iteration : int option
val test_determinator : bool
val export_changed_functions : bool
val test_filtering : bool
val testing_mode : bool
val threadsafe_aliases : Yojson.Basic.t
val topl_properties : string list
val trace_error : bool
val trace_events : bool
val trace_join : bool
val trace_ondemand : bool
val trace_rearrange : bool
val trace_topl : bool
val tv_commit : string option
val tv_limit : int
val tv_limit_filtered : int
val type_size : bool
val uninit_interproc : bool
val unsafe_malloc : bool
val worklist_mode : int
val write_dotty : bool
val write_html : bool
val write_html_whitelist_regex : string list
val write_website : string option
val xcode_developer_dir : string option
val xcpretty : bool
val dynamic_dispatch : bool
val toplevel_results_dir : string
In some integrations, eg Buck, infer subprocesses started by the build system (started by the toplevel infer process) will have their own results directory; this points to the results directory of the toplevel infer process, which can be useful for, eg, storing debug info. In other cases this is equal to results_dir
.
val is_in_custom_symbols : string -> string -> bool
Does named symbol match any prefix in the named custom symbol list?
val execution_id : IStdlib.IStd.Int64.t
val clang_compilation_dbs : [ `Escaped of string | `Raw of string ] list IStdlib.IStd.ref
IBase.Config
type os_type
=
| Unix |
| Win32 |
| Cygwin |
type build_system
=
| BAnt |
| BBuck |
| BClang |
| BGradle |
| BJava |
| BJavac |
| BMake |
| BMvn |
| BNdk |
| BXcode |
type scheduler
=
| File |
| Restart |
| SyntacticCallGraph |
val build_system_of_exe_name : string -> build_system
val string_of_build_system : build_system -> string
val env_inside_maven : IStdlib.IStd.Unix.env
val anonymous_block_num_sep : string
val anonymous_block_prefix : string
val append_buck_flavors : string list
val assign : string
val biabduction_models_dir : string
val biabduction_models_jar : string
val biabduction_models_src_dir : string
val bin_dir : string
val bound_error_allowed_in_procedure_call : bool
val clang_exe_aliases : string list
val clang_initializer_prefix : string
val clang_inner_destructor_prefix : string
val clang_plugin_path : string
val classpath : string option
val default_failure_name : string
val dotty_frontend_output : string
val etc_dir : string
val fail_on_issue_exit_code : int
val fcp_dir : string
val idempotent_getters : bool
val initial_analysis_time : float
val ivar_attributes : string
val java_lambda_marker_infix : string
marker to recognize methods generated by javalib to eliminate lambdas
val lib_dir : string
val load_average : float option
val max_narrows : int
val max_widens : int
val meet_level : int
val nsnotification_center_checker_backend : bool
val os_type : os_type
val passthroughs : bool
val patterns_modeled_expensive : string * Yojson.Basic.t
val patterns_never_returning_null : string * Yojson.Basic.t
val patterns_skip_implementation : string * Yojson.Basic.t
val patterns_skip_translation : string * Yojson.Basic.t
val pp_version : Stdlib.Format.formatter -> unit -> unit
val property_attributes : string
val relative_path_backtrack : int
val report : bool
val report_condition_always_true_in_clang : bool
val report_custom_error : bool
val report_force_relative_path : bool
val report_nullable_inconsistency : bool
val save_compact_summaries : bool
val smt_output : bool
val source_file_extentions : string list
val sourcepath : string option
val sources : string list
val specs_files_suffix : string
val trace_absarray : bool
val unsafe_unret : string
val incremental_analysis : bool
val weak : string
val whitelisted_cpp_classes : string list
val whitelisted_cpp_methods : string list
val wrappers_dir : string
val abs_struct : int
val abs_val : int
val allow_leak : bool
val annotation_reachability_cxx : Yojson.Basic.t
val annotation_reachability_cxx_sources : Yojson.Basic.t
val annotation_reachability_custom_pairs : Yojson.Basic.t
val anon_args : string list
val array_level : int
val biabduction_models_mode : bool
val bo_debug : int
val bo_field_depth_limit : int option
val bo_service_handler_request : bool
val bootclasspath : string option
val buck : bool
val buck_blacklist : string list
val buck_build_args : string list
val buck_build_args_no_inline : string list
val buck_cache_mode : bool
val buck_merge_all_deps : bool
val buck_mode : BuckMode.t option
val buck_out_gen : string
val buck_targets_blacklist : string list
val call_graph_schedule : bool
val capture : bool
val capture_blacklist : string option
val censor_report : ((bool * Str.regexp) * (bool * Str.regexp) * string) list
val changed_files_index : string option
val check_version : string option
val clang_biniou_file : string option
val clang_compound_literal_init_limit : int
val clang_extra_flags : string list
val clang_blacklisted_flags : string list
val clang_blacklisted_flags_with_arg : string list
val clang_ignore_regex : string option
val clang_isystem_to_override_regex : Str.regexp option
val clang_idirafter_to_override_regex : Str.regexp option
val clang_libcxx_include_to_override_regex : string option
val command : ATDGenerated.InferCommand.t
val compute_analytics : bool
val continue_analysis : bool
val continue_capture : bool
val costs_current : string option
val cost_issues_tests : string option
val costs_previous : string option
val cxx : bool
val cxx_scope_guards : Yojson.Basic.t
val deduplicate : bool
val debug_exceptions : bool
val debug_level_analysis : int
val debug_level_capture : int
val debug_level_linters : int
val debug_level_test_determinator : int
val debug_mode : bool
val default_linters : bool
val dependency_mode : bool
val developer_mode : bool
val differential_filter_files : string option
val differential_filter_set : [ `Introduced | `Fixed | `Preexisting ] list
val dotty_cfg_libs : bool
val dump_duplicate_symbols : bool
val eradicate_condition_redundant : bool
val eradicate_field_over_annotated : bool
val eradicate_return_over_annotated : bool
val eradicate_verbose : bool
val fail_on_bug : bool
val fcp_apple_clang : string option
val fcp_syntax_only : bool
val file_renamings : string option
val filter_paths : bool
val filtering : bool
val force_delete_results_dir : bool
val force_integration : build_system option
val from_json_report : string
val from_json_costs_report : string
val frontend_stats : bool
val frontend_tests : bool
val function_pointer_specialization : bool
val generated_classes : string option
val genrule_mode : bool
val get_linter_doc_url : linter_id:string -> string option
val help_checker : Checker.t list
val help_issue_type : IssueType.t list
val hoisting_report_only_expensive : bool
val html : bool
val icfg_dotty_outfile : string option
val infer_is_clang : bool
val infer_is_javac : bool
val implicit_sdk_root : string option
val inclusive_cost : bool
val inferconfig_file : string option
val inferconfig_dir : string option
val iphoneos_target_sdk_version : string option
val iphoneos_target_sdk_version_path_regex : iphoneos_target_sdk_version_path_regex list
val is_checker_enabled : Checker.t -> bool
val issues_tests : string option
val issues_tests_fields : IssuesTestField.t list
val iterations : int
val java_debug_source_file_info : string option
val java_jar_compiler : string option
val java_version : int option
val javac_classes_out : string
val job_id : string option
val jobs : int
val join_cond : int
val keep_going : bool
val linter : string option
val linters_def_file : string list
val linters_def_folder : string list
val linters_developer_mode : bool
val linters_ignore_clang_failures : bool
val linters_validate_syntax_only : bool
val list_checkers : bool
val list_issue_types : bool
val liveness_dangerous_classes : Yojson.Basic.t
val max_nesting : int option
val merge : bool
val method_decls_info : string option
val ml_buckets : [ `MLeak_all | `MLeak_arc | `MLeak_cf | `MLeak_cpp | `MLeak_no_arc | `MLeak_unknown ] list
val modified_lines : string option
val monitor_prop_size : bool
val nelseg : bool
val no_translate_libs : bool
val nullable_annotation : string option
val nullsafe_disable_field_not_initialized_in_nonstrict_classes : bool
val nullsafe_optimistic_third_party_params_in_non_strict : bool
val nullsafe_third_party_signatures : string option
val nullsafe_third_party_location_for_messaging_only : string option
val nullsafe_strict_containers : bool
val oom_threshold : int option
val only_cheap_debug : bool
val only_footprint : bool
val pmd_xml : bool
val print_active_checkers : bool
val print_builtins : bool
val print_logs : bool
val print_types : bool
val print_using_diff : bool
val procedures : bool
val procedures_attributes : bool
val procedures_definedness : bool
val procedures_filter : string option
val procedures_name : bool
val procedures_source_file : bool
val procedures_summary : bool
val process_clang_ast : bool
val clang_frontend_action_string : string
val profiler_samples : string option
val progress_bar : [ `MultiLine | `Plain | `Quiet ]
val project_root : string
val pudge : bool
val pulse_cut_to_one_path_procedures_pattern : Str.regexp option
val pulse_recency_limit : int
val pulse_intraprocedural_only : bool
val pulse_max_disjuncts : int
val pulse_model_abort : string list
val pulse_model_alloc_pattern : Str.regexp option
val pulse_model_release_pattern : Str.regexp option
val pulse_model_transfer_ownership_namespace : (string * string) list
val pulse_model_transfer_ownership : string list
val pulse_widen_threshold : int
val pure_by_default : bool
val quandary_endpoints : Yojson.Basic.t
val quandary_sanitizers : Yojson.Basic.t
val quandary_sinks : Yojson.Basic.t
val quandary_sources : Yojson.Basic.t
val quiet : bool
val racerd_guardedby : bool
val reactive_mode : bool
val reanalyze : bool
val report_blacklist_files_containing : string list
val report_console_limit : int option
val report_current : string option
val report_formatter : [ `No_formatter | `Phabricator_formatter ]
val report_path_regex_blacklist : string list
val report_path_regex_whitelist : string list
val report_previous : string option
val report_suppress_errors : string list
val reports_include_ml_loc : bool
val rest : string list
val results_dir : string
val scheduler : scheduler
val scuba_logging : bool
val scuba_normals : string IStdlib.IStd.String.Map.t
val scuba_tags : string list IStdlib.IStd.String.Map.t
val seconds_per_iteration : float option
val select : int option
val show_buckets : bool
val siof_check_iostreams : bool
val siof_safe_methods : string list
val skip_analysis_in_path : string list
val skip_analysis_in_path_skips_compilation : bool
val skip_duplicated_types : bool
val skip_translation_headers : string list
val sledge_timers : bool
val source_files : bool
val source_files_cfg : bool
val source_files_filter : string option
val source_files_freshly_captured : bool
val source_files_procedure_names : bool
val source_files_type_environment : bool
val source_preview : bool
val sqlite_cache_size : int
val sqlite_page_size : int
val sqlite_lock_timeout : int
val sqlite_vfs : string option
val sqlite_write_daemon : bool
val starvation_skip_analysis : Yojson.Basic.t
val starvation_strict_mode : bool
val starvation_whole_program : bool
val subtype_multirange : bool
val summaries_caches_max_size : int
val symops_per_iteration : int option
val test_determinator : bool
val export_changed_functions : bool
val test_filtering : bool
val testing_mode : bool
val threadsafe_aliases : Yojson.Basic.t
val topl_properties : string list
val trace_error : bool
val trace_events : bool
val trace_join : bool
val trace_ondemand : bool
val trace_rearrange : bool
val trace_topl : bool
val tv_commit : string option
val tv_limit : int
val tv_limit_filtered : int
val type_size : bool
val uninit_interproc : bool
val unsafe_malloc : bool
val worklist_mode : int
val write_dotty : bool
val write_html : bool
val write_html_whitelist_regex : string list
val write_website : string option
val xcode_developer_dir : string option
val xcpretty : bool
val dynamic_dispatch : bool
val toplevel_results_dir : string
In some integrations, eg Buck, infer subprocesses started by the build system (started by the toplevel infer process) will have their own results directory; this points to the results directory of the toplevel infer process, which can be useful for, eg, storing debug info. In other cases this is equal to results_dir
.
val is_in_custom_symbols : string -> string -> bool
Does named symbol match any prefix in the named custom symbol list?
val execution_id : IStdlib.IStd.Int64.t
val clang_compilation_dbs : [ `Escaped of string | `Raw of string ] list IStdlib.IStd.ref
IBase.IssueType
type visibility
=
| User | always add to error log |
| Developer | only add to error log in some debug modes |
| Silent | never add to error log |
visibility of the issue type
val compare_visibility : visibility -> visibility -> int
val equal_visibility : visibility -> visibility -> bool
val string_of_visibility : visibility -> string
val string_of_severity : severity -> string
type t
= private
{
unique_id : string; | |
checker : Checker.t; | |
visibility : visibility; | |
user_documentation : string option; | |
mutable default_severity : severity; | used for documentation but can be overriden at report time |
mutable enabled : bool; | |
mutable hum : string; | |
mutable doc_url : string option; | |
mutable linters_def_file : string option; |
}
val pp : Stdlib.Format.formatter -> t -> unit
pretty print a localised string
val find_from_string : id:string -> t option
return the issue type if it was previously registered
val register_from_string : ?enabled:bool -> ?hum:string -> ?doc_url:string -> ?linters_def_file:string -> id:string -> ?visibility:visibility -> ?user_documentation:string -> severity -> Checker.t -> t
Create a new issue and register it in the list of all issues. NOTE: if the issue with the same string id is already registered, overrides `hum`, `doc_url`, and `linters_def_file`, but DOES NOT override `enabled`. This trick allows to deal with disabling/enabling dynamic AL issues from the config, when we don't know all params yet. Thus, the human-readable description can be updated when we encounter the definition of the issue type, eg in AL.
val checker_can_report : Checker.t -> t -> bool
Whether the issue was registered as coming from the given checker. Important to call this before reporting to keep documentation accurate.
val set_enabled : t -> bool -> unit
val abduction_case_not_implemented : t
val array_of_pointsto : t
val array_out_of_bounds_l1 : t
val array_out_of_bounds_l2 : t
val array_out_of_bounds_l3 : t
val assert_failure : t
val bad_footprint : t
val biabduction_analysis_stops : t
val biabd_condition_always_false : t
val biabd_condition_always_true : t
val biabd_registered_observer_being_deallocated : t
val biabd_stack_variable_address_escape : t
val biabd_use_after_free : t
val buffer_overrun_l1 : t
val buffer_overrun_l2 : t
val buffer_overrun_l3 : t
val buffer_overrun_l4 : t
val buffer_overrun_l5 : t
val buffer_overrun_r2 : t
val buffer_overrun_s2 : t
val buffer_overrun_t1 : t
Tainted values is used in array accesses, causing buffer over/underruns
val buffer_overrun_u5 : t
val cannot_star : t
val captured_strong_self : t
val checkers_allocates_memory : t
Warning name when a performance critical method directly or indirectly calls a method allocating memory
val checkers_annotation_reachability_error : t
val checkers_calls_expensive_method : t
Warning name when a performance critical method directly or indirectly calls a method annotatd as expensive
val checkers_expensive_overrides_unexpensive : t
Warning name for the subtyping rule: method not annotated as expensive cannot be overridden by a method annotated as expensive
val checkers_fragment_retain_view : t
val checkers_immutable_cast : t
val checkers_printf_args : t
val class_cast_exception : t
val class_load : t
val complexity_increase : kind:CostKind.t -> is_on_ui_thread:bool -> t
val component_factory_function : t
val component_file_cyclomatic_complexity : t
val component_file_line_count : t
val component_initializer_with_side_effects : t
val component_with_multiple_factory_methods : t
val component_with_unconventional_superclass : t
val condition_always_false : t
val condition_always_true : t
val constant_address_dereference : t
val create_intent_from_uri : t
val cross_site_scripting : t
val dangling_pointer_dereference : t
val dangling_pointer_dereference_maybe : t
val dead_store : t
val deadlock : t
val deallocate_stack_variable : t
val deallocate_static_memory : t
val deallocation_mismatch : t
val divide_by_zero : t
val do_not_report : t
an issue type that should never be reported
val empty_vector_access : t
val eradicate_condition_redundant : t
val eradicate_field_not_initialized : t
val eradicate_field_not_nullable : t
val eradicate_field_over_annotated : t
val eradicate_inconsistent_subclass_parameter_annotation : t
val eradicate_inconsistent_subclass_return_annotation : t
val eradicate_redundant_nested_class_annotation : t
val eradicate_bad_nested_class_annotation : t
val eradicate_nullable_dereference : t
val eradicate_parameter_not_nullable : t
val eradicate_return_not_nullable : t
val eradicate_return_over_annotated : t
val eradicate_unvetted_third_party_in_nullsafe : t
val eradicate_unchecked_usage_in_nullsafe : t
val eradicate_meta_class_can_be_nullsafe : t
val eradicate_meta_class_needs_improvement : t
val eradicate_meta_class_is_nullsafe : t
val exposed_insecure_intent_handling : t
val failure_exe : t
val field_not_null_checked : t
val guardedby_violation_racerd : t
val impure_function : t
val inefficient_keyset_iterator : t
val inferbo_alloc_is_big : t
val inferbo_alloc_is_negative : t
val inferbo_alloc_is_zero : t
val inferbo_alloc_may_be_big : t
val inferbo_alloc_may_be_negative : t
val inferbo_alloc_may_be_tainted : t
val infinite_cost_call : kind:CostKind.t -> t
val inherently_dangerous_function : t
val insecure_intent_handling : t
val integer_overflow_l1 : t
val integer_overflow_l2 : t
val integer_overflow_l5 : t
val integer_overflow_r2 : t
val integer_overflow_u5 : t
val interface_not_thread_safe : t
val internal_error : t
val invariant_call : t
val javascript_injection : t
val lab_resource_leak : t
val leak_after_array_abstraction : t
val leak_in_footprint : t
val leak_unknown_origin : t
val lockless_violation : t
val lock_consistency_violation : t
val logging_private_data : t
val expensive_loop_invariant_call : t
val memory_leak : t
val missing_fld : t
val missing_required_prop : t
val mixed_self_weakself : t
val multiple_weakself : t
val mutable_local_variable_in_component_file : t
val null_dereference : t
val null_test_after_dereference : t
val nullptr_dereference : t
val parameter_not_null_checked : t
val pointer_size_mismatch : t
val precondition_not_found : t
val precondition_not_met : t
val premature_nil_termination : t
val pulse_memory_leak : t
val pure_function : t
val quandary_taint_error : t
val resource_leak : t
val retain_cycle : t
val skip_function : t
val skip_pointer_dereference : t
val shell_injection : t
val shell_injection_risk : t
val sql_injection : t
val sql_injection_risk : t
val stack_variable_address_escape : t
val starvation : t
val static_initialization_order_fiasco : t
val strict_mode_violation : t
val strong_self_not_checked : t
val symexec_memory_error : t
val thread_safety_violation : t
val topl_error : t
val unary_minus_applied_to_unsigned_expression : t
val uninitialized_value : t
val unreachable_code_after : t
val use_after_delete : t
val use_after_free : t
val use_after_lifetime : t
val untrusted_buffer_access : t
val untrusted_deserialization : t
val untrusted_deserialization_risk : t
val untrusted_file : t
val untrusted_file_risk : t
val untrusted_heap_allocation : t
val untrusted_intent_creation : t
val untrusted_url_risk : t
val untrusted_environment_change_risk : t
val untrusted_variable_length_array : t
val user_controlled_sql_risk : t
val vector_invalidation : t
val weak_self_in_noescape_block : t
val wrong_argument_number : t
val unreachable_cost_call : kind:CostKind.t -> t
IBase.IssueType
type visibility
=
| User | always add to error log |
| Developer | only add to error log in some debug modes |
| Silent | never add to error log |
visibility of the issue type
val compare_visibility : visibility -> visibility -> int
val equal_visibility : visibility -> visibility -> bool
val string_of_visibility : visibility -> string
val string_of_severity : severity -> string
type t
= private
{
unique_id : string; | |
checker : Checker.t; | |
visibility : visibility; | |
user_documentation : string option; | |
mutable default_severity : severity; | used for documentation but can be overriden at report time |
mutable enabled : bool; | |
mutable hum : string; | |
mutable doc_url : string option; | |
mutable linters_def_file : string option; |
}
val pp : Stdlib.Format.formatter -> t -> unit
pretty print a localised string
val find_from_string : id:string -> t option
return the issue type if it was previously registered
val register_from_string : ?enabled:bool -> ?is_cost_issue:bool -> ?hum:string -> ?doc_url:string -> ?linters_def_file:string -> id:string -> ?visibility:visibility -> ?user_documentation:string -> severity -> Checker.t -> t
Create a new issue and register it in the list of all issues. NOTE: if the issue with the same string id is already registered, overrides `hum`, `doc_url`, and `linters_def_file`, but DOES NOT override `enabled`. This trick allows to deal with disabling/enabling dynamic AL issues from the config, when we don't know all params yet. Thus, the human-readable description can be updated when we encounter the definition of the issue type, eg in AL.
val checker_can_report : Checker.t -> t -> bool
Whether the issue was registered as coming from the given checker. Important to call this before reporting to keep documentation accurate.
val set_enabled : t -> bool -> unit
val abduction_case_not_implemented : t
val array_of_pointsto : t
val array_out_of_bounds_l1 : t
val array_out_of_bounds_l2 : t
val array_out_of_bounds_l3 : t
val assert_failure : t
val bad_footprint : t
val biabduction_analysis_stops : t
val biabd_condition_always_false : t
val biabd_condition_always_true : t
val buffer_overrun_l1 : t
val buffer_overrun_l2 : t
val buffer_overrun_l3 : t
val buffer_overrun_l4 : t
val buffer_overrun_l5 : t
val buffer_overrun_r2 : t
val buffer_overrun_s2 : t
val buffer_overrun_t1 : t
Tainted values is used in array accesses, causing buffer over/underruns
val buffer_overrun_u5 : t
val cannot_star : t
val captured_strong_self : t
val checkers_allocates_memory : t
Warning name when a performance critical method directly or indirectly calls a method allocating memory
val checkers_annotation_reachability_error : t
val checkers_calls_expensive_method : t
Warning name when a performance critical method directly or indirectly calls a method annotatd as expensive
val checkers_expensive_overrides_unexpensive : t
Warning name for the subtyping rule: method not annotated as expensive cannot be overridden by a method annotated as expensive
val checkers_fragment_retain_view : t
val checkers_immutable_cast : t
val checkers_printf_args : t
val class_cast_exception : t
val complexity_increase : kind:CostKind.t -> is_on_ui_thread:bool -> t
val component_factory_function : t
val component_file_cyclomatic_complexity : t
val component_file_line_count : t
val component_initializer_with_side_effects : t
val component_with_multiple_factory_methods : t
val component_with_unconventional_superclass : t
val condition_always_false : t
val condition_always_true : t
val config_checks_between_markers : t
val constant_address_dereference : t
val create_intent_from_uri : t
val cross_site_scripting : t
val dangling_pointer_dereference : t
val dangling_pointer_dereference_maybe : t
val dead_store : t
val deadlock : t
val deallocate_stack_variable : t
val deallocate_static_memory : t
val divide_by_zero : t
val do_not_report : t
an issue type that should never be reported
val empty_vector_access : t
val eradicate_condition_redundant : t
val eradicate_field_not_initialized : t
val eradicate_field_not_nullable : t
val eradicate_field_over_annotated : t
val eradicate_inconsistent_subclass_parameter_annotation : t
val eradicate_inconsistent_subclass_return_annotation : t
val eradicate_redundant_nested_class_annotation : t
val eradicate_bad_nested_class_annotation : t
val eradicate_nullable_dereference : t
val eradicate_parameter_not_nullable : t
val eradicate_return_not_nullable : t
val eradicate_return_over_annotated : t
val eradicate_unvetted_third_party_in_nullsafe : t
val eradicate_unchecked_usage_in_nullsafe : t
val eradicate_meta_class_can_be_nullsafe : t
val eradicate_meta_class_needs_improvement : t
val eradicate_meta_class_is_nullsafe : t
val exposed_insecure_intent_handling : t
val failure_exe : t
val field_not_null_checked : t
val guardedby_violation_racerd : t
val impure_function : t
val inefficient_keyset_iterator : t
val inferbo_alloc_is_big : t
val inferbo_alloc_is_negative : t
val inferbo_alloc_is_zero : t
val inferbo_alloc_may_be_big : t
val inferbo_alloc_may_be_negative : t
val inferbo_alloc_may_be_tainted : t
val infinite_cost_call : kind:CostKind.t -> t
val inherently_dangerous_function : t
val insecure_intent_handling : t
val integer_overflow_l1 : t
val integer_overflow_l2 : t
val integer_overflow_l5 : t
val integer_overflow_r2 : t
val integer_overflow_u5 : t
val interface_not_thread_safe : t
val internal_error : t
val invariant_call : t
val javascript_injection : t
val lab_resource_leak : t
val leak_after_array_abstraction : t
val leak_in_footprint : t
val leak_unknown_origin : t
val lockless_violation : t
val lock_consistency_violation : t
val logging_private_data : t
val expensive_loop_invariant_call : t
val memory_leak : t
val missing_fld : t
val missing_required_prop : t
val mixed_self_weakself : t
val multiple_weakself : t
val mutable_local_variable_in_component_file : t
val null_dereference : t
val null_test_after_dereference : t
val nullptr_dereference : t
val parameter_not_null_checked : t
val pointer_size_mismatch : t
val precondition_not_found : t
val precondition_not_met : t
val premature_nil_termination : t
val pulse_memory_leak : t
val pure_function : t
val quandary_taint_error : t
val resource_leak : t
val retain_cycle : t
val skip_function : t
val skip_pointer_dereference : t
val shell_injection : t
val shell_injection_risk : t
val sql_injection : t
val sql_injection_risk : t
val stack_variable_address_escape : t
val starvation : t
val static_initialization_order_fiasco : t
val strict_mode_violation : t
val strong_self_not_checked : t
val symexec_memory_error : t
val thread_safety_violation : t
val topl_error : t
val unary_minus_applied_to_unsigned_expression : t
val uninitialized_value : t
val unreachable_code_after : t
val use_after_delete : t
val use_after_free : t
val use_after_lifetime : t
val untrusted_buffer_access : t
val untrusted_deserialization : t
val untrusted_deserialization_risk : t
val untrusted_file : t
val untrusted_file_risk : t
val untrusted_heap_allocation : t
val untrusted_intent_creation : t
val untrusted_url_risk : t
val untrusted_environment_change_risk : t
val untrusted_variable_length_array : t
val user_controlled_sql_risk : t
val vector_invalidation : t
val weak_self_in_noescape_block : t
val wrong_argument_number : t
val unreachable_cost_call : kind:CostKind.t -> t
IBase.ResultsDirEntryName
type id
=
| BuckDependencies | list of Buck directories with infer-out/ directories |
| CaptureDB | the capture database |
| ChangedFunctions | results of the clang test determinator |
| Debug | directory containing debug data |
| Differential | contains the results of |
| DuplicateFunctions | list of duplicated functions |
| JavaClassnamesCache | used when capturing Java jar dependencies |
| JavaGlobalTypeEnvironment | internal |
| LintDotty | directory of linters' dotty debug output for CTL evaluation |
| LintIssues | directory of linters' issues |
| Logs | log file |
| NullsafeFileIssues | file-wide issues of the nullsafe analysis |
| PerfEvents | file containing events for performance profiling |
| ProcnamesLocks | directory of per- |
| RacerDIssues | directory of issues reported by the RacerD analysis |
| ReportCostsJson | reports of the costs analysis |
| ReportHtml | directory of the HTML report |
| ReportJson | the main product of the analysis: |
| ReportText | a human-readable textual version of |
| RetainCycles | directory of retain cycles dotty files |
| RunState | internal data about the last infer run |
| Specs | directory containing summaries as .specs files |
| StarvationIssues | directory of issues reported by the starvation analysis |
| Temporary | directory containing temp files |
| TestDeterminatorReport | the report produced by the test determinator capture mode |
| TestDeterminatorTempResults | a directory |
val get_path : results_dir:string -> id -> string
the absolute path for the given entry
val get_issues_directories : unit -> id list
all the entries that correspond to directories containing temporary issue logs for certain analyses
val to_delete_before_incremental_capture_and_analysis : results_dir:string -> string list
utility for ResultsDir.scrub_for_incremental
, you probably want to use that instead
val to_delete_before_caching_capture : results_dir:string -> string list
utility for ResultsDir.scrub_for_caching
, you probably want to use that instead
IBase.ResultsDirEntryName
type id
=
| BuckDependencies | list of Buck directories with infer-out/ directories |
| CaptureDB | the capture database |
| ChangedFunctions | results of the clang test determinator |
| Debug | directory containing debug data |
| Differential | contains the results of |
| DuplicateFunctions | list of duplicated functions |
| JavaClassnamesCache | used when capturing Java jar dependencies |
| JavaGlobalTypeEnvironment | internal |
| LintDotty | directory of linters' dotty debug output for CTL evaluation |
| LintIssues | directory of linters' issues |
| Logs | log file |
| NullsafeFileIssues | file-wide issues of the nullsafe analysis |
| PerfEvents | file containing events for performance profiling |
| ProcnamesLocks | directory of per- |
| RacerDIssues | directory of issues reported by the RacerD analysis |
| ReportCostsJson | reports of the costs analysis |
| ReportHtml | directory of the HTML report |
| ReportJson | the main product of the analysis: |
| ReportText | a human-readable textual version of |
| ReportXML | a PMD-style XML version of |
| RetainCycles | directory of retain cycles dotty files |
| RunState | internal data about the last infer run |
| Specs | directory containing summaries as .specs files |
| StarvationIssues | directory of issues reported by the starvation analysis |
| Temporary | directory containing temp files |
| TestDeterminatorReport | the report produced by the test determinator capture mode |
| TestDeterminatorTempResults | a directory |
val get_path : results_dir:string -> id -> string
the absolute path for the given entry
val get_issues_directories : unit -> id list
all the entries that correspond to directories containing temporary issue logs for certain analyses
val to_delete_before_incremental_capture_and_analysis : results_dir:string -> string list
utility for ResultsDir.scrub_for_incremental
, you probably want to use that instead
val to_delete_before_caching_capture : results_dir:string -> string list
utility for ResultsDir.scrub_for_caching
, you probably want to use that instead
IBase__Checker
type t
=
| AnnotationReachability |
| Biabduction |
| BufferOverrunAnalysis |
| BufferOverrunChecker |
| ClassLoads |
| Cost |
| Eradicate |
| FragmentRetainsView |
| ImmutableCast |
| Impurity |
| InefficientKeysetIterator |
| Linters |
| LithoRequiredProps |
| Liveness |
| LoopHoisting |
| NullsafeDeprecated |
| PrintfArgs |
| Pulse |
| Purity |
| Quandary |
| RacerD |
| ResourceLeakLabExercise |
| SIOF |
| SelfInBlock |
| Starvation |
| TOPL |
| Uninit |
type support
=
| NoSupport | checker does not run at all for this language |
| ExperimentalSupport | checker runs but is not expected to give reasonable results |
| Support | checker is expected to give reasonable results |
per-language support for each checker
type cli_flags
=
{
deprecated : string list; | More command-line flags, similar to |
show_in_help : bool; |
}
type kind
=
| UserFacing of {
} | can report issues to users | |||||
| UserFacingDeprecated of {
} | can report issues to users but should probably be deleted from infer | |||||
| Internal | Analysis that only serves other analyses. Do not use to mean experimental! Please still document experimental checkers as they will become non-experimental. | |||||
| Exercise | reserved for the "resource leak" lab exercise |
type config
=
{
id : string; | Unique identifier. Used to generate web URLs for the documentation as well as the flag to enable this option on the command line. |
kind : kind; | |
support : IBase.Language.t -> support; | |
short_documentation : string; | used in man pages and as a short intro on the website |
cli_flags : cli_flags option; | If |
enabled_by_default : bool; | |
activates : t list; | list of checkers that get enabled when this checker is enabled |
}
val from_id : string -> t option
IBase__Checker
type t
=
| AnnotationReachability |
| Biabduction |
| BufferOverrunAnalysis |
| BufferOverrunChecker |
| ConfigChecksBetweenMarkers |
| Cost |
| Eradicate |
| FragmentRetainsView |
| ImmutableCast |
| Impurity |
| InefficientKeysetIterator |
| Linters |
| LithoRequiredProps |
| Liveness |
| LoopHoisting |
| NullsafeDeprecated |
| PrintfArgs |
| Pulse |
| Purity |
| Quandary |
| RacerD |
| ResourceLeakLabExercise |
| SIOF |
| SelfInBlock |
| Starvation |
| TOPL |
| Uninit |
type support
=
| NoSupport | checker does not run at all for this language |
| ExperimentalSupport | checker runs but is not expected to give reasonable results |
| Support | checker is expected to give reasonable results |
per-language support for each checker
type cli_flags
=
{
deprecated : string list; | More command-line flags, similar to |
show_in_help : bool; |
}
type kind
=
| UserFacing of {
} | can report issues to users | |||||
| UserFacingDeprecated of {
} | can report issues to users but should probably be deleted from infer | |||||
| Internal | Analysis that only serves other analyses. Do not use to mean experimental! Please still document experimental checkers as they will become non-experimental. | |||||
| Exercise | reserved for the "resource leak" lab exercise |
type config
=
{
id : string; | Unique identifier. Used to generate web URLs for the documentation as well as the flag to enable this option on the command line. |
kind : kind; | |
support : IBase.Language.t -> support; | |
short_documentation : string; | used in man pages and as a short intro on the website |
cli_flags : cli_flags option; | If |
enabled_by_default : bool; | |
activates : t list; | list of checkers that get enabled when this checker is enabled |
}
val from_id : string -> t option
IBase__Config
type os_type
=
| Unix |
| Win32 |
| Cygwin |
type build_system
=
| BAnt |
| BBuck |
| BClang |
| BGradle |
| BJava |
| BJavac |
| BMake |
| BMvn |
| BNdk |
| BXcode |
type scheduler
=
| File |
| Restart |
| SyntacticCallGraph |
val build_system_of_exe_name : string -> build_system
val string_of_build_system : build_system -> string
val env_inside_maven : IStdlib.IStd.Unix.env
val anonymous_block_num_sep : string
val anonymous_block_prefix : string
val append_buck_flavors : string list
val assign : string
val biabduction_models_dir : string
val biabduction_models_jar : string
val biabduction_models_src_dir : string
val bin_dir : string
val bound_error_allowed_in_procedure_call : bool
val clang_exe_aliases : string list
val clang_initializer_prefix : string
val clang_inner_destructor_prefix : string
val clang_plugin_path : string
val classpath : string option
val default_failure_name : string
val dotty_frontend_output : string
val etc_dir : string
val fail_on_issue_exit_code : int
val fcp_dir : string
val idempotent_getters : bool
val initial_analysis_time : float
val ivar_attributes : string
val java_lambda_marker_infix : string
marker to recognize methods generated by javalib to eliminate lambdas
val lib_dir : string
val load_average : float option
val max_narrows : int
val max_widens : int
val meet_level : int
val nsnotification_center_checker_backend : bool
val os_type : os_type
val passthroughs : bool
val patterns_modeled_expensive : string * Yojson.Basic.t
val patterns_never_returning_null : string * Yojson.Basic.t
val patterns_skip_implementation : string * Yojson.Basic.t
val patterns_skip_translation : string * Yojson.Basic.t
val pp_version : Stdlib.Format.formatter -> unit -> unit
val property_attributes : string
val relative_path_backtrack : int
val report : bool
val report_condition_always_true_in_clang : bool
val report_custom_error : bool
val report_force_relative_path : bool
val report_nullable_inconsistency : bool
val save_compact_summaries : bool
val smt_output : bool
val source_file_extentions : string list
val sourcepath : string option
val sources : string list
val specs_files_suffix : string
val trace_absarray : bool
val unsafe_unret : string
val incremental_analysis : bool
val weak : string
val whitelisted_cpp_classes : string list
val whitelisted_cpp_methods : string list
val wrappers_dir : string
val abs_struct : int
val abs_val : int
val allow_leak : bool
val annotation_reachability_cxx : Yojson.Basic.t
val annotation_reachability_cxx_sources : Yojson.Basic.t
val annotation_reachability_custom_pairs : Yojson.Basic.t
val anon_args : string list
val array_level : int
val biabduction_models_mode : bool
val bo_debug : int
val bo_field_depth_limit : int option
val bo_service_handler_request : bool
val bootclasspath : string option
val buck : bool
val buck_blacklist : string list
val buck_build_args : string list
val buck_build_args_no_inline : string list
val buck_cache_mode : bool
val buck_merge_all_deps : bool
val buck_mode : IBase.BuckMode.t option
val buck_out_gen : string
val buck_targets_blacklist : string list
val call_graph_schedule : bool
val capture : bool
val capture_blacklist : string option
val censor_report : ((bool * Str.regexp) * (bool * Str.regexp) * string) list
val changed_files_index : string option
val check_version : string option
val clang_biniou_file : string option
val clang_compound_literal_init_limit : int
val clang_extra_flags : string list
val clang_blacklisted_flags : string list
val clang_blacklisted_flags_with_arg : string list
val clang_ignore_regex : string option
val clang_isystem_to_override_regex : Str.regexp option
val clang_idirafter_to_override_regex : Str.regexp option
val clang_libcxx_include_to_override_regex : string option
val class_loads_roots : IStdlib.IStd.String.Set.t
val command : ATDGenerated.InferCommand.t
val compute_analytics : bool
val continue_analysis : bool
val continue_capture : bool
val costs_current : string option
val cost_issues_tests : string option
val costs_previous : string option
val cxx : bool
val cxx_scope_guards : Yojson.Basic.t
val deduplicate : bool
val debug_exceptions : bool
val debug_level_analysis : int
val debug_level_capture : int
val debug_level_linters : int
val debug_level_test_determinator : int
val debug_mode : bool
val default_linters : bool
val dependency_mode : bool
val developer_mode : bool
val differential_filter_files : string option
val differential_filter_set : [ `Introduced | `Fixed | `Preexisting ] list
val dotty_cfg_libs : bool
val dump_duplicate_symbols : bool
val eradicate_condition_redundant : bool
val eradicate_field_over_annotated : bool
val eradicate_return_over_annotated : bool
val eradicate_verbose : bool
val fail_on_bug : bool
val fcp_apple_clang : string option
val fcp_syntax_only : bool
val file_renamings : string option
val filter_paths : bool
val filtering : bool
val force_delete_results_dir : bool
val force_integration : build_system option
val from_json_report : string
val from_json_costs_report : string
val frontend_stats : bool
val frontend_tests : bool
val function_pointer_specialization : bool
val generated_classes : string option
val genrule_mode : bool
val get_linter_doc_url : linter_id:string -> string option
val help_checker : IBase.Checker.t list
val help_issue_type : IBase.IssueType.t list
val hoisting_report_only_expensive : bool
val html : bool
val icfg_dotty_outfile : string option
val infer_is_clang : bool
val infer_is_javac : bool
val implicit_sdk_root : string option
val inclusive_cost : bool
val inferconfig_file : string option
val inferconfig_dir : string option
val iphoneos_target_sdk_version : string option
val iphoneos_target_sdk_version_path_regex : iphoneos_target_sdk_version_path_regex list
val is_checker_enabled : IBase.Checker.t -> bool
val issues_tests : string option
val issues_tests_fields : IBase.IssuesTestField.t list
val iterations : int
val java_debug_source_file_info : string option
val java_jar_compiler : string option
val java_version : int option
val javac_classes_out : string
val job_id : string option
val jobs : int
val join_cond : int
val keep_going : bool
val linter : string option
val linters_def_file : string list
val linters_def_folder : string list
val linters_developer_mode : bool
val linters_ignore_clang_failures : bool
val linters_validate_syntax_only : bool
val list_checkers : bool
val list_issue_types : bool
val liveness_dangerous_classes : Yojson.Basic.t
val max_nesting : int option
val merge : bool
val method_decls_info : string option
val ml_buckets : [ `MLeak_all | `MLeak_arc | `MLeak_cf | `MLeak_cpp | `MLeak_no_arc | `MLeak_unknown ] list
val modified_lines : string option
val monitor_prop_size : bool
val nelseg : bool
val no_translate_libs : bool
val nullable_annotation : string option
val nullsafe_disable_field_not_initialized_in_nonstrict_classes : bool
val nullsafe_optimistic_third_party_params_in_non_strict : bool
val nullsafe_third_party_signatures : string option
val nullsafe_third_party_location_for_messaging_only : string option
val nullsafe_strict_containers : bool
val oom_threshold : int option
val only_cheap_debug : bool
val only_footprint : bool
val print_active_checkers : bool
val print_builtins : bool
val print_logs : bool
val print_types : bool
val print_using_diff : bool
val procedures : bool
val procedures_attributes : bool
val procedures_definedness : bool
val procedures_filter : string option
val procedures_name : bool
val procedures_source_file : bool
val procedures_summary : bool
val process_clang_ast : bool
val clang_frontend_action_string : string
val profiler_samples : string option
val progress_bar : [ `MultiLine | `Plain | `Quiet ]
val project_root : string
val pudge : bool
val pulse_cut_to_one_path_procedures_pattern : Str.regexp option
val pulse_recency_limit : int
val pulse_intraprocedural_only : bool
val pulse_max_disjuncts : int
val pulse_model_alloc_pattern : Str.regexp option
val pulse_model_release_pattern : Str.regexp option
val pulse_model_transfer_ownership_namespace : (string * string) list
val pulse_model_transfer_ownership : string list
val pulse_widen_threshold : int
val pure_by_default : bool
val quandary_endpoints : Yojson.Basic.t
val quandary_sanitizers : Yojson.Basic.t
val quandary_sinks : Yojson.Basic.t
val quandary_sources : Yojson.Basic.t
val quiet : bool
val racerd_guardedby : bool
val reactive_mode : bool
val reanalyze : bool
val report_blacklist_files_containing : string list
val report_console_limit : int option
val report_current : string option
val report_formatter : [ `No_formatter | `Phabricator_formatter ]
val report_path_regex_blacklist : string list
val report_path_regex_whitelist : string list
val report_previous : string option
val report_suppress_errors : string list
val reports_include_ml_loc : bool
val rest : string list
val results_dir : string
val scheduler : scheduler
val scuba_logging : bool
val scuba_normals : string IStdlib.IStd.String.Map.t
val scuba_tags : string list IStdlib.IStd.String.Map.t
val seconds_per_iteration : float option
val select : int option
val show_buckets : bool
val siof_check_iostreams : bool
val siof_safe_methods : string list
val skip_analysis_in_path : string list
val skip_analysis_in_path_skips_compilation : bool
val skip_duplicated_types : bool
val skip_translation_headers : string list
val sledge_timers : bool
val source_files : bool
val source_files_cfg : bool
val source_files_filter : string option
val source_files_freshly_captured : bool
val source_files_procedure_names : bool
val source_files_type_environment : bool
val source_preview : bool
val sqlite_cache_size : int
val sqlite_page_size : int
val sqlite_lock_timeout : int
val sqlite_vfs : string option
val sqlite_write_daemon : bool
val starvation_skip_analysis : Yojson.Basic.t
val starvation_strict_mode : bool
val starvation_whole_program : bool
val subtype_multirange : bool
val summaries_caches_max_size : int
val symops_per_iteration : int option
val test_determinator : bool
val export_changed_functions : bool
val test_filtering : bool
val testing_mode : bool
val threadsafe_aliases : Yojson.Basic.t
val topl_properties : string list
val trace_error : bool
val trace_events : bool
val trace_join : bool
val trace_ondemand : bool
val trace_rearrange : bool
val trace_topl : bool
val tv_commit : string option
val tv_limit : int
val tv_limit_filtered : int
val type_size : bool
val uninit_interproc : bool
val unsafe_malloc : bool
val worklist_mode : int
val write_dotty : bool
val write_html : bool
val write_html_whitelist_regex : string list
val write_website : string option
val xcode_developer_dir : string option
val xcpretty : bool
val dynamic_dispatch : bool
val toplevel_results_dir : string
In some integrations, eg Buck, infer subprocesses started by the build system (started by the toplevel infer process) will have their own results directory; this points to the results directory of the toplevel infer process, which can be useful for, eg, storing debug info. In other cases this is equal to results_dir
.
val is_in_custom_symbols : string -> string -> bool
Does named symbol match any prefix in the named custom symbol list?
val execution_id : IStdlib.IStd.Int64.t
val clang_compilation_dbs : [ `Escaped of string | `Raw of string ] list IStdlib.IStd.ref
IBase__Config
type os_type
=
| Unix |
| Win32 |
| Cygwin |
type build_system
=
| BAnt |
| BBuck |
| BClang |
| BGradle |
| BJava |
| BJavac |
| BMake |
| BMvn |
| BNdk |
| BXcode |
type scheduler
=
| File |
| Restart |
| SyntacticCallGraph |
val build_system_of_exe_name : string -> build_system
val string_of_build_system : build_system -> string
val env_inside_maven : IStdlib.IStd.Unix.env
val anonymous_block_num_sep : string
val anonymous_block_prefix : string
val append_buck_flavors : string list
val assign : string
val biabduction_models_dir : string
val biabduction_models_jar : string
val biabduction_models_src_dir : string
val bin_dir : string
val bound_error_allowed_in_procedure_call : bool
val clang_exe_aliases : string list
val clang_initializer_prefix : string
val clang_inner_destructor_prefix : string
val clang_plugin_path : string
val classpath : string option
val default_failure_name : string
val dotty_frontend_output : string
val etc_dir : string
val fail_on_issue_exit_code : int
val fcp_dir : string
val idempotent_getters : bool
val initial_analysis_time : float
val ivar_attributes : string
val java_lambda_marker_infix : string
marker to recognize methods generated by javalib to eliminate lambdas
val lib_dir : string
val load_average : float option
val max_narrows : int
val max_widens : int
val meet_level : int
val nsnotification_center_checker_backend : bool
val os_type : os_type
val passthroughs : bool
val patterns_modeled_expensive : string * Yojson.Basic.t
val patterns_never_returning_null : string * Yojson.Basic.t
val patterns_skip_implementation : string * Yojson.Basic.t
val patterns_skip_translation : string * Yojson.Basic.t
val pp_version : Stdlib.Format.formatter -> unit -> unit
val property_attributes : string
val relative_path_backtrack : int
val report : bool
val report_condition_always_true_in_clang : bool
val report_custom_error : bool
val report_force_relative_path : bool
val report_nullable_inconsistency : bool
val save_compact_summaries : bool
val smt_output : bool
val source_file_extentions : string list
val sourcepath : string option
val sources : string list
val specs_files_suffix : string
val trace_absarray : bool
val unsafe_unret : string
val incremental_analysis : bool
val weak : string
val whitelisted_cpp_classes : string list
val whitelisted_cpp_methods : string list
val wrappers_dir : string
val abs_struct : int
val abs_val : int
val allow_leak : bool
val annotation_reachability_cxx : Yojson.Basic.t
val annotation_reachability_cxx_sources : Yojson.Basic.t
val annotation_reachability_custom_pairs : Yojson.Basic.t
val anon_args : string list
val array_level : int
val biabduction_models_mode : bool
val bo_debug : int
val bo_field_depth_limit : int option
val bo_service_handler_request : bool
val bootclasspath : string option
val buck : bool
val buck_blacklist : string list
val buck_build_args : string list
val buck_build_args_no_inline : string list
val buck_cache_mode : bool
val buck_merge_all_deps : bool
val buck_mode : IBase.BuckMode.t option
val buck_out_gen : string
val buck_targets_blacklist : string list
val call_graph_schedule : bool
val capture : bool
val capture_blacklist : string option
val censor_report : ((bool * Str.regexp) * (bool * Str.regexp) * string) list
val changed_files_index : string option
val check_version : string option
val clang_biniou_file : string option
val clang_compound_literal_init_limit : int
val clang_extra_flags : string list
val clang_blacklisted_flags : string list
val clang_blacklisted_flags_with_arg : string list
val clang_ignore_regex : string option
val clang_isystem_to_override_regex : Str.regexp option
val clang_idirafter_to_override_regex : Str.regexp option
val clang_libcxx_include_to_override_regex : string option
val command : ATDGenerated.InferCommand.t
val compute_analytics : bool
val continue_analysis : bool
val continue_capture : bool
val costs_current : string option
val cost_issues_tests : string option
val costs_previous : string option
val cxx : bool
val cxx_scope_guards : Yojson.Basic.t
val deduplicate : bool
val debug_exceptions : bool
val debug_level_analysis : int
val debug_level_capture : int
val debug_level_linters : int
val debug_level_test_determinator : int
val debug_mode : bool
val default_linters : bool
val dependency_mode : bool
val developer_mode : bool
val differential_filter_files : string option
val differential_filter_set : [ `Introduced | `Fixed | `Preexisting ] list
val dotty_cfg_libs : bool
val dump_duplicate_symbols : bool
val eradicate_condition_redundant : bool
val eradicate_field_over_annotated : bool
val eradicate_return_over_annotated : bool
val eradicate_verbose : bool
val fail_on_bug : bool
val fcp_apple_clang : string option
val fcp_syntax_only : bool
val file_renamings : string option
val filter_paths : bool
val filtering : bool
val force_delete_results_dir : bool
val force_integration : build_system option
val from_json_report : string
val from_json_costs_report : string
val frontend_stats : bool
val frontend_tests : bool
val function_pointer_specialization : bool
val generated_classes : string option
val genrule_mode : bool
val get_linter_doc_url : linter_id:string -> string option
val help_checker : IBase.Checker.t list
val help_issue_type : IBase.IssueType.t list
val hoisting_report_only_expensive : bool
val html : bool
val icfg_dotty_outfile : string option
val infer_is_clang : bool
val infer_is_javac : bool
val implicit_sdk_root : string option
val inclusive_cost : bool
val inferconfig_file : string option
val inferconfig_dir : string option
val iphoneos_target_sdk_version : string option
val iphoneos_target_sdk_version_path_regex : iphoneos_target_sdk_version_path_regex list
val is_checker_enabled : IBase.Checker.t -> bool
val issues_tests : string option
val issues_tests_fields : IBase.IssuesTestField.t list
val iterations : int
val java_debug_source_file_info : string option
val java_jar_compiler : string option
val java_version : int option
val javac_classes_out : string
val job_id : string option
val jobs : int
val join_cond : int
val keep_going : bool
val linter : string option
val linters_def_file : string list
val linters_def_folder : string list
val linters_developer_mode : bool
val linters_ignore_clang_failures : bool
val linters_validate_syntax_only : bool
val list_checkers : bool
val list_issue_types : bool
val liveness_dangerous_classes : Yojson.Basic.t
val max_nesting : int option
val merge : bool
val method_decls_info : string option
val ml_buckets : [ `MLeak_all | `MLeak_arc | `MLeak_cf | `MLeak_cpp | `MLeak_no_arc | `MLeak_unknown ] list
val modified_lines : string option
val monitor_prop_size : bool
val nelseg : bool
val no_translate_libs : bool
val nullable_annotation : string option
val nullsafe_disable_field_not_initialized_in_nonstrict_classes : bool
val nullsafe_optimistic_third_party_params_in_non_strict : bool
val nullsafe_third_party_signatures : string option
val nullsafe_third_party_location_for_messaging_only : string option
val nullsafe_strict_containers : bool
val oom_threshold : int option
val only_cheap_debug : bool
val only_footprint : bool
val pmd_xml : bool
val print_active_checkers : bool
val print_builtins : bool
val print_logs : bool
val print_types : bool
val print_using_diff : bool
val procedures : bool
val procedures_attributes : bool
val procedures_definedness : bool
val procedures_filter : string option
val procedures_name : bool
val procedures_source_file : bool
val procedures_summary : bool
val process_clang_ast : bool
val clang_frontend_action_string : string
val profiler_samples : string option
val progress_bar : [ `MultiLine | `Plain | `Quiet ]
val project_root : string
val pudge : bool
val pulse_cut_to_one_path_procedures_pattern : Str.regexp option
val pulse_recency_limit : int
val pulse_intraprocedural_only : bool
val pulse_max_disjuncts : int
val pulse_model_abort : string list
val pulse_model_alloc_pattern : Str.regexp option
val pulse_model_release_pattern : Str.regexp option
val pulse_model_transfer_ownership_namespace : (string * string) list
val pulse_model_transfer_ownership : string list
val pulse_widen_threshold : int
val pure_by_default : bool
val quandary_endpoints : Yojson.Basic.t
val quandary_sanitizers : Yojson.Basic.t
val quandary_sinks : Yojson.Basic.t
val quandary_sources : Yojson.Basic.t
val quiet : bool
val racerd_guardedby : bool
val reactive_mode : bool
val reanalyze : bool
val report_blacklist_files_containing : string list
val report_console_limit : int option
val report_current : string option
val report_formatter : [ `No_formatter | `Phabricator_formatter ]
val report_path_regex_blacklist : string list
val report_path_regex_whitelist : string list
val report_previous : string option
val report_suppress_errors : string list
val reports_include_ml_loc : bool
val rest : string list
val results_dir : string
val scheduler : scheduler
val scuba_logging : bool
val scuba_normals : string IStdlib.IStd.String.Map.t
val scuba_tags : string list IStdlib.IStd.String.Map.t
val seconds_per_iteration : float option
val select : int option
val show_buckets : bool
val siof_check_iostreams : bool
val siof_safe_methods : string list
val skip_analysis_in_path : string list
val skip_analysis_in_path_skips_compilation : bool
val skip_duplicated_types : bool
val skip_translation_headers : string list
val sledge_timers : bool
val source_files : bool
val source_files_cfg : bool
val source_files_filter : string option
val source_files_freshly_captured : bool
val source_files_procedure_names : bool
val source_files_type_environment : bool
val source_preview : bool
val sqlite_cache_size : int
val sqlite_page_size : int
val sqlite_lock_timeout : int
val sqlite_vfs : string option
val sqlite_write_daemon : bool
val starvation_skip_analysis : Yojson.Basic.t
val starvation_strict_mode : bool
val starvation_whole_program : bool
val subtype_multirange : bool
val summaries_caches_max_size : int
val symops_per_iteration : int option
val test_determinator : bool
val export_changed_functions : bool
val test_filtering : bool
val testing_mode : bool
val threadsafe_aliases : Yojson.Basic.t
val topl_properties : string list
val trace_error : bool
val trace_events : bool
val trace_join : bool
val trace_ondemand : bool
val trace_rearrange : bool
val trace_topl : bool
val tv_commit : string option
val tv_limit : int
val tv_limit_filtered : int
val type_size : bool
val uninit_interproc : bool
val unsafe_malloc : bool
val worklist_mode : int
val write_dotty : bool
val write_html : bool
val write_html_whitelist_regex : string list
val write_website : string option
val xcode_developer_dir : string option
val xcpretty : bool
val dynamic_dispatch : bool
val toplevel_results_dir : string
In some integrations, eg Buck, infer subprocesses started by the build system (started by the toplevel infer process) will have their own results directory; this points to the results directory of the toplevel infer process, which can be useful for, eg, storing debug info. In other cases this is equal to results_dir
.
val is_in_custom_symbols : string -> string -> bool
Does named symbol match any prefix in the named custom symbol list?
val execution_id : IStdlib.IStd.Int64.t
val clang_compilation_dbs : [ `Escaped of string | `Raw of string ] list IStdlib.IStd.ref
IBase__IssueType
type visibility
=
| User | always add to error log |
| Developer | only add to error log in some debug modes |
| Silent | never add to error log |
visibility of the issue type
val compare_visibility : visibility -> visibility -> int
val equal_visibility : visibility -> visibility -> bool
val string_of_visibility : visibility -> string
val string_of_severity : severity -> string
type t
= private
{
unique_id : string; | |
checker : IBase.Checker.t; | |
visibility : visibility; | |
user_documentation : string option; | |
mutable default_severity : severity; | used for documentation but can be overriden at report time |
mutable enabled : bool; | |
mutable hum : string; | |
mutable doc_url : string option; | |
mutable linters_def_file : string option; |
}
val pp : Stdlib.Format.formatter -> t -> unit
pretty print a localised string
val find_from_string : id:string -> t option
return the issue type if it was previously registered
val register_from_string : ?enabled:bool -> ?hum:string -> ?doc_url:string -> ?linters_def_file:string -> id:string -> ?visibility:visibility -> ?user_documentation:string -> severity -> IBase.Checker.t -> t
Create a new issue and register it in the list of all issues. NOTE: if the issue with the same string id is already registered, overrides `hum`, `doc_url`, and `linters_def_file`, but DOES NOT override `enabled`. This trick allows to deal with disabling/enabling dynamic AL issues from the config, when we don't know all params yet. Thus, the human-readable description can be updated when we encounter the definition of the issue type, eg in AL.
val checker_can_report : IBase.Checker.t -> t -> bool
Whether the issue was registered as coming from the given checker. Important to call this before reporting to keep documentation accurate.
val set_enabled : t -> bool -> unit
val abduction_case_not_implemented : t
val array_of_pointsto : t
val array_out_of_bounds_l1 : t
val array_out_of_bounds_l2 : t
val array_out_of_bounds_l3 : t
val assert_failure : t
val bad_footprint : t
val biabduction_analysis_stops : t
val biabd_condition_always_false : t
val biabd_condition_always_true : t
val biabd_registered_observer_being_deallocated : t
val biabd_stack_variable_address_escape : t
val biabd_use_after_free : t
val buffer_overrun_l1 : t
val buffer_overrun_l2 : t
val buffer_overrun_l3 : t
val buffer_overrun_l4 : t
val buffer_overrun_l5 : t
val buffer_overrun_r2 : t
val buffer_overrun_s2 : t
val buffer_overrun_t1 : t
Tainted values is used in array accesses, causing buffer over/underruns
val buffer_overrun_u5 : t
val cannot_star : t
val captured_strong_self : t
val checkers_allocates_memory : t
Warning name when a performance critical method directly or indirectly calls a method allocating memory
val checkers_annotation_reachability_error : t
val checkers_calls_expensive_method : t
Warning name when a performance critical method directly or indirectly calls a method annotatd as expensive
val checkers_expensive_overrides_unexpensive : t
Warning name for the subtyping rule: method not annotated as expensive cannot be overridden by a method annotated as expensive
val checkers_fragment_retain_view : t
val checkers_immutable_cast : t
val checkers_printf_args : t
val class_cast_exception : t
val class_load : t
val complexity_increase : kind:IBase.CostKind.t -> is_on_ui_thread:bool -> t
val component_factory_function : t
val component_file_cyclomatic_complexity : t
val component_file_line_count : t
val component_initializer_with_side_effects : t
val component_with_multiple_factory_methods : t
val component_with_unconventional_superclass : t
val condition_always_false : t
val condition_always_true : t
val constant_address_dereference : t
val create_intent_from_uri : t
val cross_site_scripting : t
val dangling_pointer_dereference : t
val dangling_pointer_dereference_maybe : t
val dead_store : t
val deadlock : t
val deallocate_stack_variable : t
val deallocate_static_memory : t
val deallocation_mismatch : t
val divide_by_zero : t
val do_not_report : t
an issue type that should never be reported
val empty_vector_access : t
val eradicate_condition_redundant : t
val eradicate_field_not_initialized : t
val eradicate_field_not_nullable : t
val eradicate_field_over_annotated : t
val eradicate_inconsistent_subclass_parameter_annotation : t
val eradicate_inconsistent_subclass_return_annotation : t
val eradicate_redundant_nested_class_annotation : t
val eradicate_bad_nested_class_annotation : t
val eradicate_nullable_dereference : t
val eradicate_parameter_not_nullable : t
val eradicate_return_not_nullable : t
val eradicate_return_over_annotated : t
val eradicate_unvetted_third_party_in_nullsafe : t
val eradicate_unchecked_usage_in_nullsafe : t
val eradicate_meta_class_can_be_nullsafe : t
val eradicate_meta_class_needs_improvement : t
val eradicate_meta_class_is_nullsafe : t
val exposed_insecure_intent_handling : t
val failure_exe : t
val field_not_null_checked : t
val guardedby_violation_racerd : t
val impure_function : t
val inefficient_keyset_iterator : t
val inferbo_alloc_is_big : t
val inferbo_alloc_is_negative : t
val inferbo_alloc_is_zero : t
val inferbo_alloc_may_be_big : t
val inferbo_alloc_may_be_negative : t
val inferbo_alloc_may_be_tainted : t
val infinite_cost_call : kind:IBase.CostKind.t -> t
val inherently_dangerous_function : t
val insecure_intent_handling : t
val integer_overflow_l1 : t
val integer_overflow_l2 : t
val integer_overflow_l5 : t
val integer_overflow_r2 : t
val integer_overflow_u5 : t
val interface_not_thread_safe : t
val internal_error : t
val invariant_call : t
val javascript_injection : t
val lab_resource_leak : t
val leak_after_array_abstraction : t
val leak_in_footprint : t
val leak_unknown_origin : t
val lockless_violation : t
val lock_consistency_violation : t
val logging_private_data : t
val expensive_loop_invariant_call : t
val memory_leak : t
val missing_fld : t
val missing_required_prop : t
val mixed_self_weakself : t
val multiple_weakself : t
val mutable_local_variable_in_component_file : t
val null_dereference : t
val null_test_after_dereference : t
val nullptr_dereference : t
val parameter_not_null_checked : t
val pointer_size_mismatch : t
val precondition_not_found : t
val precondition_not_met : t
val premature_nil_termination : t
val pulse_memory_leak : t
val pure_function : t
val quandary_taint_error : t
val resource_leak : t
val retain_cycle : t
val skip_function : t
val skip_pointer_dereference : t
val shell_injection : t
val shell_injection_risk : t
val sql_injection : t
val sql_injection_risk : t
val stack_variable_address_escape : t
val starvation : t
val static_initialization_order_fiasco : t
val strict_mode_violation : t
val strong_self_not_checked : t
val symexec_memory_error : t
val thread_safety_violation : t
val topl_error : t
val unary_minus_applied_to_unsigned_expression : t
val uninitialized_value : t
val unreachable_code_after : t
val use_after_delete : t
val use_after_free : t
val use_after_lifetime : t
val untrusted_buffer_access : t
val untrusted_deserialization : t
val untrusted_deserialization_risk : t
val untrusted_file : t
val untrusted_file_risk : t
val untrusted_heap_allocation : t
val untrusted_intent_creation : t
val untrusted_url_risk : t
val untrusted_environment_change_risk : t
val untrusted_variable_length_array : t
val user_controlled_sql_risk : t
val vector_invalidation : t
val weak_self_in_noescape_block : t
val wrong_argument_number : t
val unreachable_cost_call : kind:IBase.CostKind.t -> t
IBase__IssueType
type visibility
=
| User | always add to error log |
| Developer | only add to error log in some debug modes |
| Silent | never add to error log |
visibility of the issue type
val compare_visibility : visibility -> visibility -> int
val equal_visibility : visibility -> visibility -> bool
val string_of_visibility : visibility -> string
val string_of_severity : severity -> string
type t
= private
{
unique_id : string; | |
checker : IBase.Checker.t; | |
visibility : visibility; | |
user_documentation : string option; | |
mutable default_severity : severity; | used for documentation but can be overriden at report time |
mutable enabled : bool; | |
mutable hum : string; | |
mutable doc_url : string option; | |
mutable linters_def_file : string option; |
}
val pp : Stdlib.Format.formatter -> t -> unit
pretty print a localised string
val find_from_string : id:string -> t option
return the issue type if it was previously registered
val register_from_string : ?enabled:bool -> ?is_cost_issue:bool -> ?hum:string -> ?doc_url:string -> ?linters_def_file:string -> id:string -> ?visibility:visibility -> ?user_documentation:string -> severity -> IBase.Checker.t -> t
Create a new issue and register it in the list of all issues. NOTE: if the issue with the same string id is already registered, overrides `hum`, `doc_url`, and `linters_def_file`, but DOES NOT override `enabled`. This trick allows to deal with disabling/enabling dynamic AL issues from the config, when we don't know all params yet. Thus, the human-readable description can be updated when we encounter the definition of the issue type, eg in AL.
val checker_can_report : IBase.Checker.t -> t -> bool
Whether the issue was registered as coming from the given checker. Important to call this before reporting to keep documentation accurate.
val set_enabled : t -> bool -> unit
val abduction_case_not_implemented : t
val array_of_pointsto : t
val array_out_of_bounds_l1 : t
val array_out_of_bounds_l2 : t
val array_out_of_bounds_l3 : t
val assert_failure : t
val bad_footprint : t
val biabduction_analysis_stops : t
val biabd_condition_always_false : t
val biabd_condition_always_true : t
val buffer_overrun_l1 : t
val buffer_overrun_l2 : t
val buffer_overrun_l3 : t
val buffer_overrun_l4 : t
val buffer_overrun_l5 : t
val buffer_overrun_r2 : t
val buffer_overrun_s2 : t
val buffer_overrun_t1 : t
Tainted values is used in array accesses, causing buffer over/underruns
val buffer_overrun_u5 : t
val cannot_star : t
val captured_strong_self : t
val checkers_allocates_memory : t
Warning name when a performance critical method directly or indirectly calls a method allocating memory
val checkers_annotation_reachability_error : t
val checkers_calls_expensive_method : t
Warning name when a performance critical method directly or indirectly calls a method annotatd as expensive
val checkers_expensive_overrides_unexpensive : t
Warning name for the subtyping rule: method not annotated as expensive cannot be overridden by a method annotated as expensive
val checkers_fragment_retain_view : t
val checkers_immutable_cast : t
val checkers_printf_args : t
val class_cast_exception : t
val complexity_increase : kind:IBase.CostKind.t -> is_on_ui_thread:bool -> t
val component_factory_function : t
val component_file_cyclomatic_complexity : t
val component_file_line_count : t
val component_initializer_with_side_effects : t
val component_with_multiple_factory_methods : t
val component_with_unconventional_superclass : t
val condition_always_false : t
val condition_always_true : t
val config_checks_between_markers : t
val constant_address_dereference : t
val create_intent_from_uri : t
val cross_site_scripting : t
val dangling_pointer_dereference : t
val dangling_pointer_dereference_maybe : t
val dead_store : t
val deadlock : t
val deallocate_stack_variable : t
val deallocate_static_memory : t
val divide_by_zero : t
val do_not_report : t
an issue type that should never be reported
val empty_vector_access : t
val eradicate_condition_redundant : t
val eradicate_field_not_initialized : t
val eradicate_field_not_nullable : t
val eradicate_field_over_annotated : t
val eradicate_inconsistent_subclass_parameter_annotation : t
val eradicate_inconsistent_subclass_return_annotation : t
val eradicate_redundant_nested_class_annotation : t
val eradicate_bad_nested_class_annotation : t
val eradicate_nullable_dereference : t
val eradicate_parameter_not_nullable : t
val eradicate_return_not_nullable : t
val eradicate_return_over_annotated : t
val eradicate_unvetted_third_party_in_nullsafe : t
val eradicate_unchecked_usage_in_nullsafe : t
val eradicate_meta_class_can_be_nullsafe : t
val eradicate_meta_class_needs_improvement : t
val eradicate_meta_class_is_nullsafe : t
val exposed_insecure_intent_handling : t
val failure_exe : t
val field_not_null_checked : t
val guardedby_violation_racerd : t
val impure_function : t
val inefficient_keyset_iterator : t
val inferbo_alloc_is_big : t
val inferbo_alloc_is_negative : t
val inferbo_alloc_is_zero : t
val inferbo_alloc_may_be_big : t
val inferbo_alloc_may_be_negative : t
val inferbo_alloc_may_be_tainted : t
val infinite_cost_call : kind:IBase.CostKind.t -> t
val inherently_dangerous_function : t
val insecure_intent_handling : t
val integer_overflow_l1 : t
val integer_overflow_l2 : t
val integer_overflow_l5 : t
val integer_overflow_r2 : t
val integer_overflow_u5 : t
val interface_not_thread_safe : t
val internal_error : t
val invariant_call : t
val javascript_injection : t
val lab_resource_leak : t
val leak_after_array_abstraction : t
val leak_in_footprint : t
val leak_unknown_origin : t
val lockless_violation : t
val lock_consistency_violation : t
val logging_private_data : t
val expensive_loop_invariant_call : t
val memory_leak : t
val missing_fld : t
val missing_required_prop : t
val mixed_self_weakself : t
val multiple_weakself : t
val mutable_local_variable_in_component_file : t
val null_dereference : t
val null_test_after_dereference : t
val nullptr_dereference : t
val parameter_not_null_checked : t
val pointer_size_mismatch : t
val precondition_not_found : t
val precondition_not_met : t
val premature_nil_termination : t
val pulse_memory_leak : t
val pure_function : t
val quandary_taint_error : t
val resource_leak : t
val retain_cycle : t
val skip_function : t
val skip_pointer_dereference : t
val shell_injection : t
val shell_injection_risk : t
val sql_injection : t
val sql_injection_risk : t
val stack_variable_address_escape : t
val starvation : t
val static_initialization_order_fiasco : t
val strict_mode_violation : t
val strong_self_not_checked : t
val symexec_memory_error : t
val thread_safety_violation : t
val topl_error : t
val unary_minus_applied_to_unsigned_expression : t
val uninitialized_value : t
val unreachable_code_after : t
val use_after_delete : t
val use_after_free : t
val use_after_lifetime : t
val untrusted_buffer_access : t
val untrusted_deserialization : t
val untrusted_deserialization_risk : t
val untrusted_file : t
val untrusted_file_risk : t
val untrusted_heap_allocation : t
val untrusted_intent_creation : t
val untrusted_url_risk : t
val untrusted_environment_change_risk : t
val untrusted_variable_length_array : t
val user_controlled_sql_risk : t
val vector_invalidation : t
val weak_self_in_noescape_block : t
val wrong_argument_number : t
val unreachable_cost_call : kind:IBase.CostKind.t -> t
IBase__ResultsDirEntryName
type id
=
| BuckDependencies | list of Buck directories with infer-out/ directories |
| CaptureDB | the capture database |
| ChangedFunctions | results of the clang test determinator |
| Debug | directory containing debug data |
| Differential | contains the results of |
| DuplicateFunctions | list of duplicated functions |
| JavaClassnamesCache | used when capturing Java jar dependencies |
| JavaGlobalTypeEnvironment | internal |
| LintDotty | directory of linters' dotty debug output for CTL evaluation |
| LintIssues | directory of linters' issues |
| Logs | log file |
| NullsafeFileIssues | file-wide issues of the nullsafe analysis |
| PerfEvents | file containing events for performance profiling |
| ProcnamesLocks | directory of per- |
| RacerDIssues | directory of issues reported by the RacerD analysis |
| ReportCostsJson | reports of the costs analysis |
| ReportHtml | directory of the HTML report |
| ReportJson | the main product of the analysis: |
| ReportText | a human-readable textual version of |
| RetainCycles | directory of retain cycles dotty files |
| RunState | internal data about the last infer run |
| Specs | directory containing summaries as .specs files |
| StarvationIssues | directory of issues reported by the starvation analysis |
| Temporary | directory containing temp files |
| TestDeterminatorReport | the report produced by the test determinator capture mode |
| TestDeterminatorTempResults | a directory |
val get_path : results_dir:string -> id -> string
the absolute path for the given entry
val get_issues_directories : unit -> id list
all the entries that correspond to directories containing temporary issue logs for certain analyses
val to_delete_before_incremental_capture_and_analysis : results_dir:string -> string list
utility for ResultsDir
.scrub_for_incremental, you probably want to use that instead
IBase__ResultsDirEntryName
type id
=
| BuckDependencies | list of Buck directories with infer-out/ directories |
| CaptureDB | the capture database |
| ChangedFunctions | results of the clang test determinator |
| Debug | directory containing debug data |
| Differential | contains the results of |
| DuplicateFunctions | list of duplicated functions |
| JavaClassnamesCache | used when capturing Java jar dependencies |
| JavaGlobalTypeEnvironment | internal |
| LintDotty | directory of linters' dotty debug output for CTL evaluation |
| LintIssues | directory of linters' issues |
| Logs | log file |
| NullsafeFileIssues | file-wide issues of the nullsafe analysis |
| PerfEvents | file containing events for performance profiling |
| ProcnamesLocks | directory of per- |
| RacerDIssues | directory of issues reported by the RacerD analysis |
| ReportCostsJson | reports of the costs analysis |
| ReportHtml | directory of the HTML report |
| ReportJson | the main product of the analysis: |
| ReportText | a human-readable textual version of |
| ReportXML | a PMD-style XML version of |
| RetainCycles | directory of retain cycles dotty files |
| RunState | internal data about the last infer run |
| Specs | directory containing summaries as .specs files |
| StarvationIssues | directory of issues reported by the starvation analysis |
| Temporary | directory containing temp files |
| TestDeterminatorReport | the report produced by the test determinator capture mode |
| TestDeterminatorTempResults | a directory |
val get_path : results_dir:string -> id -> string
the absolute path for the given entry
val get_issues_directories : unit -> id list
all the entries that correspond to directories containing temporary issue logs for certain analyses
val to_delete_before_incremental_capture_and_analysis : results_dir:string -> string list
utility for ResultsDir
.scrub_for_incremental, you probably want to use that instead
IR.Procname
module Java : sig ... end
Type of java procedure names.
module Parameter : sig ... end
module ObjC_Cpp : sig ... end
module C : sig ... end
module Block : sig ... end
type t
=
| Java of Java.t |
| C of C.t |
| Linters_dummy_method |
| Block of Block.t |
| ObjC_Cpp of ObjC_Cpp.t |
| WithBlockParameters of t * Block.block_name list |
Type of procedure names. WithBlockParameters is used for creating an instantiation of a method that contains block parameters and it's called with concrete blocks. For example: foo(Block block) {block();}
bar() {foo(my_block)}
is executed as foo_my_block() {my_block(); }
where foo_my_block is created with WithBlockParameters (foo, my_block
)
val block_name_of_procname : t -> Block.block_name
val equal : t -> t -> bool
val get_class_type_name : t -> Typ.Name.t option
val get_class_name : t -> string option
val get_parameters : t -> Parameter.t list
val replace_parameters : Parameter.t list -> t -> t
val parameter_of_name : t -> Typ.Name.t -> Parameter.t
val is_java_access_method : t -> bool
val is_java_class_initializer : t -> bool
val is_java_anonymous_inner_class_method : t -> bool
val is_java_autogen_method : t -> bool
val is_objc_method : t -> bool
module Hash : IStdlib.IStd.Caml.Hashtbl.S with type Hash.key = t
Hash tables with proc names as keys.
module LRUHash : IStdlib.LRUHashtbl.S with type key = t
module HashQueue : IStdlib.IStd.Hash_queue.S with type HashQueue.key = t
module Map : IStdlib.PrettyPrintable.PPMap with type PPMap.key = t
Maps from proc names.
module Set : IStdlib.PrettyPrintable.PPSet with type PPSet.elt = t
Sets of proc names.
module SQLite : sig ... end
module SQLiteList : IBase.SqliteUtils.Data with type t = t list
module UnitCache : sig ... end
One-sized cache for one procedure at a time. Returns getter and setter.
val make_java : class_name:Typ.Name.t -> return_type:Java.java_type option -> method_name:string -> parameters:Java.java_type list -> kind:Java.kind -> unit -> t
Create a Java procedure name.
val make_objc_dealloc : Typ.Name.t -> t
Create a Objective-C dealloc name. This is a destructor for an Objective-C class. This procname is given by the class name, since it is always an instance method with the name "dealloc"
val empty_block : t
Empty block name.
val get_language : t -> IBase.Language.t
Return the language of the procedure.
val get_method : t -> string
Return the method/function of a procname.
val is_objc_block : t -> bool
Return whether the procname is a block procname.
val is_c_method : t -> bool
Return true this is an Objective-C/C++ method name.
val is_clang : t -> bool
Return true if this is a C, C++, or Objective-C procedure name
val is_constructor : t -> bool
Check if this is a constructor.
val is_java : t -> bool
Check if this is a Java procedure name.
val with_block_parameters : t -> Block.block_name list -> t
Create a procedure name instantiated with block parameters from a base procedure name and a list of block procedure names (the arguments).
val objc_cpp_replace_method_name : t -> string -> t
val is_infer_undefined : t -> bool
Check if this is a special Infer undefined procedure.
val get_global_name_of_initializer : t -> string option
Return the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.
val pp : Stdlib.Format.formatter -> t -> unit
Pretty print a proc name for the user to see.
val to_string : t -> string
Convert a proc name into a string for the user to see.
val describe : Stdlib.Format.formatter -> t -> unit
to use in user messages
val replace_class : t -> Typ.Name.t -> t
Replace the class name component of a procedure name. In case of Java, replace package and class name.
val is_method_in_objc_protocol : t -> bool
val pp_simplified_string : ?withclass:bool -> F.formatter -> t -> unit
Pretty print a proc name as an easy string for the user to see in an IDE.
val to_simplified_string : ?withclass:bool -> t -> string
Convert a proc name into an easy string for the user to see in an IDE.
val from_string_c_fun : string -> t
Convert a string to a c function name.
val hashable_name : t -> string
Convert the procedure name in a format suitable for computing the bug hash.
val to_unique_id : t -> string
Convert a proc name into a unique identifier.
val to_filename : t -> string
Convert a proc name to a filename.
val get_qualifiers : t -> QualifiedCppName.t
get qualifiers of C/objc/C++ method/function
IR.Procname
module Java : sig ... end
Type of java procedure names.
module Parameter : sig ... end
module ObjC_Cpp : sig ... end
module C : sig ... end
module Block : sig ... end
type t
=
| Java of Java.t |
| C of C.t |
| Linters_dummy_method |
| Block of Block.t |
| ObjC_Cpp of ObjC_Cpp.t |
| WithBlockParameters of t * Block.block_name list |
Type of procedure names. WithBlockParameters is used for creating an instantiation of a method that contains block parameters and it's called with concrete blocks. For example: foo(Block block) {block();}
bar() {foo(my_block)}
is executed as foo_my_block() {my_block(); }
where foo_my_block is created with WithBlockParameters (foo, my_block
)
val block_name_of_procname : t -> Block.block_name
val equal : t -> t -> bool
val get_class_type_name : t -> Typ.Name.t option
val get_class_name : t -> string option
val get_parameters : t -> Parameter.t list
val replace_parameters : Parameter.t list -> t -> t
val parameter_of_name : t -> Typ.Name.t -> Parameter.t
val is_java_access_method : t -> bool
val is_java_class_initializer : t -> bool
val is_java_anonymous_inner_class_method : t -> bool
val is_java_autogen_method : t -> bool
val is_objc_method : t -> bool
module Hash : IStdlib.IStd.Caml.Hashtbl.S with type Hash.key = t
Hash tables with proc names as keys.
module LRUHash : IStdlib.LRUHashtbl.S with type key = t
module HashQueue : IStdlib.IStd.Hash_queue.S with type HashQueue.key = t
module Map : IStdlib.PrettyPrintable.PPMap with type PPMap.key = t
Maps from proc names.
module Set : IStdlib.PrettyPrintable.PPSet with type PPSet.elt = t
Sets of proc names.
module SQLite : sig ... end
module SQLiteList : IBase.SqliteUtils.Data with type t = t list
module UnitCache : sig ... end
One-sized cache for one procedure at a time. Returns getter and setter.
val make_java : class_name:Typ.Name.t -> return_type:Java.java_type option -> method_name:string -> parameters:Java.java_type list -> kind:Java.kind -> unit -> t
Create a Java procedure name.
val make_objc_dealloc : Typ.Name.t -> t
Create a Objective-C dealloc name. This is a destructor for an Objective-C class. This procname is given by the class name, since it is always an instance method with the name "dealloc"
val empty_block : t
Empty block name.
val get_language : t -> IBase.Language.t
Return the language of the procedure.
val get_method : t -> string
Return the method/function of a procname.
val is_objc_block : t -> bool
Return whether the procname is a block procname.
val is_objc_dealloc : t -> bool
Return whether the dealloc method of an Objective-C class.
val is_c_method : t -> bool
Return true this is an Objective-C/C++ method name.
val is_clang : t -> bool
Return true if this is a C, C++, or Objective-C procedure name
val is_constructor : t -> bool
Check if this is a constructor.
val is_java : t -> bool
Check if this is a Java procedure name.
val with_block_parameters : t -> Block.block_name list -> t
Create a procedure name instantiated with block parameters from a base procedure name and a list of block procedure names (the arguments).
val objc_cpp_replace_method_name : t -> string -> t
val is_infer_undefined : t -> bool
Check if this is a special Infer undefined procedure.
val get_global_name_of_initializer : t -> string option
Return the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.
val pp : Stdlib.Format.formatter -> t -> unit
Pretty print a proc name for the user to see.
val to_string : t -> string
Convert a proc name into a string for the user to see.
val describe : Stdlib.Format.formatter -> t -> unit
to use in user messages
val replace_class : t -> Typ.Name.t -> t
Replace the class name component of a procedure name. In case of Java, replace package and class name.
val is_method_in_objc_protocol : t -> bool
val pp_simplified_string : ?withclass:bool -> F.formatter -> t -> unit
Pretty print a proc name as an easy string for the user to see in an IDE.
val to_simplified_string : ?withclass:bool -> t -> string
Convert a proc name into an easy string for the user to see in an IDE.
val from_string_c_fun : string -> t
Convert a string to a c function name.
val hashable_name : t -> string
Convert the procedure name in a format suitable for computing the bug hash.
val to_unique_id : t -> string
Convert a proc name into a unique identifier.
val to_filename : t -> string
Convert a proc name to a filename.
val get_qualifiers : t -> QualifiedCppName.t
get qualifiers of C/objc/C++ method/function
IR__Procname
module Java : sig ... end
Type of java procedure names.
module Parameter : sig ... end
module ObjC_Cpp : sig ... end
module C : sig ... end
module Block : sig ... end
type t
=
| Java of Java.t |
| C of C.t |
| Linters_dummy_method |
| Block of Block.t |
| ObjC_Cpp of ObjC_Cpp.t |
| WithBlockParameters of t * Block.block_name list |
Type of procedure names. WithBlockParameters is used for creating an instantiation of a method that contains block parameters and it's called with concrete blocks. For example: foo(Block block) {block();}
bar() {foo(my_block)}
is executed as foo_my_block() {my_block(); }
where foo_my_block is created with WithBlockParameters (foo, my_block
)
val block_name_of_procname : t -> Block.block_name
val equal : t -> t -> bool
val get_class_type_name : t -> IR.Typ.Name.t option
val get_class_name : t -> string option
val get_parameters : t -> Parameter.t list
val replace_parameters : Parameter.t list -> t -> t
val parameter_of_name : t -> IR.Typ.Name.t -> Parameter.t
val is_java_access_method : t -> bool
val is_java_class_initializer : t -> bool
val is_java_anonymous_inner_class_method : t -> bool
val is_java_autogen_method : t -> bool
val is_objc_method : t -> bool
module Hash : IStdlib.IStd.Caml.Hashtbl.S with type Hash.key = t
Hash tables with proc names as keys.
module LRUHash : IStdlib.LRUHashtbl.S with type key = t
module HashQueue : IStdlib.IStd.Hash_queue.S with type HashQueue.key = t
module Map : IStdlib.PrettyPrintable.PPMap with type PPMap.key = t
Maps from proc names.
module Set : IStdlib.PrettyPrintable.PPSet with type PPSet.elt = t
Sets of proc names.
module SQLite : sig ... end
module SQLiteList : IBase.SqliteUtils.Data with type t = t list
module UnitCache : sig ... end
One-sized cache for one procedure at a time. Returns getter and setter.
val make_java : class_name:IR.Typ.Name.t -> return_type:Java.java_type option -> method_name:string -> parameters:Java.java_type list -> kind:Java.kind -> unit -> t
Create a Java procedure name.
val make_objc_dealloc : IR.Typ.Name.t -> t
Create a Objective-C dealloc name. This is a destructor for an Objective-C class. This procname is given by the class name, since it is always an instance method with the name "dealloc"
val empty_block : t
Empty block name.
val get_language : t -> IBase.Language.t
Return the language of the procedure.
val get_method : t -> string
Return the method/function of a procname.
val is_objc_block : t -> bool
Return whether the procname is a block procname.
val is_c_method : t -> bool
Return true this is an Objective-C/C++ method name.
val is_clang : t -> bool
Return true if this is a C, C++, or Objective-C procedure name
val is_constructor : t -> bool
Check if this is a constructor.
val is_java : t -> bool
Check if this is a Java procedure name.
val with_block_parameters : t -> Block.block_name list -> t
Create a procedure name instantiated with block parameters from a base procedure name and a list of block procedure names (the arguments).
val objc_cpp_replace_method_name : t -> string -> t
val is_infer_undefined : t -> bool
Check if this is a special Infer undefined procedure.
val get_global_name_of_initializer : t -> string option
Return the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.
val pp : Stdlib.Format.formatter -> t -> unit
Pretty print a proc name for the user to see.
val to_string : t -> string
Convert a proc name into a string for the user to see.
val describe : Stdlib.Format.formatter -> t -> unit
to use in user messages
val replace_class : t -> IR.Typ.Name.t -> t
Replace the class name component of a procedure name. In case of Java, replace package and class name.
val is_method_in_objc_protocol : t -> bool
val pp_simplified_string : ?withclass:bool -> F.formatter -> t -> unit
Pretty print a proc name as an easy string for the user to see in an IDE.
val to_simplified_string : ?withclass:bool -> t -> string
Convert a proc name into an easy string for the user to see in an IDE.
val from_string_c_fun : string -> t
Convert a string to a c function name.
val hashable_name : t -> string
Convert the procedure name in a format suitable for computing the bug hash.
val to_unique_id : t -> string
Convert a proc name into a unique identifier.
val to_filename : t -> string
Convert a proc name to a filename.
val get_qualifiers : t -> IR.QualifiedCppName.t
get qualifiers of C/objc/C++ method/function
IR__Procname
module Java : sig ... end
Type of java procedure names.
module Parameter : sig ... end
module ObjC_Cpp : sig ... end
module C : sig ... end
module Block : sig ... end
type t
=
| Java of Java.t |
| C of C.t |
| Linters_dummy_method |
| Block of Block.t |
| ObjC_Cpp of ObjC_Cpp.t |
| WithBlockParameters of t * Block.block_name list |
Type of procedure names. WithBlockParameters is used for creating an instantiation of a method that contains block parameters and it's called with concrete blocks. For example: foo(Block block) {block();}
bar() {foo(my_block)}
is executed as foo_my_block() {my_block(); }
where foo_my_block is created with WithBlockParameters (foo, my_block
)
val block_name_of_procname : t -> Block.block_name
val equal : t -> t -> bool
val get_class_type_name : t -> IR.Typ.Name.t option
val get_class_name : t -> string option
val get_parameters : t -> Parameter.t list
val replace_parameters : Parameter.t list -> t -> t
val parameter_of_name : t -> IR.Typ.Name.t -> Parameter.t
val is_java_access_method : t -> bool
val is_java_class_initializer : t -> bool
val is_java_anonymous_inner_class_method : t -> bool
val is_java_autogen_method : t -> bool
val is_objc_method : t -> bool
module Hash : IStdlib.IStd.Caml.Hashtbl.S with type Hash.key = t
Hash tables with proc names as keys.
module LRUHash : IStdlib.LRUHashtbl.S with type key = t
module HashQueue : IStdlib.IStd.Hash_queue.S with type HashQueue.key = t
module Map : IStdlib.PrettyPrintable.PPMap with type PPMap.key = t
Maps from proc names.
module Set : IStdlib.PrettyPrintable.PPSet with type PPSet.elt = t
Sets of proc names.
module SQLite : sig ... end
module SQLiteList : IBase.SqliteUtils.Data with type t = t list
module UnitCache : sig ... end
One-sized cache for one procedure at a time. Returns getter and setter.
val make_java : class_name:IR.Typ.Name.t -> return_type:Java.java_type option -> method_name:string -> parameters:Java.java_type list -> kind:Java.kind -> unit -> t
Create a Java procedure name.
val make_objc_dealloc : IR.Typ.Name.t -> t
Create a Objective-C dealloc name. This is a destructor for an Objective-C class. This procname is given by the class name, since it is always an instance method with the name "dealloc"
val empty_block : t
Empty block name.
val get_language : t -> IBase.Language.t
Return the language of the procedure.
val get_method : t -> string
Return the method/function of a procname.
val is_objc_block : t -> bool
Return whether the procname is a block procname.
val is_objc_dealloc : t -> bool
Return whether the dealloc method of an Objective-C class.
val is_c_method : t -> bool
Return true this is an Objective-C/C++ method name.
val is_clang : t -> bool
Return true if this is a C, C++, or Objective-C procedure name
val is_constructor : t -> bool
Check if this is a constructor.
val is_java : t -> bool
Check if this is a Java procedure name.
val with_block_parameters : t -> Block.block_name list -> t
Create a procedure name instantiated with block parameters from a base procedure name and a list of block procedure names (the arguments).
val objc_cpp_replace_method_name : t -> string -> t
val is_infer_undefined : t -> bool
Check if this is a special Infer undefined procedure.
val get_global_name_of_initializer : t -> string option
Return the name of the global for which this procedure is the initializer if this is an initializer, None otherwise.
val pp : Stdlib.Format.formatter -> t -> unit
Pretty print a proc name for the user to see.
val to_string : t -> string
Convert a proc name into a string for the user to see.
val describe : Stdlib.Format.formatter -> t -> unit
to use in user messages
val replace_class : t -> IR.Typ.Name.t -> t
Replace the class name component of a procedure name. In case of Java, replace package and class name.
val is_method_in_objc_protocol : t -> bool
val pp_simplified_string : ?withclass:bool -> F.formatter -> t -> unit
Pretty print a proc name as an easy string for the user to see in an IDE.
val to_simplified_string : ?withclass:bool -> t -> string
Convert a proc name into an easy string for the user to see in an IDE.
val from_string_c_fun : string -> t
Convert a string to a c function name.
val hashable_name : t -> string
Convert the procedure name in a format suitable for computing the bug hash.
val to_unique_id : t -> string
Convert a proc name into a unique identifier.
val to_filename : t -> string
Convert a proc name to a filename.
val get_qualifiers : t -> IR.QualifiedCppName.t
get qualifiers of C/objc/C++ method/function
Integration.Help
val show_checkers : IBase.Checker.t list -> unit
show information about the given checkers
val show_issue_types : IBase.IssueType.t list -> unit
show information about the given issue_types
Integration.Help
val show_checkers : IBase.Checker.t list -> unit
show information about the given checkers
val show_issue_types : IBase.IssueType.t list -> unit
show information about the given issue_types
Integration.XMLReport
Integration
module Ant : sig ... end
module Buck : sig ... end
module BuckFlavors : sig ... end
module BuckGenrule : sig ... end
module CaptureCompilationDatabase : sig ... end
module Clang : sig ... end
module CompilationDatabase : sig ... end
module CostIssuesTest : sig ... end
module Differential : sig ... end
module DifferentialFilters : sig ... end
module Driver : sig ... end
module Gradle : sig ... end
module Help : sig ... end
module IssuesTest : sig ... end
module Javac : sig ... end
module JsonReports : sig ... end
module Maven : sig ... end
module NdkBuild : sig ... end
module ReportDiff : sig ... end
module TextReport : sig ... end
module TraceBugs : sig ... end
module XcodeBuild : sig ... end
Integration
module Ant : sig ... end
module Buck : sig ... end
module BuckFlavors : sig ... end
module BuckGenrule : sig ... end
module CaptureCompilationDatabase : sig ... end
module Clang : sig ... end
module CompilationDatabase : sig ... end
module CostIssuesTest : sig ... end
module Differential : sig ... end
module DifferentialFilters : sig ... end
module Driver : sig ... end
module Gradle : sig ... end
module Help : sig ... end
module IssuesTest : sig ... end
module Javac : sig ... end
module JsonReports : sig ... end
module Maven : sig ... end
module NdkBuild : sig ... end
module ReportDiff : sig ... end
module TextReport : sig ... end
module TraceBugs : sig ... end
module XMLReport : sig ... end
module XcodeBuild : sig ... end
Integration__Help
val show_checkers : IBase.Checker.t list -> unit
show information about the given checkers
val show_issue_types : IBase.IssueType.t list -> unit
show information about the given issue_types
Integration__Help
val show_checkers : IBase.Checker.t list -> unit
show information about the given checkers
val show_issue_types : IBase.IssueType.t list -> unit
show information about the given issue_types