From 3b9aa9ad152d46d88223fb600d59f2d668a1a9c8 Mon Sep 17 00:00:00 2001 From: Jeremy Dubreil Date: Fri, 12 May 2017 13:28:44 -0700 Subject: [PATCH] [infer][checkers] filter out the experimental issues instead of using a whitelist Summary: The issues that are not reported by default are all experimental issues from the biabduction analysis. In that case, it is easier to use a blacklist of errors to filter out so that the issues found by the checkers based on the AI framework can be reported by default without having to add them to the whitelist. Reviewed By: jvillard Differential Revision: D5051327 fbshipit-source-id: 2a93b11 --- infer/src/backend/InferPrint.re | 37 ++++++++++++++++----------------- infer/src/base/Config.ml | 18 +++++++--------- 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/infer/src/backend/InferPrint.re b/infer/src/backend/InferPrint.re index 993405bd7..fae1d5928 100644 --- a/infer/src/backend/InferPrint.re +++ b/infer/src/backend/InferPrint.re @@ -306,25 +306,24 @@ let should_report (issue_kind: Exceptions.err_kind) issue_type error_desc eclass }; issue_bucket_is_high } else { - let issue_type_is_reportable = { - let reportable_issue_types = - Localise.[ - Localise.from_string Config.default_failure_name, - context_leak, - double_lock, - empty_vector_access, - memory_leak, - quandary_taint_error, - resource_leak, - retain_cycle, - static_initialization_order_fiasco, - tainted_value_reaching_sensitive_function, - thread_safety_violation, - unsafe_guarded_by_access - ]; - List.mem equal::Localise.equal reportable_issue_types issue_type - }; - issue_type_is_reportable + let blacklisted_by_default = + Localise.[ + analysis_stops, + divide_by_zero, + return_value_ignored, + array_out_of_bounds_l1, + array_out_of_bounds_l2, + array_out_of_bounds_l3, + null_test_after_dereference, + class_cast_exception, + uninitialized_value, + stack_variable_address_escape, + dangling_pointer_dereference, + unary_minus_applied_to_unsigned_expression, + condition_always_true, + condition_always_false + ]; + not (List.mem equal::Localise.equal blacklisted_by_default issue_type) } } } diff --git a/infer/src/base/Config.ml b/infer/src/base/Config.ml index 860a15797..09a258c2b 100644 --- a/infer/src/base/Config.ml +++ b/infer/src/base/Config.ml @@ -608,17 +608,9 @@ and checkers_repeated_calls = CLOpt.mk_bool ~long:"checkers-repeated-calls" ~in_help:CLOpt.[Analyze, manual_generic] "check for repeated calls" -and checkers, eradicate = - let checkers = - CLOpt.mk_bool ~deprecated:["checkers"] ~long:"checkers" - "Activate the checkers instead of the full analysis" - in - let eradicate = - CLOpt.mk_bool_group ~deprecated:["eradicate"] ~long:"eradicate" - "Activate the eradicate checker for Java annotations" - [checkers] [] - in - (checkers, eradicate) +and checkers = + CLOpt.mk_bool ~long:"checkers" ~in_help:CLOpt.[Analyze, manual_generic] + "the checkers instead of the full analysis" and clang_biniou_file = CLOpt.mk_path_opt ~long:"clang-biniou-file" @@ -854,6 +846,10 @@ and enable_checks = CLOpt.mk_string_list ~deprecated:["enable_checks"] ~long:"enable-checks" ~meta:"error name" "Show reports coming from this type of errors" +and eradicate = + CLOpt.mk_bool ~long:"eradicate" ~in_help:CLOpt.[Analyze, manual_generic] + "the eradicate checker for Java annotations" + and eradicate_condition_redundant = CLOpt.mk_bool ~long:"eradicate-condition-redundant" "Condition redundant warnings"