diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bd01661a0..393c82f30 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,9 +33,9 @@ make devsetup use infer), while running `make` commands from within subdirectories generally assumes that dependencies are already up-to-date. - For instance, running `make direct_java_infer_test` will rebuild infer and the models if necessary - before running the test, but running `make -C infer/tests/codetoanalyze/java/infer test` will just - execute the test. + For instance, running `make direct_java_biabduction_test` will rebuild infer and the models if + necessary before running the test, but running `make -C infer/tests/codetoanalyze/java/biabduction/ test` + will just execute the test. - To switch the default build mode to flambda disabled, you can `export BUILD_MODE=dev` in your shell. diff --git a/Makefile b/Makefile index c04993c16..093fba358 100644 --- a/Makefile +++ b/Makefile @@ -52,16 +52,15 @@ BUILD_SYSTEMS_TESTS += \ DIRECT_TESTS += \ c_biabduction \ c_bufferoverrun \ - c_errors \ c_frontend \ c_performance \ c_pulse \ c_purity \ c_uninit \ cpp_annotation-reachability \ + cpp_biabduction \ cpp_bufferoverrun \ cpp_conflicts \ - cpp_errors \ cpp_frontend \ cpp_impurity \ cpp_linters \ @@ -105,7 +104,7 @@ BUILD_SYSTEMS_TESTS += \ objc_retain_cycles_weak DIRECT_TESTS += \ - objc_errors \ + objc_biabduction \ objc_frontend \ objc_ioslints \ objc_linters \ @@ -117,7 +116,7 @@ DIRECT_TESTS += \ objc_quandary \ objc_self-in-block \ objc_uninit \ - objcpp_errors \ + objcpp_biabduction \ objcpp_frontend \ objcpp_linters \ objcpp_linters-for-test-only \ @@ -154,6 +153,7 @@ BUILD_SYSTEMS_TESTS += \ DIRECT_TESTS += \ java_annotreach \ + java_biabduction \ java_bufferoverrun \ java_checkers \ java_classloads \ @@ -162,7 +162,6 @@ DIRECT_TESTS += \ java_hoistingExpensive \ java_impurity \ java_inefficientKeysetIterator \ - java_infer \ java_litho-required-props \ java_performance \ java_performance-exclusive \ diff --git a/infer/tests/build_systems/annotation-reachability-sources-override/Makefile b/infer/tests/build_systems/annotation-reachability-sources-override/Makefile index c2ed873d5..27acd7739 100644 --- a/infer/tests/build_systems/annotation-reachability-sources-override/Makefile +++ b/infer/tests/build_systems/annotation-reachability-sources-override/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++11 -nostdinc++ -isystem$(ROOT_DIR) -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --annotation-reachability-only --debug-exceptions --project-root $(TESTS_DIR) \ --annotation-reachability-cxx '{ \ diff --git a/infer/tests/build_systems/clang_translation/Makefile b/infer/tests/build_systems/clang_translation/Makefile index a50948713..424ebe781 100644 --- a/infer/tests/build_systems/clang_translation/Makefile +++ b/infer/tests/build_systems/clang_translation/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++11 -nostdinc++ -isystem$(CLANG_INCLUDES)/c++/v1/ -c ROOT = ../codetoanalyze/clang_translation/src diff --git a/infer/tests/codetoanalyze/c/biabduction/Makefile b/infer/tests/codetoanalyze/c/biabduction/Makefile index e813f1a2f..93e0d7428 100644 --- a/infer/tests/codetoanalyze/c/biabduction/Makefile +++ b/infer/tests/codetoanalyze/c/biabduction/Makefile @@ -6,10 +6,14 @@ TESTS_DIR = ../../.. CLANG_OPTIONS = -c -INFER_OPTIONS = --biabduction-only --debug-exceptions --project-root $(TESTS_DIR) +INFER_OPTIONS = \ + --biabduction-only --report-custom-error --developer-mode --no-filtering --debug-exceptions \ + --project-root $(TESTS_DIR) \ -INFERPRINT_OPTIONS = --issues-tests +# we need to disable traces in C tests because assertions/assertion_failure.c has different traces +# on Linux and OSX because of different implementations of assert() on each platform +INFERPRINT_OPTIONS = --issues-tests-fields "file,procedure,line_offset,bug_type,bucket" --issues-tests -SOURCES = $(wildcard *.c) +SOURCES = $(wildcard */*.c) include $(TESTS_DIR)/clang.make diff --git a/infer/tests/codetoanalyze/c/errors/arithmetic/array_out_of_bounds.c b/infer/tests/codetoanalyze/c/biabduction/arithmetic/array_out_of_bounds.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/arithmetic/array_out_of_bounds.c rename to infer/tests/codetoanalyze/c/biabduction/arithmetic/array_out_of_bounds.c diff --git a/infer/tests/codetoanalyze/c/errors/arithmetic/divide_by_zero.c b/infer/tests/codetoanalyze/c/biabduction/arithmetic/divide_by_zero.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/arithmetic/divide_by_zero.c rename to infer/tests/codetoanalyze/c/biabduction/arithmetic/divide_by_zero.c diff --git a/infer/tests/codetoanalyze/c/errors/arithmetic/test_sizeof.c b/infer/tests/codetoanalyze/c/biabduction/arithmetic/test_sizeof.c similarity index 91% rename from infer/tests/codetoanalyze/c/errors/arithmetic/test_sizeof.c rename to infer/tests/codetoanalyze/c/biabduction/arithmetic/test_sizeof.c index 768c8bf22..bf4417e27 100644 --- a/infer/tests/codetoanalyze/c/errors/arithmetic/test_sizeof.c +++ b/infer/tests/codetoanalyze/c/biabduction/arithmetic/test_sizeof.c @@ -35,15 +35,14 @@ void* my_realloc(void* ptr, size_t size) { exit(0); // assume that new allocation does not fail } -void foo(int* p) { +void call_my_realloc_array_ok(int* p) { p = my_realloc(p, 10 * sizeof(int)); p[0] = 42; free(p); } -int main() { - +int call_call_my_realloc_array_ok() { int* p; p = xmalloc(sizeof(int)); - foo(p); + call_my_realloc_array_ok(p); } diff --git a/infer/tests/codetoanalyze/c/errors/arithmetic/unsigned_values.c b/infer/tests/codetoanalyze/c/biabduction/arithmetic/unsigned_values.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/arithmetic/unsigned_values.c rename to infer/tests/codetoanalyze/c/biabduction/arithmetic/unsigned_values.c diff --git a/infer/tests/codetoanalyze/c/errors/assertions/assertion_example.c b/infer/tests/codetoanalyze/c/biabduction/assertions/assertion_example.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/assertions/assertion_example.c rename to infer/tests/codetoanalyze/c/biabduction/assertions/assertion_example.c diff --git a/infer/tests/codetoanalyze/c/errors/assertions/assertion_failure.c b/infer/tests/codetoanalyze/c/biabduction/assertions/assertion_failure.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/assertions/assertion_failure.c rename to infer/tests/codetoanalyze/c/biabduction/assertions/assertion_failure.c diff --git a/infer/tests/codetoanalyze/c/errors/attributes/sentinel.c b/infer/tests/codetoanalyze/c/biabduction/attributes/sentinel.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/attributes/sentinel.c rename to infer/tests/codetoanalyze/c/biabduction/attributes/sentinel.c diff --git a/infer/tests/codetoanalyze/c/errors/custom_error/custom.c b/infer/tests/codetoanalyze/c/biabduction/custom_error/custom.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/custom_error/custom.c rename to infer/tests/codetoanalyze/c/biabduction/custom_error/custom.c diff --git a/infer/tests/codetoanalyze/c/errors/dangling_deref/dpd.c b/infer/tests/codetoanalyze/c/biabduction/dangling_deref/dpd.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/dangling_deref/dpd.c rename to infer/tests/codetoanalyze/c/biabduction/dangling_deref/dpd.c diff --git a/infer/tests/codetoanalyze/c/errors/enumeration/other_enum.c b/infer/tests/codetoanalyze/c/biabduction/enumeration/other_enum.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/enumeration/other_enum.c rename to infer/tests/codetoanalyze/c/biabduction/enumeration/other_enum.c diff --git a/infer/tests/codetoanalyze/c/errors/generic.mk b/infer/tests/codetoanalyze/c/biabduction/generic.mk similarity index 100% rename from infer/tests/codetoanalyze/c/errors/generic.mk rename to infer/tests/codetoanalyze/c/biabduction/generic.mk diff --git a/infer/tests/codetoanalyze/c/errors/initialization/abduce_structured_types.c b/infer/tests/codetoanalyze/c/biabduction/initialization/abduce_structured_types.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/initialization/abduce_structured_types.c rename to infer/tests/codetoanalyze/c/biabduction/initialization/abduce_structured_types.c diff --git a/infer/tests/codetoanalyze/c/errors/initialization/compound_literal.c b/infer/tests/codetoanalyze/c/biabduction/initialization/compound_literal.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/initialization/compound_literal.c rename to infer/tests/codetoanalyze/c/biabduction/initialization/compound_literal.c diff --git a/infer/tests/codetoanalyze/c/errors/initialization/initlistexpr.c b/infer/tests/codetoanalyze/c/biabduction/initialization/initlistexpr.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/initialization/initlistexpr.c rename to infer/tests/codetoanalyze/c/biabduction/initialization/initlistexpr.c diff --git a/infer/tests/codetoanalyze/c/biabduction/issues.exp b/infer/tests/codetoanalyze/c/biabduction/issues.exp index 70f3db142..54f6f37bd 100644 --- a/infer/tests/codetoanalyze/c/biabduction/issues.exp +++ b/infer/tests/codetoanalyze/c/biabduction/issues.exp @@ -1,10 +1,117 @@ -codetoanalyze/c/biabduction/abduce.c, FN_set_ptr_param_array_get_null_bad, 3, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure FN_set_ptr_param_array_get_null_bad()] -codetoanalyze/c/biabduction/arrays.c, DecodeCurrentValue, 5, Assert_failure, no_bucket, ERROR, [start of procedure DecodeCurrentValue(),start of procedure GetVarint64Ptr(),Loop condition is true. Entering loop body,Loop condition is true. Entering loop body,Taking true branch,return from a call to GetVarint64Ptr,Loop condition is false. Leaving loop,start of procedure GetVarint64Ptr(),Loop condition is true. Entering loop body,Loop condition is false. Leaving loop,return from a call to GetVarint64Ptr] -codetoanalyze/c/biabduction/example.c, bar, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure bar()] -codetoanalyze/c/biabduction/example.c, foo, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure foo()] -codetoanalyze/c/biabduction/example.c, global_addr_alias_bad, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure global_addr_alias_bad(),Taking true branch] -codetoanalyze/c/biabduction/example.c, local_addr_noalias_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure local_addr_noalias_bad(),Taking true branch] -codetoanalyze/c/biabduction/example.c, null_dereference_following_function_pointer_call_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure null_dereference_following_function_pointer_call_bad(),Skipping __function_pointer__(): unresolved function pointer] -codetoanalyze/c/biabduction/nulluse.c, fail, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure fail(),Taking true branch] -codetoanalyze/c/biabduction/shift.c, return_null_deref1_bad, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure return_null_deref1_bad(),start of procedure return_depends_on_lshift(),Taking true branch,return from a call to return_depends_on_lshift] -codetoanalyze/c/biabduction/shift.c, return_null_deref2_bad, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure return_null_deref2_bad(),start of procedure return_depends_on_rshift(),Taking true branch,return from a call to return_depends_on_rshift] +codetoanalyze/c/biabduction/arithmetic/array_out_of_bounds.c, bound_error, 2, ARRAY_OUT_OF_BOUNDS_L1, no_bucket +codetoanalyze/c/biabduction/arithmetic/array_out_of_bounds.c, bound_error_nested, 2, ARRAY_OUT_OF_BOUNDS_L1, no_bucket +codetoanalyze/c/biabduction/arithmetic/divide_by_zero.c, arith_divide_by_zero, 3, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/arithmetic/unsigned_values.c, signed_array, 3, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/arithmetic/unsigned_values.c, signed_field, 3, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/arithmetic/unsigned_values.c, signed_int, 3, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/arithmetic/unsigned_values.c, signed_int_ptr, 3, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/assertions/assertion_example.c, report_div0_and_no_npe, 2, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/assertions/assertion_failure.c, assertion_failure_with_heap, 7, ASSERTION_FAILURE, no_bucket +codetoanalyze/c/biabduction/assertions/assertion_failure.c, assignemt_before_check, 3, ASSERTION_FAILURE, no_bucket +codetoanalyze/c/biabduction/assertions/assertion_failure.c, failure_on_both_branches, 6, ASSERTION_FAILURE, no_bucket +codetoanalyze/c/biabduction/assertions/assertion_failure.c, should_report_assertion_failure, 3, ASSERTION_FAILURE, no_bucket +codetoanalyze/c/biabduction/assertions/assertion_failure.c, simple_assertion_failure, 3, ASSERTION_FAILURE, no_bucket +codetoanalyze/c/biabduction/attributes/sentinel.c, truncated_call, 5, PREMATURE_NIL_TERMINATION_ARGUMENT, B1 +codetoanalyze/c/biabduction/custom_error/custom.c, paf, 3, UNEXPECTED_NEGATIVE_EXPONENT, no_bucket +codetoanalyze/c/biabduction/custom_error/custom.c, pouf, 3, UNEXPECTED_NEGATIVE_EXPONENT, no_bucket +codetoanalyze/c/biabduction/dangling_deref/dpd.c, dpd, 3, DANGLING_POINTER_DEREFERENCE, no_bucket +codetoanalyze/c/biabduction/dangling_deref/dpd.c, intraprocdpd, 3, DANGLING_POINTER_DEREFERENCE, no_bucket +codetoanalyze/c/biabduction/dangling_deref/dpd.c, nodpd1, 3, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/initialization/compound_literal.c, divide_by_zero, 0, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/initialization/initlistexpr.c, init_divide_by_zero, 2, Assert_failure, no_bucket +codetoanalyze/c/biabduction/initialization/initlistexpr.c, init_divide_by_zero, 2, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/lists/list_api.c, FP_list_build_and_free_good, 11, MEMORY_LEAK, no_bucket +codetoanalyze/c/biabduction/lists/lists.c, call_delete_all2, 5, PRECONDITION_NOT_MET, no_bucket +codetoanalyze/c/biabduction/lists/lists.c, lists_main, 2, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/local_vars/local_vars.c, m1, 6, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/local_vars/local_vars.c, m2, 9, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/local_vars/local_vars.c, mm, 6, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/local_vars/local_vars.c, t, 8, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/memory_leaks/cleanup_attribute.c, FP_cleanup_malloc_good, 4, MEMORY_LEAK, no_bucket +codetoanalyze/c/biabduction/memory_leaks/cleanup_attribute.c, FP_cleanup_string_good, 2, MEMORY_LEAK, no_bucket +codetoanalyze/c/biabduction/memory_leaks/test.c, common_realloc_leak, 3, MEMORY_LEAK, no_bucket +codetoanalyze/c/biabduction/memory_leaks/test.c, common_realloc_leak2, 3, MEMORY_LEAK, no_bucket +codetoanalyze/c/biabduction/memory_leaks/test.c, common_realloc_leak2, 5, NULL_TEST_AFTER_DEREFERENCE, no_bucket +codetoanalyze/c/biabduction/memory_leaks/test.c, conditional_last_instruction, 2, MEMORY_LEAK, no_bucket +codetoanalyze/c/biabduction/memory_leaks/test.c, malloc_sizeof_value_leak_bad, 7, MEMORY_LEAK, no_bucket +codetoanalyze/c/biabduction/memory_leaks/test.c, malloc_sizeof_value_leak_bad, 8, ARRAY_OUT_OF_BOUNDS_L3, no_bucket +codetoanalyze/c/biabduction/memory_leaks/test.c, simple_leak, 2, MEMORY_LEAK, no_bucket +codetoanalyze/c/biabduction/memory_leaks/test.c, uses_allocator, 3, MEMORY_LEAK, no_bucket +codetoanalyze/c/biabduction/misc/abduce.c, FN_set_ptr_param_array_get_null_bad, 3, PRECONDITION_NOT_MET, no_bucket +codetoanalyze/c/biabduction/misc/arrays.c, DecodeCurrentValue, 5, Assert_failure, no_bucket +codetoanalyze/c/biabduction/misc/example.c, bar, 2, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/biabduction/misc/example.c, global_addr_alias_bad, 3, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/misc/example.c, local_addr_noalias_bad, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/misc/example.c, null_deref_bad, 2, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/misc/example.c, null_dereference_following_function_pointer_call_bad, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/misc/nulluse.c, deref_after_null_check_bad, 2, NULL_DEREFERENCE, B5 +codetoanalyze/c/biabduction/misc/shift.c, return_null_deref1_bad, 2, NULL_DEREFERENCE, B5 +codetoanalyze/c/biabduction/misc/shift.c, return_null_deref2_bad, 2, NULL_DEREFERENCE, B5 +codetoanalyze/c/biabduction/mutex/pthread_create.c, pthread_create_deref_bad, 2, NULL_DEREFERENCE, B5 +codetoanalyze/c/biabduction/mutex/pthread_mutex.c, double_init_bad, 2, PRECONDITION_NOT_MET, no_bucket +codetoanalyze/c/biabduction/mutex/pthread_mutex.c, double_lock_bad2, 4, LOCKING_ALREADY_LOCKED_MUTEX, no_bucket +codetoanalyze/c/biabduction/mutex/pthread_mutex.c, double_lock_bad2, 4, LOCKING_UNINITIALIZED_MUTEX, no_bucket +codetoanalyze/c/biabduction/mutex/pthread_mutex.c, double_lock_uninit_bad, 3, LOCKING_ALREADY_LOCKED_MUTEX, no_bucket +codetoanalyze/c/biabduction/mutex/pthread_mutex.c, double_lock_uninit_bad, 3, LOCKING_UNINITIALIZED_MUTEX, no_bucket +codetoanalyze/c/biabduction/mutex/pthread_mutex.c, double_unlock_bad, 3, UNLOCKING_UNLOCKED_MUTEX, no_bucket +codetoanalyze/c/biabduction/mutex/pthread_mutex.c, double_unlock_bad2, 5, UNLOCKING_UNLOCKED_MUTEX, no_bucket +codetoanalyze/c/biabduction/mutex/pthread_spinlock.c, spinlock_double_lock_bad, 3, LOCKING_ALREADY_LOCKED_SPINLOCK, no_bucket +codetoanalyze/c/biabduction/mutex/pthread_spinlock.c, spinlock_double_lock_bad2, 3, LOCKING_ALREADY_LOCKED_SPINLOCK, no_bucket +codetoanalyze/c/biabduction/null_dereference/angelism.c, bake, 2, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/angelism.c, call_by_ref_actual_already_in_footprint_bad, 1, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/angelism.c, struct_value_by_ref_callee_write_no_skip, 3, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/angelism.c, struct_value_by_ref_callee_write_skip, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/angelism.c, struct_value_by_ref_ptr_write, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/angelism.c, struct_value_from_pointer_skip_bad, 3, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/angelism.c, struct_value_skip_null_deref, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/exit_example.c, exit_example_bad, 5, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_clearerr, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_feof, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_ferror, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_fgetc, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_fgetpos, 5, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_fgets, 5, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_fileno, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_fprintf, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_fputc, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_fputs, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_fseeks, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_fsetpos, 5, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_ftell, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_getc, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_putc, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_rewind, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_ungetc, 5, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getc.c, crash_vfprintf, 5, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getcwd.c, getcwd_no_buf_no_check_bad, 2, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/getcwd.c, getcwd_no_buf_no_free_bad, 3, MEMORY_LEAK, no_bucket +codetoanalyze/c/biabduction/null_dereference/getcwd.c, getcwd_no_check_bad, 3, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/issue_680.c, null_ptr_deref2_bad, 0, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/issue_680.c, null_ptr_deref_bad, 0, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/issue_680.c, null_ptr_deref_bad_FN, 0, PRECONDITION_NOT_MET, no_bucket +codetoanalyze/c/biabduction/null_dereference/malloc_no_null_check.c, test_malloc, 2, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/memcpy-test.c, testError1, 3, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/memcpy-test.c, testError2, 5, NULL_DEREFERENCE, B5 +codetoanalyze/c/biabduction/null_dereference/memcpy-test.c, testError3, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c, basic_null_dereference, 2, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c, function_call_can_return_null_pointer, 3, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c, no_check_for_null_after_malloc, 3, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c, no_check_for_null_after_realloc, 9, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c, null_passed_as_argument, 1, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c, null_pointer_interproc, 2, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c, null_pointer_with_function_pointer, 4, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c, potentially_null_pointer_passed_as_argument, 3, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c, simple_null_pointer, 2, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c, unreachable_null_no_return_ok_FP, 5, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/short.c, ternary2_bad, 2, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/short.c, ternary4_bad, 2, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_dereference/short.c, ternary7_bad, 2, NULL_DEREFERENCE, B1 +codetoanalyze/c/biabduction/null_test_after_deref/basic.c, null_test_deref_basic_bad, 2, NULL_TEST_AFTER_DEREFERENCE, no_bucket +codetoanalyze/c/biabduction/resource_leaks/leak.c, fileNotClosed, 5, RESOURCE_LEAK, no_bucket +codetoanalyze/c/biabduction/resource_leaks/leak.c, socketNotClosed, 5, RESOURCE_LEAK, no_bucket +codetoanalyze/c/biabduction/sizeof/sizeof_706.c, sentinel_bad, 0, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/frontend/enumeration/other_enum.c, other_enum_test, 4, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/frontend/offsetof_expr/offsetof_expr.c, test_offsetof_expr, 3, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/frontend/offsetof_expr/offsetof_expr.c, test_offsetof_expr_nonlit, 6, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/frontend/vaarg_expr/vaarg_expr.c, vaarg_foo, 6, DIVIDE_BY_ZERO, no_bucket +codetoanalyze/c/frontend/vaarg_expr/vaarg_expr.c, vaarg_foo, 8, DIVIDE_BY_ZERO, no_bucket diff --git a/infer/tests/codetoanalyze/c/errors/lists/list_api.c b/infer/tests/codetoanalyze/c/biabduction/lists/list_api.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/lists/list_api.c rename to infer/tests/codetoanalyze/c/biabduction/lists/list_api.c diff --git a/infer/tests/codetoanalyze/c/errors/lists/lists.c b/infer/tests/codetoanalyze/c/biabduction/lists/lists.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/lists/lists.c rename to infer/tests/codetoanalyze/c/biabduction/lists/lists.c diff --git a/infer/tests/codetoanalyze/c/errors/local_vars/local_vars.c b/infer/tests/codetoanalyze/c/biabduction/local_vars/local_vars.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/local_vars/local_vars.c rename to infer/tests/codetoanalyze/c/biabduction/local_vars/local_vars.c diff --git a/infer/tests/codetoanalyze/c/errors/memory_leaks/cleanup_attribute.c b/infer/tests/codetoanalyze/c/biabduction/memory_leaks/cleanup_attribute.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/memory_leaks/cleanup_attribute.c rename to infer/tests/codetoanalyze/c/biabduction/memory_leaks/cleanup_attribute.c diff --git a/infer/tests/codetoanalyze/c/errors/memory_leaks/test.c b/infer/tests/codetoanalyze/c/biabduction/memory_leaks/test.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/memory_leaks/test.c rename to infer/tests/codetoanalyze/c/biabduction/memory_leaks/test.c diff --git a/infer/tests/codetoanalyze/c/biabduction/abduce.c b/infer/tests/codetoanalyze/c/biabduction/misc/abduce.c similarity index 100% rename from infer/tests/codetoanalyze/c/biabduction/abduce.c rename to infer/tests/codetoanalyze/c/biabduction/misc/abduce.c diff --git a/infer/tests/codetoanalyze/c/biabduction/arrays.c b/infer/tests/codetoanalyze/c/biabduction/misc/arrays.c similarity index 100% rename from infer/tests/codetoanalyze/c/biabduction/arrays.c rename to infer/tests/codetoanalyze/c/biabduction/misc/arrays.c diff --git a/infer/tests/codetoanalyze/c/biabduction/example.c b/infer/tests/codetoanalyze/c/biabduction/misc/example.c similarity index 97% rename from infer/tests/codetoanalyze/c/biabduction/example.c rename to infer/tests/codetoanalyze/c/biabduction/misc/example.c index ebf70f46b..10ceff3f0 100644 --- a/infer/tests/codetoanalyze/c/biabduction/example.c +++ b/infer/tests/codetoanalyze/c/biabduction/misc/example.c @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -void foo() { +void null_deref_bad() { int* p = 0; *p = 42; } diff --git a/infer/tests/codetoanalyze/c/biabduction/nulluse.c b/infer/tests/codetoanalyze/c/biabduction/misc/nulluse.c similarity index 76% rename from infer/tests/codetoanalyze/c/biabduction/nulluse.c rename to infer/tests/codetoanalyze/c/biabduction/misc/nulluse.c index 440779ea8..7ea8a324e 100644 --- a/infer/tests/codetoanalyze/c/biabduction/nulluse.c +++ b/infer/tests/codetoanalyze/c/biabduction/misc/nulluse.c @@ -17,25 +17,23 @@ struct S { void* x; }; -void doit(void** x) { +void call_global_fun_ptr_ok(void** x) { if (global != 0) { global(x); } } -void f(struct S* s) { +void test_null_then_deref_ok(struct S* s) { if (s == 0) return; - doit(&s->x); + call_global_fun_ptr_ok(&s->x); if (s->t->go) { // should *not* give NULL_TEST_AFTER_DEREFERENCE s->t->go(); } } -void fail(int* x) { +void deref_after_null_check_bad(int* x) { if (x == 0) { *x = 1; // should give NULL_DEREFERENCE } } - -int main() {} diff --git a/infer/tests/codetoanalyze/c/biabduction/shift.c b/infer/tests/codetoanalyze/c/biabduction/misc/shift.c similarity index 100% rename from infer/tests/codetoanalyze/c/biabduction/shift.c rename to infer/tests/codetoanalyze/c/biabduction/misc/shift.c diff --git a/infer/tests/codetoanalyze/c/errors/mutex/pthread_create.c b/infer/tests/codetoanalyze/c/biabduction/mutex/pthread_create.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/mutex/pthread_create.c rename to infer/tests/codetoanalyze/c/biabduction/mutex/pthread_create.c diff --git a/infer/tests/codetoanalyze/c/errors/mutex/pthread_mutex.c b/infer/tests/codetoanalyze/c/biabduction/mutex/pthread_mutex.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/mutex/pthread_mutex.c rename to infer/tests/codetoanalyze/c/biabduction/mutex/pthread_mutex.c diff --git a/infer/tests/codetoanalyze/c/errors/mutex/pthread_spinlock.c b/infer/tests/codetoanalyze/c/biabduction/mutex/pthread_spinlock.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/mutex/pthread_spinlock.c rename to infer/tests/codetoanalyze/c/biabduction/mutex/pthread_spinlock.c diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/angelism.c b/infer/tests/codetoanalyze/c/biabduction/null_dereference/angelism.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/null_dereference/angelism.c rename to infer/tests/codetoanalyze/c/biabduction/null_dereference/angelism.c diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/asm_angelism.c b/infer/tests/codetoanalyze/c/biabduction/null_dereference/asm_angelism.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/null_dereference/asm_angelism.c rename to infer/tests/codetoanalyze/c/biabduction/null_dereference/asm_angelism.c diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/exit_example.c b/infer/tests/codetoanalyze/c/biabduction/null_dereference/exit_example.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/null_dereference/exit_example.c rename to infer/tests/codetoanalyze/c/biabduction/null_dereference/exit_example.c diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/getc.c b/infer/tests/codetoanalyze/c/biabduction/null_dereference/getc.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/null_dereference/getc.c rename to infer/tests/codetoanalyze/c/biabduction/null_dereference/getc.c diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/getcwd.c b/infer/tests/codetoanalyze/c/biabduction/null_dereference/getcwd.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/null_dereference/getcwd.c rename to infer/tests/codetoanalyze/c/biabduction/null_dereference/getcwd.c diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/issue_680.c b/infer/tests/codetoanalyze/c/biabduction/null_dereference/issue_680.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/null_dereference/issue_680.c rename to infer/tests/codetoanalyze/c/biabduction/null_dereference/issue_680.c diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/malloc_no_null_check.c b/infer/tests/codetoanalyze/c/biabduction/null_dereference/malloc_no_null_check.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/null_dereference/malloc_no_null_check.c rename to infer/tests/codetoanalyze/c/biabduction/null_dereference/malloc_no_null_check.c diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/memcpy-test.c b/infer/tests/codetoanalyze/c/biabduction/null_dereference/memcpy-test.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/null_dereference/memcpy-test.c rename to infer/tests/codetoanalyze/c/biabduction/null_dereference/memcpy-test.c diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c b/infer/tests/codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c rename to infer/tests/codetoanalyze/c/biabduction/null_dereference/null_pointer_dereference.c diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/setlocale.c b/infer/tests/codetoanalyze/c/biabduction/null_dereference/setlocale.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/null_dereference/setlocale.c rename to infer/tests/codetoanalyze/c/biabduction/null_dereference/setlocale.c diff --git a/infer/tests/codetoanalyze/c/errors/null_dereference/short.c b/infer/tests/codetoanalyze/c/biabduction/null_dereference/short.c similarity index 74% rename from infer/tests/codetoanalyze/c/errors/null_dereference/short.c rename to infer/tests/codetoanalyze/c/biabduction/null_dereference/short.c index 7cfa31d86..9089fbad3 100644 --- a/infer/tests/codetoanalyze/c/errors/null_dereference/short.c +++ b/infer/tests/codetoanalyze/c/biabduction/null_dereference/short.c @@ -11,53 +11,52 @@ struct data { static struct data d; -int f(int x) { +int ternary1_ok(int x) { struct data* p = x ? &d : 0; return (p && p->flag); } -int f_error(int x) { +int ternary2_bad(int x) { struct data* p = x ? &d : 0; return p->flag && p; // NULL_DEREF } -int g(int x) { +int ternary3_ok(int x) { struct data* p = x ? &d : 0; return !(p && p->flag); // OK } -int h(int x) { +int ternary4_ok(int x) { struct data* p = x ? &d : 0; return !(p && p->flag); // OK } -int g_error(int x) { +int ternary4_bad(int x) { struct data* p = x ? &d : 0; return !(p->flag && p); // NULL_DEREF } -int k(int x) { +int ternary5_ok(int x) { struct data* p = x ? &d : 0; return !(p && p->flag); // OK } -int l(int x) { +int ternary6_ok(int x) { struct data* p = x ? &d : 0; return !p || p->flag; // OK } -int l_error(int x) { +int ternary7_bad(int x) { struct data* p = x ? &d : 0; return p || p->flag; // NULL_DEREF } -int m(int x) { +int ternary8_ok(int x) { struct data* p = x ? &d : 0; - return (!p || p->flag) && !(p && p->flag); - ; // OK + return (!p || p->flag) && !(p && p->flag); // OK } -int n(int x) { +int ternary9_ok(int x) { struct data* p = x ? &d : 0; return p && (p->flag || !(p->flag)); // OK } diff --git a/infer/tests/codetoanalyze/c/errors/null_test_after_deref/basic.c b/infer/tests/codetoanalyze/c/biabduction/null_test_after_deref/basic.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/null_test_after_deref/basic.c rename to infer/tests/codetoanalyze/c/biabduction/null_test_after_deref/basic.c diff --git a/infer/tests/codetoanalyze/c/errors/offsetof_expr/offsetof_expr.c b/infer/tests/codetoanalyze/c/biabduction/offsetof_expr/offsetof_expr.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/offsetof_expr/offsetof_expr.c rename to infer/tests/codetoanalyze/c/biabduction/offsetof_expr/offsetof_expr.c diff --git a/infer/tests/codetoanalyze/c/errors/resource_leaks/leak.c b/infer/tests/codetoanalyze/c/biabduction/resource_leaks/leak.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/resource_leaks/leak.c rename to infer/tests/codetoanalyze/c/biabduction/resource_leaks/leak.c diff --git a/infer/tests/codetoanalyze/c/errors/sizeof/sizeof_706.c b/infer/tests/codetoanalyze/c/biabduction/sizeof/sizeof_706.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/sizeof/sizeof_706.c rename to infer/tests/codetoanalyze/c/biabduction/sizeof/sizeof_706.c diff --git a/infer/tests/codetoanalyze/c/errors/vaarg_expr/vaarg_expr.c b/infer/tests/codetoanalyze/c/biabduction/vaarg_expr/vaarg_expr.c similarity index 100% rename from infer/tests/codetoanalyze/c/errors/vaarg_expr/vaarg_expr.c rename to infer/tests/codetoanalyze/c/biabduction/vaarg_expr/vaarg_expr.c diff --git a/infer/tests/codetoanalyze/c/errors/Makefile b/infer/tests/codetoanalyze/c/errors/Makefile deleted file mode 100644 index 096688636..000000000 --- a/infer/tests/codetoanalyze/c/errors/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (c) Facebook, Inc. and its affiliates. -# -# This source code is licensed under the MIT license found in the -# LICENSE file in the root directory of this source tree. - -TESTS_DIR = ../../.. - -CLANG_OPTIONS = -c -INFER_OPTIONS = \ - --biabduction-only --report-custom-error --developer-mode --no-filtering --debug-exceptions \ - --project-root $(TESTS_DIR) \ - -# we need to disable traces in C tests because assertions/assertion_failure.c has different traces -# on Linux and OSX because of different implementations of assert() on each platform -INFERPRINT_OPTIONS = --issues-tests-fields "file,procedure,line_offset,bug_type,bucket" --issues-tests - -SOURCES = \ - $(wildcard */*.c) \ - -include $(TESTS_DIR)/clang.make diff --git a/infer/tests/codetoanalyze/c/errors/issues.exp b/infer/tests/codetoanalyze/c/errors/issues.exp deleted file mode 100644 index 16d2f3298..000000000 --- a/infer/tests/codetoanalyze/c/errors/issues.exp +++ /dev/null @@ -1,107 +0,0 @@ -codetoanalyze/c/errors/arithmetic/array_out_of_bounds.c, bound_error, 2, ARRAY_OUT_OF_BOUNDS_L1, no_bucket -codetoanalyze/c/errors/arithmetic/array_out_of_bounds.c, bound_error_nested, 2, ARRAY_OUT_OF_BOUNDS_L1, no_bucket -codetoanalyze/c/errors/arithmetic/divide_by_zero.c, arith_divide_by_zero, 3, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/arithmetic/unsigned_values.c, signed_array, 3, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/arithmetic/unsigned_values.c, signed_field, 3, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/arithmetic/unsigned_values.c, signed_int, 3, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/arithmetic/unsigned_values.c, signed_int_ptr, 3, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/assertions/assertion_example.c, report_div0_and_no_npe, 2, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/assertions/assertion_failure.c, assertion_failure_with_heap, 7, ASSERTION_FAILURE, no_bucket -codetoanalyze/c/errors/assertions/assertion_failure.c, assignemt_before_check, 3, ASSERTION_FAILURE, no_bucket -codetoanalyze/c/errors/assertions/assertion_failure.c, failure_on_both_branches, 6, ASSERTION_FAILURE, no_bucket -codetoanalyze/c/errors/assertions/assertion_failure.c, should_report_assertion_failure, 3, ASSERTION_FAILURE, no_bucket -codetoanalyze/c/errors/assertions/assertion_failure.c, simple_assertion_failure, 3, ASSERTION_FAILURE, no_bucket -codetoanalyze/c/errors/attributes/sentinel.c, truncated_call, 5, PREMATURE_NIL_TERMINATION_ARGUMENT, B1 -codetoanalyze/c/errors/custom_error/custom.c, paf, 3, UNEXPECTED_NEGATIVE_EXPONENT, no_bucket -codetoanalyze/c/errors/custom_error/custom.c, pouf, 3, UNEXPECTED_NEGATIVE_EXPONENT, no_bucket -codetoanalyze/c/errors/dangling_deref/dpd.c, dpd, 3, DANGLING_POINTER_DEREFERENCE, no_bucket -codetoanalyze/c/errors/dangling_deref/dpd.c, intraprocdpd, 3, DANGLING_POINTER_DEREFERENCE, no_bucket -codetoanalyze/c/errors/dangling_deref/dpd.c, nodpd1, 3, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/initialization/compound_literal.c, divide_by_zero, 0, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/initialization/initlistexpr.c, init_divide_by_zero, 2, Assert_failure, no_bucket -codetoanalyze/c/errors/initialization/initlistexpr.c, init_divide_by_zero, 2, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/lists/list_api.c, FP_list_build_and_free_good, 11, MEMORY_LEAK, no_bucket -codetoanalyze/c/errors/lists/lists.c, call_delete_all2, 5, PRECONDITION_NOT_MET, no_bucket -codetoanalyze/c/errors/lists/lists.c, lists_main, 2, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/local_vars/local_vars.c, m1, 6, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/local_vars/local_vars.c, m2, 9, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/local_vars/local_vars.c, mm, 6, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/local_vars/local_vars.c, t, 8, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/errors/memory_leaks/cleanup_attribute.c, FP_cleanup_malloc_good, 4, MEMORY_LEAK, no_bucket -codetoanalyze/c/errors/memory_leaks/cleanup_attribute.c, FP_cleanup_string_good, 2, MEMORY_LEAK, no_bucket -codetoanalyze/c/errors/memory_leaks/test.c, common_realloc_leak, 3, MEMORY_LEAK, no_bucket -codetoanalyze/c/errors/memory_leaks/test.c, common_realloc_leak2, 3, MEMORY_LEAK, no_bucket -codetoanalyze/c/errors/memory_leaks/test.c, common_realloc_leak2, 5, NULL_TEST_AFTER_DEREFERENCE, no_bucket -codetoanalyze/c/errors/memory_leaks/test.c, conditional_last_instruction, 2, MEMORY_LEAK, no_bucket -codetoanalyze/c/errors/memory_leaks/test.c, malloc_sizeof_value_leak_bad, 7, MEMORY_LEAK, no_bucket -codetoanalyze/c/errors/memory_leaks/test.c, malloc_sizeof_value_leak_bad, 8, ARRAY_OUT_OF_BOUNDS_L3, no_bucket -codetoanalyze/c/errors/memory_leaks/test.c, simple_leak, 2, MEMORY_LEAK, no_bucket -codetoanalyze/c/errors/memory_leaks/test.c, uses_allocator, 3, MEMORY_LEAK, no_bucket -codetoanalyze/c/errors/mutex/pthread_create.c, pthread_create_deref_bad, 2, NULL_DEREFERENCE, B5 -codetoanalyze/c/errors/mutex/pthread_mutex.c, double_init_bad, 2, PRECONDITION_NOT_MET, no_bucket -codetoanalyze/c/errors/mutex/pthread_mutex.c, double_lock_bad2, 4, LOCKING_ALREADY_LOCKED_MUTEX, no_bucket -codetoanalyze/c/errors/mutex/pthread_mutex.c, double_lock_bad2, 4, LOCKING_UNINITIALIZED_MUTEX, no_bucket -codetoanalyze/c/errors/mutex/pthread_mutex.c, double_lock_uninit_bad, 3, LOCKING_ALREADY_LOCKED_MUTEX, no_bucket -codetoanalyze/c/errors/mutex/pthread_mutex.c, double_lock_uninit_bad, 3, LOCKING_UNINITIALIZED_MUTEX, no_bucket -codetoanalyze/c/errors/mutex/pthread_mutex.c, double_unlock_bad, 3, UNLOCKING_UNLOCKED_MUTEX, no_bucket -codetoanalyze/c/errors/mutex/pthread_mutex.c, double_unlock_bad2, 5, UNLOCKING_UNLOCKED_MUTEX, no_bucket -codetoanalyze/c/errors/mutex/pthread_spinlock.c, spinlock_double_lock_bad, 3, LOCKING_ALREADY_LOCKED_SPINLOCK, no_bucket -codetoanalyze/c/errors/mutex/pthread_spinlock.c, spinlock_double_lock_bad2, 3, LOCKING_ALREADY_LOCKED_SPINLOCK, no_bucket -codetoanalyze/c/errors/null_dereference/angelism.c, bake, 2, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/angelism.c, call_by_ref_actual_already_in_footprint_bad, 1, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/angelism.c, struct_value_by_ref_callee_write_no_skip, 3, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/angelism.c, struct_value_by_ref_callee_write_skip, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/angelism.c, struct_value_by_ref_ptr_write, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/angelism.c, struct_value_from_pointer_skip_bad, 3, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/angelism.c, struct_value_skip_null_deref, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/exit_example.c, exit_example_bad, 5, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_clearerr, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_feof, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_ferror, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_fgetc, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_fgetpos, 5, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_fgets, 5, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_fileno, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_fprintf, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_fputc, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_fputs, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_fseeks, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_fsetpos, 5, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_ftell, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_getc, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_putc, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_rewind, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_ungetc, 5, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getc.c, crash_vfprintf, 5, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getcwd.c, getcwd_no_buf_no_check_bad, 2, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/getcwd.c, getcwd_no_buf_no_free_bad, 3, MEMORY_LEAK, no_bucket -codetoanalyze/c/errors/null_dereference/getcwd.c, getcwd_no_check_bad, 3, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/issue_680.c, null_ptr_deref2_bad, 0, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/issue_680.c, null_ptr_deref_bad, 0, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/issue_680.c, null_ptr_deref_bad_FN, 0, PRECONDITION_NOT_MET, no_bucket -codetoanalyze/c/errors/null_dereference/malloc_no_null_check.c, test_malloc, 2, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/memcpy-test.c, testError1, 3, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/memcpy-test.c, testError2, 5, NULL_DEREFERENCE, B5 -codetoanalyze/c/errors/null_dereference/memcpy-test.c, testError3, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c, basic_null_dereference, 2, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c, function_call_can_return_null_pointer, 3, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c, no_check_for_null_after_malloc, 3, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c, no_check_for_null_after_realloc, 9, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c, null_passed_as_argument, 1, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c, null_pointer_interproc, 2, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c, null_pointer_with_function_pointer, 4, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c, potentially_null_pointer_passed_as_argument, 3, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c, simple_null_pointer, 2, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/null_pointer_dereference.c, unreachable_null_no_return_ok_FP, 5, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/short.c, f_error, 2, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/short.c, g_error, 2, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_dereference/short.c, l_error, 2, NULL_DEREFERENCE, B1 -codetoanalyze/c/errors/null_test_after_deref/basic.c, null_test_deref_basic_bad, 2, NULL_TEST_AFTER_DEREFERENCE, no_bucket -codetoanalyze/c/errors/resource_leaks/leak.c, fileNotClosed, 5, RESOURCE_LEAK, no_bucket -codetoanalyze/c/errors/resource_leaks/leak.c, socketNotClosed, 5, RESOURCE_LEAK, no_bucket -codetoanalyze/c/errors/sizeof/sizeof_706.c, sentinel_bad, 0, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/frontend/enumeration/other_enum.c, other_enum_test, 4, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/frontend/offsetof_expr/offsetof_expr.c, test_offsetof_expr, 3, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/frontend/offsetof_expr/offsetof_expr.c, test_offsetof_expr_nonlit, 6, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/frontend/vaarg_expr/vaarg_expr.c, vaarg_foo, 6, DIVIDE_BY_ZERO, no_bucket -codetoanalyze/c/frontend/vaarg_expr/vaarg_expr.c, vaarg_foo, 8, DIVIDE_BY_ZERO, no_bucket diff --git a/infer/tests/codetoanalyze/c/performance/Makefile b/infer/tests/codetoanalyze/c/performance/Makefile index 916c9d9fc..81ae1a741 100644 --- a/infer/tests/codetoanalyze/c/performance/Makefile +++ b/infer/tests/codetoanalyze/c/performance/Makefile @@ -5,7 +5,6 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem CLANG_OPTIONS = -c INFER_OPTIONS = --cost-only --bufferoverrun --debug-exceptions --project-root $(TESTS_DIR) \ --use-cost-threshold diff --git a/infer/tests/codetoanalyze/cpp/annotation-reachability/Makefile b/infer/tests/codetoanalyze/cpp/annotation-reachability/Makefile index a3ceaa27d..c4ebf9285 100644 --- a/infer/tests/codetoanalyze/cpp/annotation-reachability/Makefile +++ b/infer/tests/codetoanalyze/cpp/annotation-reachability/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++11 -nostdinc++ -isystem$(ROOT_DIR) -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --annotation-reachability-only --debug-exceptions --project-root $(TESTS_DIR) \ --annotation-reachability-cxx '{ \ diff --git a/infer/tests/codetoanalyze/cpp/errors/Makefile b/infer/tests/codetoanalyze/cpp/biabduction/Makefile similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/Makefile rename to infer/tests/codetoanalyze/cpp/biabduction/Makefile diff --git a/infer/tests/codetoanalyze/cpp/errors/assertions/check_examples.cpp b/infer/tests/codetoanalyze/cpp/biabduction/assertions/check_examples.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/assertions/check_examples.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/assertions/check_examples.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/biabduction/process_splitting_assert.cpp b/infer/tests/codetoanalyze/cpp/biabduction/biabduction/process_splitting_assert.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/biabduction/process_splitting_assert.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/biabduction/process_splitting_assert.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/c_tests/c_bugs.cpp b/infer/tests/codetoanalyze/cpp/biabduction/c_tests/c_bugs.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/c_tests/c_bugs.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/c_tests/c_bugs.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/generic_models/generic_model.cpp b/infer/tests/codetoanalyze/cpp/biabduction/generic_models/generic_model.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/generic_models/generic_model.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/generic_models/generic_model.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/generic_models/generic_model.h b/infer/tests/codetoanalyze/cpp/biabduction/generic_models/generic_model.h similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/generic_models/generic_model.h rename to infer/tests/codetoanalyze/cpp/biabduction/generic_models/generic_model.h diff --git a/infer/tests/codetoanalyze/cpp/errors/generic_models/generic_model_test.cpp b/infer/tests/codetoanalyze/cpp/biabduction/generic_models/generic_model_test.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/generic_models/generic_model_test.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/generic_models/generic_model_test.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/include_header/header.h b/infer/tests/codetoanalyze/cpp/biabduction/include_header/header.h similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/include_header/header.h rename to infer/tests/codetoanalyze/cpp/biabduction/include_header/header.h diff --git a/infer/tests/codetoanalyze/cpp/errors/include_header/header2.h b/infer/tests/codetoanalyze/cpp/biabduction/include_header/header2.h similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/include_header/header2.h rename to infer/tests/codetoanalyze/cpp/biabduction/include_header/header2.h diff --git a/infer/tests/codetoanalyze/cpp/errors/include_header/include_templ.cpp b/infer/tests/codetoanalyze/cpp/biabduction/include_header/include_templ.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/include_header/include_templ.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/include_header/include_templ.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/issues.exp b/infer/tests/codetoanalyze/cpp/biabduction/issues.exp similarity index 51% rename from infer/tests/codetoanalyze/cpp/errors/issues.exp rename to infer/tests/codetoanalyze/cpp/biabduction/issues.exp index e67b0e3fa..90cc27b74 100644 --- a/infer/tests/codetoanalyze/cpp/errors/issues.exp +++ b/infer/tests/codetoanalyze/cpp/biabduction/issues.exp @@ -1,159 +1,159 @@ -codetoanalyze/cpp/errors/biabduction/process_splitting_assert.cpp, fail, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure fail(),Taking true branch] -codetoanalyze/cpp/errors/c_tests/c_bugs.cpp, crash_fgetc, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure crash_fgetc()] -codetoanalyze/cpp/errors/c_tests/c_bugs.cpp, crash_getc, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure crash_getc()] -codetoanalyze/cpp/errors/c_tests/c_bugs.cpp, malloc_fail_gets_reported, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure malloc_fail_gets_reported()] -codetoanalyze/cpp/errors/c_tests/c_bugs.cpp, malloc_memory_leak_is_reported, 0, MEMORY_LEAK, no_bucket, ERROR, [start of procedure malloc_memory_leak_is_reported()] -codetoanalyze/cpp/errors/c_tests/c_bugs.cpp, memcpy_spec_is_found, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure memcpy_spec_is_found()] -codetoanalyze/cpp/errors/c_tests/c_bugs.cpp, resource_leak_is_reported, 0, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure resource_leak_is_reported()] -codetoanalyze/cpp/errors/include_header/header.h, header::A::div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure div0] -codetoanalyze/cpp/errors/include_header/header.h, header::div0_fun, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure header::div0_fun()] -codetoanalyze/cpp/errors/include_header/header2.h, header2::B::div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure div0] -codetoanalyze/cpp/errors/include_header/header2.h, header2::B::div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure div0] -codetoanalyze/cpp/errors/include_header/header2.h, header2::div0_templ, 1, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure header2::div0_templ()] -codetoanalyze/cpp/errors/include_header/header2.h, header2::div0_templ, 1, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure header2::div0_templ()] -codetoanalyze/cpp/errors/memory_leaks/array_leak.cpp, leak, 4, MEMORY_LEAK, CPP, ERROR, [start of procedure leak()] -codetoanalyze/cpp/errors/memory_leaks/object_leak.cpp, object_leak, 0, MEMORY_LEAK, CPP, ERROR, [start of procedure object_leak(),start of procedure Rectangle,return from a call to Rectangle::Rectangle] -codetoanalyze/cpp/errors/memory_leaks/raii_malloc.cpp, memory_leak, 0, MEMORY_LEAK, no_bucket, ERROR, [start of procedure memory_leak()] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::FP_compare_exchange_strong_impossible_npe1_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_compare_exchange_strong_impossible_npe1_ok(),Skipping atomic: method has no implementation,Skipping compare_exchange_strong: method has no implementation,Taking false branch,Taking false branch,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::FP_compare_exchange_strong_impossible_npe2_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_compare_exchange_strong_impossible_npe2_ok(),Skipping atomic: method has no implementation,Skipping compare_exchange_strong: method has no implementation,Taking false branch,Taking false branch,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::FP_compare_exchange_weak_impossible_npe1_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_compare_exchange_weak_impossible_npe1_ok(),Skipping atomic: method has no implementation,Skipping compare_exchange_weak: method has no implementation,Taking false branch,Taking false branch,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::FP_compare_exchange_weak_impossible_npe2_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_compare_exchange_weak_impossible_npe2_ok(),Skipping atomic: method has no implementation,Skipping compare_exchange_weak: method has no implementation,Taking false branch,Taking false branch,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::FP_exchange_impossible_npe_ok, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_exchange_impossible_npe_ok(),Skipping atomic: method has no implementation,Skipping exchange: method has no implementation,Taking false branch,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::FP_is_zero_impossible_npe_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_is_zero_impossible_npe_ok(),start of procedure A,Skipping atomic: method has no implementation,return from a call to atomic_test::A::A,start of procedure add,Skipping operator++: method has no implementation,return from a call to atomic_test::A::add,start of procedure sub,Skipping operator--: method has no implementation,return from a call to atomic_test::A::sub,start of procedure is_zero,Condition is false,return from a call to atomic_test::A::is_zero,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::FP_load_store_impossible_npe_ok, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_load_store_impossible_npe_ok(),Skipping atomic: method has no implementation,Skipping store: method has no implementation,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::FP_not_zero_impossible_npe_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_not_zero_impossible_npe_ok(),start of procedure A,Skipping atomic: method has no implementation,return from a call to atomic_test::A::A,start of procedure add,Skipping operator++: method has no implementation,return from a call to atomic_test::A::add,start of procedure add,Skipping operator++: method has no implementation,return from a call to atomic_test::A::add,start of procedure is_zero,Condition is true,return from a call to atomic_test::A::is_zero,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_strong_possible_npe1_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::compare_exchange_strong_possible_npe1_bad(),Skipping atomic: method has no implementation,Skipping compare_exchange_strong: method has no implementation,Taking true branch,Taking true branch,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_strong_possible_npe2_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::compare_exchange_strong_possible_npe2_bad(),Skipping atomic: method has no implementation,Skipping compare_exchange_strong: method has no implementation,Taking true branch,Taking true branch,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_weak_possible_npe1_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::compare_exchange_weak_possible_npe1_bad(),Skipping atomic: method has no implementation,Skipping compare_exchange_weak: method has no implementation,Taking true branch,Taking true branch,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_weak_possible_npe2_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::compare_exchange_weak_possible_npe2_bad(),Skipping atomic: method has no implementation,Skipping compare_exchange_weak: method has no implementation,Taking true branch,Taking true branch,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::exchange_possible_npe_bad, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::exchange_possible_npe_bad(),Skipping atomic: method has no implementation,Skipping exchange: method has no implementation,Taking true branch,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::is_zero_possible_npe_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::is_zero_possible_npe_bad(),start of procedure A,Skipping atomic: method has no implementation,return from a call to atomic_test::A::A,start of procedure add,Skipping operator++: method has no implementation,return from a call to atomic_test::A::add,start of procedure sub,Skipping operator--: method has no implementation,return from a call to atomic_test::A::sub,start of procedure is_zero,Condition is true,return from a call to atomic_test::A::is_zero,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::load_store_possible_npe_bad, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::load_store_possible_npe_bad(),Skipping atomic: method has no implementation,Skipping store: method has no implementation,Taking true branch] -codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::not_zero_possible_npe_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::not_zero_possible_npe_bad(),start of procedure A,Skipping atomic: method has no implementation,return from a call to atomic_test::A::A,start of procedure sub,Skipping operator--: method has no implementation,return from a call to atomic_test::A::sub,start of procedure sub,Skipping operator--: method has no implementation,return from a call to atomic_test::A::sub,start of procedure is_zero,Condition is false,return from a call to atomic_test::A::is_zero,Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, operator_eq_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_eq_bad(),start of procedure operator==(),Condition is true,Condition is true,return from a call to operator==,Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, operator_ge_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_ge_bad(),start of procedure operator>=(),start of procedure operator<(),Taking false branch,Taking false branch,Condition is false,return from a call to operator<,Condition is false,return from a call to operator>=,Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, operator_gt_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_gt_bad(),start of procedure operator>(),start of procedure operator<(),Taking false branch,Taking false branch,Condition is true,return from a call to operator<,return from a call to operator>,Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, operator_le_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_le_bad(),start of procedure operator<=(),start of procedure operator<(),Taking false branch,Taking false branch,Condition is false,return from a call to operator<,Condition is false,return from a call to operator<=,Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, operator_lt_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_lt_bad(),start of procedure operator<(),Taking false branch,Taking false branch,Condition is true,return from a call to operator<,Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, operator_neq_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_neq_bad(),start of procedure operator!=(),start of procedure operator==(),Condition is true,Condition is true,return from a call to operator==,Condition is true,return from a call to operator!=,Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, std_equal_to_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_equal_to_bad(),Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, std_greater_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_greater_bad(),Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, std_greater_equal_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_greater_equal_bad(),Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, std_less_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_less_bad(),Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, std_less_equal_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_less_equal_bad(),Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, std_not_equal_to_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_not_equal_to_bad(),Condition is false,Taking true branch] -codetoanalyze/cpp/errors/models/move.cpp, move::div0_moved_from, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure move::div0_moved_from(),start of procedure X,return from a call to move::X::X,start of procedure X,return from a call to move::X::X] -codetoanalyze/cpp/errors/models/move.cpp, move::div0_moved_to, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure move::div0_moved_to(),start of procedure X,return from a call to move::X::X,start of procedure X,return from a call to move::X::X] -codetoanalyze/cpp/errors/models/pair.cpp, pair::deref_pair_null0_bad_FN, 3, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null0_bad_FN(),start of procedure pair::pairOfZeroNull(),Skipping ~pair: method has no implementation,return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation] -codetoanalyze/cpp/errors/models/pair.cpp, pair::deref_pair_null1_bad, 3, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null1_bad(),start of procedure pair::pairOfZeroNull(),Skipping ~pair: method has no implementation,return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation] -codetoanalyze/cpp/errors/models/pair.cpp, pair::deref_pair_null_guard_ok_FP, 4, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null_guard_ok_FP(),start of procedure pair::pairOfZeroNull(),Skipping ~pair: method has no implementation,return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation,Taking true branch] -codetoanalyze/cpp/errors/models/swap.cpp, swap_null_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure swap_null_bad()] -codetoanalyze/cpp/errors/models/throw_wrapper.cpp, nothrow_if_null_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nothrow_if_null_bad(),start of procedure get_null(),return from a call to get_null,Taking true branch,start of procedure do_nothing(),return from a call to do_nothing] -codetoanalyze/cpp/errors/mutex/std_mutex.cpp, ends_locked, 3, Cannot_star, no_bucket, ERROR, [start of procedure ends_locked(),Loop condition is true. Entering loop body,start of procedure ensure_unlocked(),start of procedure ensure_locked(),Skipping try_lock: method has no implementation,return from a call to ensure_locked,Skipping unlock: method has no implementation,return from a call to ensure_unlocked] -codetoanalyze/cpp/errors/mutex/std_mutex.cpp, starts_with_lock, 3, Cannot_star, no_bucket, ERROR, [start of procedure starts_with_lock(),Loop condition is true. Entering loop body,Skipping lock: method has no implementation] -codetoanalyze/cpp/errors/mutex/std_mutex_lock_profiling.cpp, lp_lock, 7, Cannot_star, no_bucket, ERROR, [start of procedure lp_lock(),start of procedure detail::try_lock_impl(),Taking false branch,return from a call to detail::try_lock_impl,Switch condition is false. Skipping switch case,Switch condition is true. Entering switch case] -codetoanalyze/cpp/errors/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_field_deref, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure boxed_ptr::smart_ptr_null_field_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr::SmartPtr,start of procedure get,return from a call to boxed_ptr::SmartPtr::get] -codetoanalyze/cpp/errors/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_method_deref, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure boxed_ptr::smart_ptr_null_method_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr::SmartPtr,start of procedure get,return from a call to boxed_ptr::SmartPtr::get] -codetoanalyze/cpp/errors/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_method_deref2, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure boxed_ptr::smart_ptr_null_method_deref2(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr::SmartPtr,start of procedure get,return from a call to boxed_ptr::SmartPtr::get] -codetoanalyze/cpp/errors/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_result_method_null_deref, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure boxed_ptr::smart_ptr_result_method_null_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr::SmartPtr,start of procedure X,return from a call to boxed_ptr::X::X,start of procedure get,return from a call to boxed_ptr::SmartPtr::get,start of procedure getNull,return from a call to boxed_ptr::X::getNull] -codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref2_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is false,return from a call to cancellation_test::is_size_zero,Taking true branch] -codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is false,return from a call to cancellation_test::is_size_zero,Taking true branch] -codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] -codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref_iter_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] -codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_zero_deref2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref2_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is true,return from a call to cancellation_test::is_size_zero,Taking true branch] -codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_zero_deref_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is true,return from a call to cancellation_test::is_size_zero,Taking true branch] -codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_zero_deref_iter2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is true,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] -codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_zero_deref_iter_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref_iter_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is true,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] -codetoanalyze/cpp/errors/npe/npe_added_to_b1.cpp, npe_added_to_b1::causes_npe_person_bad, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure npe_added_to_b1::causes_npe_person_bad(),start of procedure Person,return from a call to npe_added_to_b1::Person::Person,start of procedure npe_added_to_b1::deref_person()] -codetoanalyze/cpp/errors/npe/null_returned_by_method.cpp, testNullDeref, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure testNullDeref(),Taking true branch,start of procedure getNull,return from a call to XFactory::getNull] -codetoanalyze/cpp/errors/npe/object_deref.cpp, object_deref::derefNullField, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure object_deref::derefNullField(),start of procedure object_deref::getNull(),return from a call to object_deref::getNull] -codetoanalyze/cpp/errors/npe/skip_function_with_const_formals.cpp, ERROR_FP_skip_then_split_case_bad, 3, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_FP_skip_then_split_case_bad(),Skipping ~shared_ptr: method has no implementation,Skipping skip_no_const(): method has no implementation] -codetoanalyze/cpp/errors/npe/skip_function_with_const_formals.cpp, ERROR_const_skip2_then_split_case_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_const_skip2_then_split_case_ok(),Skipping ~shared_ptr: method has no implementation,Skipping skip_const2(): method has no implementation] -codetoanalyze/cpp/errors/npe/skip_function_with_const_formals.cpp, ERROR_const_skip_then_split_case_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_const_skip_then_split_case_ok(),Skipping ~shared_ptr: method has no implementation,Skipping skip_const(): method has no implementation] -codetoanalyze/cpp/errors/npe/skip_function_with_const_formals.cpp, ERROR_typedef_skip_then_split_case_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_typedef_skip_then_split_case_ok(),Skipping ~shared_ptr: method has no implementation,Skipping skip_typedef(): method has no implementation] -codetoanalyze/cpp/errors/numeric/min_max.cpp, max_X_inv_div0, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure max_X_inv_div0(),start of procedure X_inv,return from a call to X_inv::X_inv,start of procedure X_inv,return from a call to X_inv::X_inv] -codetoanalyze/cpp/errors/numeric/min_max.cpp, max_int_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure max_int_div0()] -codetoanalyze/cpp/errors/numeric/min_max.cpp, min_X_div0, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure min_X_div0(),start of procedure X,return from a call to X::X,start of procedure X,return from a call to X::X] -codetoanalyze/cpp/errors/numeric/min_max.cpp, min_int_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure min_int_div0()] -codetoanalyze/cpp/errors/overwrite_attribute/main.cpp, testSetIntValue, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure testSetIntValue(),start of procedure setIntValue(),return from a call to setIntValue] -codetoanalyze/cpp/errors/pointers/unintialized.cpp, known_ctor_dangling_bad, 2, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure known_ctor_dangling_bad(),start of procedure TestDangling,return from a call to TestDangling::TestDangling] -codetoanalyze/cpp/errors/pointers/unintialized.cpp, uninitialized_dangling_bad, 2, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure uninitialized_dangling_bad()] -codetoanalyze/cpp/errors/resource_leaks/raii.cpp, resource_leak, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure resource_leak(),Taking false branch] -codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::Person::Person, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure Person,Skipping unique_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::ERROR_shared_ptr_check_notnull_ok, 2, Cannot_star, no_bucket, ERROR, [start of procedure shared_ptr::ERROR_shared_ptr_check_notnull_ok(),Skipping shared_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::ERROR_shared_ptr_check_null_ok, 2, Cannot_star, no_bucket, ERROR, [start of procedure shared_ptr::ERROR_shared_ptr_check_null_ok(),Skipping shared_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FN_reset_ptr_null_deref2_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FN_reset_ptr_null_deref2_bad(),Skipping shared_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FN_reset_ptr_null_deref2_bad, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FN_reset_ptr_null_deref2_bad(),Skipping shared_ptr: method has no implementation,Skipping reset: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FN_reset_ptr_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FN_reset_ptr_null_deref_bad(),Skipping shared_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FN_shared_ptr_assign_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FN_shared_ptr_assign_null_deref_bad(),Skipping shared_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FN_shared_ptr_move_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FN_shared_ptr_move_null_deref_bad(),Skipping shared_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FP_reset_ptr_deref2_ok, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FP_reset_ptr_deref2_ok(),Skipping shared_ptr: method has no implementation,Skipping reset: method has no implementation,Skipping reset: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FP_reset_ptr_deref_ok, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FP_reset_ptr_deref_ok(),Skipping shared_ptr: method has no implementation,Skipping reset: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FP_shared_ptr_assign_deref_ok, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FP_shared_ptr_assign_deref_ok(),Skipping shared_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FP_shared_ptr_copy_deref_ok, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FP_shared_ptr_copy_deref_ok(),Skipping shared_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FN_FP_reset_ptr_null_deref2_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FN_FP_reset_ptr_null_deref2_bad(),Skipping unique_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FN_FP_reset_ptr_null_deref2_bad, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FN_FP_reset_ptr_null_deref2_bad(),Skipping unique_ptr: method has no implementation,Skipping reset: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FN_FP_reset_ptr_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FN_FP_reset_ptr_null_deref_bad(),Skipping unique_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FN_unique_ptr_assign_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FN_unique_ptr_assign_null_deref_bad(),Skipping unique_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FN_unique_ptr_move_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FN_unique_ptr_move_null_deref_bad(),Skipping unique_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FP_reset_ptr_deref2_ok, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FP_reset_ptr_deref2_ok(),Skipping unique_ptr: method has no implementation,Skipping reset: method has no implementation,Skipping reset: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FP_reset_ptr_deref_ok, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FP_reset_ptr_deref_ok(),Skipping unique_ptr: method has no implementation,Skipping reset: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FP_unique_ptr_move_deref_ok, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FP_unique_ptr_move_deref_ok(),Skipping unique_ptr: method has no implementation] -codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_assign_deref_ok, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::unique_ptr_assign_deref_ok(),Skipping unique_ptr: method has no implementation] -codetoanalyze/cpp/errors/stack_escape/basic.cpp, basic_escape_local_bad, 3, STACK_VARIABLE_ADDRESS_ESCAPE, no_bucket, ERROR, [start of procedure basic_escape_local_bad(),return from a call to basic_escape_local_bad] -codetoanalyze/cpp/errors/stack_escape/basic.cpp, basic_escape_param_bad, 0, STACK_VARIABLE_ADDRESS_ESCAPE, no_bucket, ERROR, [start of procedure basic_escape_param_bad(),return from a call to basic_escape_param_bad] -codetoanalyze/cpp/errors/stack_escape/basic.cpp, escape_local_struct_member_bad, 3, STACK_VARIABLE_ADDRESS_ESCAPE, no_bucket, ERROR, [start of procedure escape_local_struct_member_bad(),start of procedure EscapeTest,return from a call to EscapeTest::EscapeTest,return from a call to escape_local_struct_member_bad] -codetoanalyze/cpp/errors/static_local/nonstatic_local_bad.cpp, nonstatic_local_bad, 3, STACK_VARIABLE_ADDRESS_ESCAPE, no_bucket, ERROR, [start of procedure nonstatic_local_bad(),return from a call to nonstatic_local_bad] -codetoanalyze/cpp/errors/static_local/nonstatic_local_bad.cpp, nonstatic_local_caller, 2, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure nonstatic_local_caller(),start of procedure nonstatic_local_bad(),return from a call to nonstatic_local_bad] -codetoanalyze/cpp/errors/subtyping/cast_with_enforce.cpp, cast_with_enforce::cast_with_npe, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure cast_with_enforce::cast_with_npe(),start of procedure Base,return from a call to cast_with_enforce::Base::Base] -codetoanalyze/cpp/errors/subtyping/dynamic_cast.cpp, dynamic__cast::rightPointerCast, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure dynamic__cast::rightPointerCast(),start of procedure Derived,start of procedure Base,return from a call to dynamic__cast::Base::Base,return from a call to dynamic__cast::Derived::Derived,Taking true branch] -codetoanalyze/cpp/errors/subtyping/dynamic_cast.cpp, dynamic__cast::rightPointerCast, 4, MEMORY_LEAK, CPP, ERROR, [start of procedure dynamic__cast::rightPointerCast(),start of procedure Derived,start of procedure Base,return from a call to dynamic__cast::Base::Base,return from a call to dynamic__cast::Derived::Derived,Taking true branch] -codetoanalyze/cpp/errors/subtyping/dynamic_cast.cpp, dynamic__cast::rightReferenceCast, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure dynamic__cast::rightReferenceCast(),start of procedure Derived,start of procedure Base,return from a call to dynamic__cast::Base::Base,return from a call to dynamic__cast::Derived::Derived] -codetoanalyze/cpp/errors/subtyping/dynamic_cast.cpp, dynamic__cast::wrongCastOfArgumentPointer, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure dynamic__cast::wrongCastOfArgumentPointer(),start of procedure Base,return from a call to dynamic__cast::Base::Base,start of procedure dynamic__cast::castOfArgumentPointer(),Taking false branch,return from a call to dynamic__cast::castOfArgumentPointer] -codetoanalyze/cpp/errors/subtyping/dynamic_cast.cpp, dynamic__cast::wrongCastOfArgumentReference, 2, CLASS_CAST_EXCEPTION, no_bucket, ERROR, [start of procedure dynamic__cast::wrongCastOfArgumentReference(),start of procedure Base,return from a call to dynamic__cast::Base::Base] -codetoanalyze/cpp/errors/subtyping/dynamic_cast.cpp, dynamic__cast::wrongPointerCast, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure dynamic__cast::wrongPointerCast(),start of procedure Base,return from a call to dynamic__cast::Base::Base] -codetoanalyze/cpp/errors/subtyping/dynamic_cast.cpp, dynamic__cast::wrongPointerCast, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure dynamic__cast::wrongPointerCast(),start of procedure Base,return from a call to dynamic__cast::Base::Base,Taking false branch] -codetoanalyze/cpp/errors/subtyping/dynamic_cast.cpp, dynamic__cast::wrongReferenceCast, 3, CLASS_CAST_EXCEPTION, no_bucket, ERROR, [start of procedure dynamic__cast::wrongReferenceCast(),start of procedure Base,return from a call to dynamic__cast::Base::Base] -codetoanalyze/cpp/errors/subtyping/dynamic_cast.cpp, dynamic__cast::wrongReferenceCastNotAssigned, 3, CLASS_CAST_EXCEPTION, no_bucket, ERROR, [start of procedure dynamic__cast::wrongReferenceCastNotAssigned(),start of procedure Base,return from a call to dynamic__cast::Base::Base] -codetoanalyze/cpp/errors/subtyping/implicit_cast_with_const.cpp, implicit_cast_with_const::BaseDerefNPE, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure implicit_cast_with_const::BaseDerefNPE(),start of procedure Base,return from a call to implicit_cast_with_const::Base::Base,start of procedure implicit_cast_with_const::deref()] -codetoanalyze/cpp/errors/subtyping/implicit_cast_with_const.cpp, implicit_cast_with_const::DerivedDerefNPE, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure implicit_cast_with_const::DerivedDerefNPE(),start of procedure Derived,start of procedure Base,return from a call to implicit_cast_with_const::Base::Base,return from a call to implicit_cast_with_const::Derived::Derived,start of procedure implicit_cast_with_const::deref()] -codetoanalyze/cpp/errors/subtyping/subtyping_check.cpp, B::setFG, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure setFG,start of procedure setF,return from a call to A::setF,Taking true branch] -codetoanalyze/cpp/errors/templates/dependent_parent.cpp, instantiate_class_bad, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure instantiate_class_bad(),start of procedure X,return from a call to X::X,start of procedure x_y,start of procedure Y,start of procedure Z,return from a call to Z::Z,return from a call to X::Y::Y,start of procedure y,start of procedure z,return from a call to Z::z,return from a call to X::Y::y,return from a call to X::x_y] -codetoanalyze/cpp/errors/templates/mangling.cpp, bad_integral_types_templates, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure bad_integral_types_templates(),start of procedure IntTemplate,return from a call to IntTemplate<0>::IntTemplate,start of procedure CharTemplate,return from a call to CharTemplate<99>::CharTemplate,start of procedure LongTemplate,return from a call to LongTemplate<1234567890>::LongTemplate] -codetoanalyze/cpp/errors/templates/mangling.cpp, bad_nullptr_templates, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure bad_nullptr_templates(),start of procedure NullPtrTemplate,return from a call to NullPtrTemplate::NullPtrTemplate] -codetoanalyze/cpp/errors/templates/mangling.cpp, bad_packed_templates, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure bad_packed_templates(),start of procedure Tuple,return from a call to Tuple>::Tuple] -codetoanalyze/cpp/errors/templates/mangling.cpp, bad_reference_and_pointer_templates, 5, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure bad_reference_and_pointer_templates(),start of procedure PointerTypeTemplate,return from a call to PointerTypeTemplate::PointerTypeTemplate,start of procedure PointerTypeTemplate2,return from a call to PointerTypeTemplate2::PointerTypeTemplate2,start of procedure FunctionPointerTemplate,return from a call to FunctionPointerTemplate::FunctionPointerTemplate,start of procedure ReferenceTypeTemplate,return from a call to ReferenceTypeTemplate::ReferenceTypeTemplate] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, employee_typeid, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure employee_typeid(),start of procedure Employee,start of procedure Person,return from a call to Person::Person,return from a call to Employee::Employee] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, employee_typeid, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure employee_typeid(),start of procedure Employee,start of procedure Person,return from a call to Person::Person,return from a call to Employee::Employee,Taking true branch] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, person_ptr_typeid, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure person_ptr_typeid(),start of procedure Person,return from a call to Person::Person] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, person_ptr_typeid, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure person_ptr_typeid(),start of procedure Person,return from a call to Person::Person,Taking true branch] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, person_typeid, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure person_typeid(),start of procedure Person,return from a call to Person::Person] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, person_typeid, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure person_typeid(),start of procedure Person,return from a call to Person::Person,Taking false branch] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, person_typeid_name, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person::Person] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, person_typeid_name, 4, MEMORY_LEAK, CPP, ERROR, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person::Person] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, person_typeid_name, 8, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person::Person,Taking false branch] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, template_type_id_person, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure template_type_id_person(),start of procedure Person,return from a call to Person::Person,Skipping template_typeid(): empty list of specs] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, template_type_id_person, 5, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure template_type_id_person(),start of procedure Person,return from a call to Person::Person,Taking false branch] -codetoanalyze/cpp/errors/types/typeid_expr.cpp, template_typeid, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure template_typeid(),start of procedure Person,return from a call to Person::Person,start of procedure Person,return from a call to Person::Person,start of procedure ~Person,start of procedure __infer_inner_destructor_~Person,return from a call to Person::__infer_inner_destructor_~Person,return from a call to Person::~Person,start of procedure ~Person,start of procedure __infer_inner_destructor_~Person,return from a call to Person::__infer_inner_destructor_~Person,return from a call to Person::~Person] -codetoanalyze/cpp/errors/use_after_free/foreach_map.cpp, use_after_free::Basic::test_double_delete_bad, 3, BIABD_USE_AFTER_FREE, B1, ERROR, [start of procedure test_double_delete_bad,Skipping Y: method has no implementation] -codetoanalyze/cpp/errors/use_after_free/foreach_map.cpp, use_after_free::Basic::test_for_map_delete_ok_FP, 2, BIABD_USE_AFTER_FREE, B5, ERROR, [start of procedure test_for_map_delete_ok_FP,Loop condition is true. Entering loop body,Skipping operator*: method has no implementation,Loop condition is true. Entering loop body,Skipping operator*: method has no implementation] -codetoanalyze/cpp/errors/use_after_free/foreach_map.cpp, use_after_free::Basic::test_for_umap_delete_ok_FP, 2, BIABD_USE_AFTER_FREE, B5, ERROR, [start of procedure test_for_umap_delete_ok_FP,Loop condition is true. Entering loop body,Skipping operator*: method has no implementation,Loop condition is true. Entering loop body,Skipping operator*: method has no implementation] -codetoanalyze/cpp/errors/vector/empty_access.cpp, ERROR_vector_as_param_by_value_clear_ok, 2, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_vector_as_param_by_value_clear_ok(),Skipping vector: method has no implementation,Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/empty_access.cpp, ERROR_vector_as_param_by_value_empty_bad, 2, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_vector_as_param_by_value_empty_bad(),Skipping vector: method has no implementation,Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/empty_access.cpp, ERROR_vector_as_param_empty_bad, 2, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_vector_as_param_empty_bad(),Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/empty_access.cpp, ERROR_vector_as_param_nonempty_ok, 2, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_vector_as_param_nonempty_ok(),Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/empty_access.cpp, FN_vector_as_param_clear_bad, 2, Cannot_star, no_bucket, ERROR, [start of procedure FN_vector_as_param_clear_bad(),Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/iterator_access.cpp, iterator_access::possible_npe, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure iterator_access::possible_npe(),Skipping ~__wrap_iter: method has no implementation,Loop condition is true. Entering loop body,Taking true branch,Taking true branch] -codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::ERROR_empty_deref1_bad, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_empty_deref1_bad(),Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::ERROR_empty_deref2_bad, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_empty_deref2_bad(),Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::ERROR_empty_no_deref1_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_empty_no_deref1_ok(),Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::ERROR_empty_no_deref2_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_empty_no_deref2_ok(),Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::ERROR_not_empty_deref1_bad, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_not_empty_deref1_bad(),Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::ERROR_not_empty_deref2_bad, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_not_empty_deref2_bad(),Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::ERROR_not_empty_no_deref1_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_not_empty_no_deref1_ok(),Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::ERROR_not_empty_no_deref2_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_not_empty_no_deref2_ok(),Skipping vector: method has no implementation] -codetoanalyze/cpp/errors/vector/loop.cpp, FP_empty_vector_loop_ok, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure FP_empty_vector_loop_ok(),Skipping vector: method has no implementation,Loop condition is true. Entering loop body] -codetoanalyze/cpp/errors/vector/loop.cpp, non_empty_vector_loop_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure non_empty_vector_loop_bad(),Skipping vector: method has no implementation,Loop condition is true. Entering loop body] +codetoanalyze/cpp/biabduction/biabduction/process_splitting_assert.cpp, fail, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure fail(),Taking true branch] +codetoanalyze/cpp/biabduction/c_tests/c_bugs.cpp, crash_fgetc, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure crash_fgetc()] +codetoanalyze/cpp/biabduction/c_tests/c_bugs.cpp, crash_getc, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure crash_getc()] +codetoanalyze/cpp/biabduction/c_tests/c_bugs.cpp, malloc_fail_gets_reported, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure malloc_fail_gets_reported()] +codetoanalyze/cpp/biabduction/c_tests/c_bugs.cpp, malloc_memory_leak_is_reported, 0, MEMORY_LEAK, no_bucket, ERROR, [start of procedure malloc_memory_leak_is_reported()] +codetoanalyze/cpp/biabduction/c_tests/c_bugs.cpp, memcpy_spec_is_found, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure memcpy_spec_is_found()] +codetoanalyze/cpp/biabduction/c_tests/c_bugs.cpp, resource_leak_is_reported, 0, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure resource_leak_is_reported()] +codetoanalyze/cpp/biabduction/include_header/header.h, header::A::div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure div0] +codetoanalyze/cpp/biabduction/include_header/header.h, header::div0_fun, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure header::div0_fun()] +codetoanalyze/cpp/biabduction/include_header/header2.h, header2::B::div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure div0] +codetoanalyze/cpp/biabduction/include_header/header2.h, header2::B::div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure div0] +codetoanalyze/cpp/biabduction/include_header/header2.h, header2::div0_templ, 1, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure header2::div0_templ()] +codetoanalyze/cpp/biabduction/include_header/header2.h, header2::div0_templ, 1, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure header2::div0_templ()] +codetoanalyze/cpp/biabduction/memory_leaks/array_leak.cpp, leak, 4, MEMORY_LEAK, CPP, ERROR, [start of procedure leak()] +codetoanalyze/cpp/biabduction/memory_leaks/object_leak.cpp, object_leak, 0, MEMORY_LEAK, CPP, ERROR, [start of procedure object_leak(),start of procedure Rectangle,return from a call to Rectangle::Rectangle] +codetoanalyze/cpp/biabduction/memory_leaks/raii_malloc.cpp, memory_leak, 0, MEMORY_LEAK, no_bucket, ERROR, [start of procedure memory_leak()] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::FP_compare_exchange_strong_impossible_npe1_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_compare_exchange_strong_impossible_npe1_ok(),Skipping atomic: method has no implementation,Skipping compare_exchange_strong: method has no implementation,Taking false branch,Taking false branch,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::FP_compare_exchange_strong_impossible_npe2_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_compare_exchange_strong_impossible_npe2_ok(),Skipping atomic: method has no implementation,Skipping compare_exchange_strong: method has no implementation,Taking false branch,Taking false branch,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::FP_compare_exchange_weak_impossible_npe1_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_compare_exchange_weak_impossible_npe1_ok(),Skipping atomic: method has no implementation,Skipping compare_exchange_weak: method has no implementation,Taking false branch,Taking false branch,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::FP_compare_exchange_weak_impossible_npe2_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_compare_exchange_weak_impossible_npe2_ok(),Skipping atomic: method has no implementation,Skipping compare_exchange_weak: method has no implementation,Taking false branch,Taking false branch,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::FP_exchange_impossible_npe_ok, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_exchange_impossible_npe_ok(),Skipping atomic: method has no implementation,Skipping exchange: method has no implementation,Taking false branch,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::FP_is_zero_impossible_npe_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_is_zero_impossible_npe_ok(),start of procedure A,Skipping atomic: method has no implementation,return from a call to atomic_test::A::A,start of procedure add,Skipping operator++: method has no implementation,return from a call to atomic_test::A::add,start of procedure sub,Skipping operator--: method has no implementation,return from a call to atomic_test::A::sub,start of procedure is_zero,Condition is false,return from a call to atomic_test::A::is_zero,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::FP_load_store_impossible_npe_ok, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_load_store_impossible_npe_ok(),Skipping atomic: method has no implementation,Skipping store: method has no implementation,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::FP_not_zero_impossible_npe_ok, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::FP_not_zero_impossible_npe_ok(),start of procedure A,Skipping atomic: method has no implementation,return from a call to atomic_test::A::A,start of procedure add,Skipping operator++: method has no implementation,return from a call to atomic_test::A::add,start of procedure add,Skipping operator++: method has no implementation,return from a call to atomic_test::A::add,start of procedure is_zero,Condition is true,return from a call to atomic_test::A::is_zero,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::compare_exchange_strong_possible_npe1_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::compare_exchange_strong_possible_npe1_bad(),Skipping atomic: method has no implementation,Skipping compare_exchange_strong: method has no implementation,Taking true branch,Taking true branch,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::compare_exchange_strong_possible_npe2_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::compare_exchange_strong_possible_npe2_bad(),Skipping atomic: method has no implementation,Skipping compare_exchange_strong: method has no implementation,Taking true branch,Taking true branch,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::compare_exchange_weak_possible_npe1_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::compare_exchange_weak_possible_npe1_bad(),Skipping atomic: method has no implementation,Skipping compare_exchange_weak: method has no implementation,Taking true branch,Taking true branch,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::compare_exchange_weak_possible_npe2_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::compare_exchange_weak_possible_npe2_bad(),Skipping atomic: method has no implementation,Skipping compare_exchange_weak: method has no implementation,Taking true branch,Taking true branch,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::exchange_possible_npe_bad, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::exchange_possible_npe_bad(),Skipping atomic: method has no implementation,Skipping exchange: method has no implementation,Taking true branch,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::is_zero_possible_npe_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::is_zero_possible_npe_bad(),start of procedure A,Skipping atomic: method has no implementation,return from a call to atomic_test::A::A,start of procedure add,Skipping operator++: method has no implementation,return from a call to atomic_test::A::add,start of procedure sub,Skipping operator--: method has no implementation,return from a call to atomic_test::A::sub,start of procedure is_zero,Condition is true,return from a call to atomic_test::A::is_zero,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::load_store_possible_npe_bad, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::load_store_possible_npe_bad(),Skipping atomic: method has no implementation,Skipping store: method has no implementation,Taking true branch] +codetoanalyze/cpp/biabduction/models/atomic.cpp, atomic_test::not_zero_possible_npe_bad, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure atomic_test::not_zero_possible_npe_bad(),start of procedure A,Skipping atomic: method has no implementation,return from a call to atomic_test::A::A,start of procedure sub,Skipping operator--: method has no implementation,return from a call to atomic_test::A::sub,start of procedure sub,Skipping operator--: method has no implementation,return from a call to atomic_test::A::sub,start of procedure is_zero,Condition is false,return from a call to atomic_test::A::is_zero,Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, operator_eq_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_eq_bad(),start of procedure operator==(),Condition is true,Condition is true,return from a call to operator==,Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, operator_ge_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_ge_bad(),start of procedure operator>=(),start of procedure operator<(),Taking false branch,Taking false branch,Condition is false,return from a call to operator<,Condition is false,return from a call to operator>=,Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, operator_gt_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_gt_bad(),start of procedure operator>(),start of procedure operator<(),Taking false branch,Taking false branch,Condition is true,return from a call to operator<,return from a call to operator>,Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, operator_le_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_le_bad(),start of procedure operator<=(),start of procedure operator<(),Taking false branch,Taking false branch,Condition is false,return from a call to operator<,Condition is false,return from a call to operator<=,Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, operator_lt_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_lt_bad(),start of procedure operator<(),Taking false branch,Taking false branch,Condition is true,return from a call to operator<,Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, operator_neq_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure operator_neq_bad(),start of procedure operator!=(),start of procedure operator==(),Condition is true,Condition is true,return from a call to operator==,Condition is true,return from a call to operator!=,Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, std_equal_to_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_equal_to_bad(),Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, std_greater_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_greater_bad(),Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, std_greater_equal_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_greater_equal_bad(),Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, std_less_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_less_bad(),Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, std_less_equal_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_less_equal_bad(),Taking true branch] +codetoanalyze/cpp/biabduction/models/cmp.cpp, std_not_equal_to_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_not_equal_to_bad(),Condition is false,Taking true branch] +codetoanalyze/cpp/biabduction/models/move.cpp, move::div0_moved_from, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure move::div0_moved_from(),start of procedure X,return from a call to move::X::X,start of procedure X,return from a call to move::X::X] +codetoanalyze/cpp/biabduction/models/move.cpp, move::div0_moved_to, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure move::div0_moved_to(),start of procedure X,return from a call to move::X::X,start of procedure X,return from a call to move::X::X] +codetoanalyze/cpp/biabduction/models/pair.cpp, pair::deref_pair_null0_bad_FN, 3, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null0_bad_FN(),start of procedure pair::pairOfZeroNull(),Skipping ~pair: method has no implementation,return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation] +codetoanalyze/cpp/biabduction/models/pair.cpp, pair::deref_pair_null1_bad, 3, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null1_bad(),start of procedure pair::pairOfZeroNull(),Skipping ~pair: method has no implementation,return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation] +codetoanalyze/cpp/biabduction/models/pair.cpp, pair::deref_pair_null_guard_ok_FP, 4, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null_guard_ok_FP(),start of procedure pair::pairOfZeroNull(),Skipping ~pair: method has no implementation,return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation,Taking true branch] +codetoanalyze/cpp/biabduction/models/swap.cpp, swap_null_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure swap_null_bad()] +codetoanalyze/cpp/biabduction/models/throw_wrapper.cpp, nothrow_if_null_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nothrow_if_null_bad(),start of procedure get_null(),return from a call to get_null,Taking true branch,start of procedure do_nothing(),return from a call to do_nothing] +codetoanalyze/cpp/biabduction/mutex/std_mutex.cpp, ends_locked, 3, Cannot_star, no_bucket, ERROR, [start of procedure ends_locked(),Loop condition is true. Entering loop body,start of procedure ensure_unlocked(),start of procedure ensure_locked(),Skipping try_lock: method has no implementation,return from a call to ensure_locked,Skipping unlock: method has no implementation,return from a call to ensure_unlocked] +codetoanalyze/cpp/biabduction/mutex/std_mutex.cpp, starts_with_lock, 3, Cannot_star, no_bucket, ERROR, [start of procedure starts_with_lock(),Loop condition is true. Entering loop body,Skipping lock: method has no implementation] +codetoanalyze/cpp/biabduction/mutex/std_mutex_lock_profiling.cpp, lp_lock, 7, Cannot_star, no_bucket, ERROR, [start of procedure lp_lock(),start of procedure detail::try_lock_impl(),Taking false branch,return from a call to detail::try_lock_impl,Switch condition is false. Skipping switch case,Switch condition is true. Entering switch case] +codetoanalyze/cpp/biabduction/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_field_deref, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure boxed_ptr::smart_ptr_null_field_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr::SmartPtr,start of procedure get,return from a call to boxed_ptr::SmartPtr::get] +codetoanalyze/cpp/biabduction/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_method_deref, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure boxed_ptr::smart_ptr_null_method_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr::SmartPtr,start of procedure get,return from a call to boxed_ptr::SmartPtr::get] +codetoanalyze/cpp/biabduction/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_method_deref2, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure boxed_ptr::smart_ptr_null_method_deref2(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr::SmartPtr,start of procedure get,return from a call to boxed_ptr::SmartPtr::get] +codetoanalyze/cpp/biabduction/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_result_method_null_deref, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure boxed_ptr::smart_ptr_result_method_null_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr::SmartPtr,start of procedure X,return from a call to boxed_ptr::X::X,start of procedure get,return from a call to boxed_ptr::SmartPtr::get,start of procedure getNull,return from a call to boxed_ptr::X::getNull] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_nonzero_deref2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref2_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is false,return from a call to cancellation_test::is_size_zero,Taking true branch] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is false,return from a call to cancellation_test::is_size_zero,Taking true branch] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref_iter_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_zero_deref2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref2_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is true,return from a call to cancellation_test::is_size_zero,Taking true branch] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_zero_deref_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is true,return from a call to cancellation_test::is_size_zero,Taking true branch] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_zero_deref_iter2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is true,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_zero_deref_iter_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref_iter_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is true,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] +codetoanalyze/cpp/biabduction/npe/npe_added_to_b1.cpp, npe_added_to_b1::causes_npe_person_bad, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure npe_added_to_b1::causes_npe_person_bad(),start of procedure Person,return from a call to npe_added_to_b1::Person::Person,start of procedure npe_added_to_b1::deref_person()] +codetoanalyze/cpp/biabduction/npe/null_returned_by_method.cpp, testNullDeref, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure testNullDeref(),Taking true branch,start of procedure getNull,return from a call to XFactory::getNull] +codetoanalyze/cpp/biabduction/npe/object_deref.cpp, object_deref::derefNullField, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure object_deref::derefNullField(),start of procedure object_deref::getNull(),return from a call to object_deref::getNull] +codetoanalyze/cpp/biabduction/npe/skip_function_with_const_formals.cpp, ERROR_FP_skip_then_split_case_bad, 3, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_FP_skip_then_split_case_bad(),Skipping ~shared_ptr: method has no implementation,Skipping skip_no_const(): method has no implementation] +codetoanalyze/cpp/biabduction/npe/skip_function_with_const_formals.cpp, ERROR_const_skip2_then_split_case_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_const_skip2_then_split_case_ok(),Skipping ~shared_ptr: method has no implementation,Skipping skip_const2(): method has no implementation] +codetoanalyze/cpp/biabduction/npe/skip_function_with_const_formals.cpp, ERROR_const_skip_then_split_case_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_const_skip_then_split_case_ok(),Skipping ~shared_ptr: method has no implementation,Skipping skip_const(): method has no implementation] +codetoanalyze/cpp/biabduction/npe/skip_function_with_const_formals.cpp, ERROR_typedef_skip_then_split_case_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_typedef_skip_then_split_case_ok(),Skipping ~shared_ptr: method has no implementation,Skipping skip_typedef(): method has no implementation] +codetoanalyze/cpp/biabduction/numeric/min_max.cpp, max_X_inv_div0, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure max_X_inv_div0(),start of procedure X_inv,return from a call to X_inv::X_inv,start of procedure X_inv,return from a call to X_inv::X_inv] +codetoanalyze/cpp/biabduction/numeric/min_max.cpp, max_int_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure max_int_div0()] +codetoanalyze/cpp/biabduction/numeric/min_max.cpp, min_X_div0, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure min_X_div0(),start of procedure X,return from a call to X::X,start of procedure X,return from a call to X::X] +codetoanalyze/cpp/biabduction/numeric/min_max.cpp, min_int_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure min_int_div0()] +codetoanalyze/cpp/biabduction/overwrite_attribute/main.cpp, testSetIntValue, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure testSetIntValue(),start of procedure setIntValue(),return from a call to setIntValue] +codetoanalyze/cpp/biabduction/pointers/unintialized.cpp, known_ctor_dangling_bad, 2, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure known_ctor_dangling_bad(),start of procedure TestDangling,return from a call to TestDangling::TestDangling] +codetoanalyze/cpp/biabduction/pointers/unintialized.cpp, uninitialized_dangling_bad, 2, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure uninitialized_dangling_bad()] +codetoanalyze/cpp/biabduction/resource_leaks/raii.cpp, resource_leak, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure resource_leak(),Taking false branch] +codetoanalyze/cpp/biabduction/smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::Person::Person, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure Person,Skipping unique_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp, shared_ptr::ERROR_shared_ptr_check_notnull_ok, 2, Cannot_star, no_bucket, ERROR, [start of procedure shared_ptr::ERROR_shared_ptr_check_notnull_ok(),Skipping shared_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp, shared_ptr::ERROR_shared_ptr_check_null_ok, 2, Cannot_star, no_bucket, ERROR, [start of procedure shared_ptr::ERROR_shared_ptr_check_null_ok(),Skipping shared_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FN_reset_ptr_null_deref2_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FN_reset_ptr_null_deref2_bad(),Skipping shared_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FN_reset_ptr_null_deref2_bad, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FN_reset_ptr_null_deref2_bad(),Skipping shared_ptr: method has no implementation,Skipping reset: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FN_reset_ptr_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FN_reset_ptr_null_deref_bad(),Skipping shared_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FN_shared_ptr_assign_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FN_shared_ptr_assign_null_deref_bad(),Skipping shared_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FN_shared_ptr_move_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FN_shared_ptr_move_null_deref_bad(),Skipping shared_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FP_reset_ptr_deref2_ok, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FP_reset_ptr_deref2_ok(),Skipping shared_ptr: method has no implementation,Skipping reset: method has no implementation,Skipping reset: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FP_reset_ptr_deref_ok, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FP_reset_ptr_deref_ok(),Skipping shared_ptr: method has no implementation,Skipping reset: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FP_shared_ptr_assign_deref_ok, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FP_shared_ptr_assign_deref_ok(),Skipping shared_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp, shared_ptr::FP_shared_ptr_copy_deref_ok, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure shared_ptr::FP_shared_ptr_copy_deref_ok(),Skipping shared_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FN_FP_reset_ptr_null_deref2_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FN_FP_reset_ptr_null_deref2_bad(),Skipping unique_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FN_FP_reset_ptr_null_deref2_bad, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FN_FP_reset_ptr_null_deref2_bad(),Skipping unique_ptr: method has no implementation,Skipping reset: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FN_FP_reset_ptr_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FN_FP_reset_ptr_null_deref_bad(),Skipping unique_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FN_unique_ptr_assign_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FN_unique_ptr_assign_null_deref_bad(),Skipping unique_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FN_unique_ptr_move_null_deref_bad, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FN_unique_ptr_move_null_deref_bad(),Skipping unique_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FP_reset_ptr_deref2_ok, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FP_reset_ptr_deref2_ok(),Skipping unique_ptr: method has no implementation,Skipping reset: method has no implementation,Skipping reset: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FP_reset_ptr_deref_ok, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FP_reset_ptr_deref_ok(),Skipping unique_ptr: method has no implementation,Skipping reset: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/unique_ptr_deref.cpp, unique_ptr::FP_unique_ptr_move_deref_ok, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::FP_unique_ptr_move_deref_ok(),Skipping unique_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_assign_deref_ok, 1, MEMORY_LEAK, CPP, ERROR, [start of procedure unique_ptr::unique_ptr_assign_deref_ok(),Skipping unique_ptr: method has no implementation] +codetoanalyze/cpp/biabduction/stack_escape/basic.cpp, basic_escape_local_bad, 3, STACK_VARIABLE_ADDRESS_ESCAPE, no_bucket, ERROR, [start of procedure basic_escape_local_bad(),return from a call to basic_escape_local_bad] +codetoanalyze/cpp/biabduction/stack_escape/basic.cpp, basic_escape_param_bad, 0, STACK_VARIABLE_ADDRESS_ESCAPE, no_bucket, ERROR, [start of procedure basic_escape_param_bad(),return from a call to basic_escape_param_bad] +codetoanalyze/cpp/biabduction/stack_escape/basic.cpp, escape_local_struct_member_bad, 3, STACK_VARIABLE_ADDRESS_ESCAPE, no_bucket, ERROR, [start of procedure escape_local_struct_member_bad(),start of procedure EscapeTest,return from a call to EscapeTest::EscapeTest,return from a call to escape_local_struct_member_bad] +codetoanalyze/cpp/biabduction/static_local/nonstatic_local_bad.cpp, nonstatic_local_bad, 3, STACK_VARIABLE_ADDRESS_ESCAPE, no_bucket, ERROR, [start of procedure nonstatic_local_bad(),return from a call to nonstatic_local_bad] +codetoanalyze/cpp/biabduction/static_local/nonstatic_local_bad.cpp, nonstatic_local_caller, 2, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure nonstatic_local_caller(),start of procedure nonstatic_local_bad(),return from a call to nonstatic_local_bad] +codetoanalyze/cpp/biabduction/subtyping/cast_with_enforce.cpp, cast_with_enforce::cast_with_npe, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure cast_with_enforce::cast_with_npe(),start of procedure Base,return from a call to cast_with_enforce::Base::Base] +codetoanalyze/cpp/biabduction/subtyping/dynamic_cast.cpp, dynamic__cast::rightPointerCast, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure dynamic__cast::rightPointerCast(),start of procedure Derived,start of procedure Base,return from a call to dynamic__cast::Base::Base,return from a call to dynamic__cast::Derived::Derived,Taking true branch] +codetoanalyze/cpp/biabduction/subtyping/dynamic_cast.cpp, dynamic__cast::rightPointerCast, 4, MEMORY_LEAK, CPP, ERROR, [start of procedure dynamic__cast::rightPointerCast(),start of procedure Derived,start of procedure Base,return from a call to dynamic__cast::Base::Base,return from a call to dynamic__cast::Derived::Derived,Taking true branch] +codetoanalyze/cpp/biabduction/subtyping/dynamic_cast.cpp, dynamic__cast::rightReferenceCast, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure dynamic__cast::rightReferenceCast(),start of procedure Derived,start of procedure Base,return from a call to dynamic__cast::Base::Base,return from a call to dynamic__cast::Derived::Derived] +codetoanalyze/cpp/biabduction/subtyping/dynamic_cast.cpp, dynamic__cast::wrongCastOfArgumentPointer, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure dynamic__cast::wrongCastOfArgumentPointer(),start of procedure Base,return from a call to dynamic__cast::Base::Base,start of procedure dynamic__cast::castOfArgumentPointer(),Taking false branch,return from a call to dynamic__cast::castOfArgumentPointer] +codetoanalyze/cpp/biabduction/subtyping/dynamic_cast.cpp, dynamic__cast::wrongCastOfArgumentReference, 2, CLASS_CAST_EXCEPTION, no_bucket, ERROR, [start of procedure dynamic__cast::wrongCastOfArgumentReference(),start of procedure Base,return from a call to dynamic__cast::Base::Base] +codetoanalyze/cpp/biabduction/subtyping/dynamic_cast.cpp, dynamic__cast::wrongPointerCast, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure dynamic__cast::wrongPointerCast(),start of procedure Base,return from a call to dynamic__cast::Base::Base] +codetoanalyze/cpp/biabduction/subtyping/dynamic_cast.cpp, dynamic__cast::wrongPointerCast, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure dynamic__cast::wrongPointerCast(),start of procedure Base,return from a call to dynamic__cast::Base::Base,Taking false branch] +codetoanalyze/cpp/biabduction/subtyping/dynamic_cast.cpp, dynamic__cast::wrongReferenceCast, 3, CLASS_CAST_EXCEPTION, no_bucket, ERROR, [start of procedure dynamic__cast::wrongReferenceCast(),start of procedure Base,return from a call to dynamic__cast::Base::Base] +codetoanalyze/cpp/biabduction/subtyping/dynamic_cast.cpp, dynamic__cast::wrongReferenceCastNotAssigned, 3, CLASS_CAST_EXCEPTION, no_bucket, ERROR, [start of procedure dynamic__cast::wrongReferenceCastNotAssigned(),start of procedure Base,return from a call to dynamic__cast::Base::Base] +codetoanalyze/cpp/biabduction/subtyping/implicit_cast_with_const.cpp, implicit_cast_with_const::BaseDerefNPE, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure implicit_cast_with_const::BaseDerefNPE(),start of procedure Base,return from a call to implicit_cast_with_const::Base::Base,start of procedure implicit_cast_with_const::deref()] +codetoanalyze/cpp/biabduction/subtyping/implicit_cast_with_const.cpp, implicit_cast_with_const::DerivedDerefNPE, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure implicit_cast_with_const::DerivedDerefNPE(),start of procedure Derived,start of procedure Base,return from a call to implicit_cast_with_const::Base::Base,return from a call to implicit_cast_with_const::Derived::Derived,start of procedure implicit_cast_with_const::deref()] +codetoanalyze/cpp/biabduction/subtyping/subtyping_check.cpp, B::setFG, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure setFG,start of procedure setF,return from a call to A::setF,Taking true branch] +codetoanalyze/cpp/biabduction/templates/dependent_parent.cpp, instantiate_class_bad, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure instantiate_class_bad(),start of procedure X,return from a call to X::X,start of procedure x_y,start of procedure Y,start of procedure Z,return from a call to Z::Z,return from a call to X::Y::Y,start of procedure y,start of procedure z,return from a call to Z::z,return from a call to X::Y::y,return from a call to X::x_y] +codetoanalyze/cpp/biabduction/templates/mangling.cpp, bad_integral_types_templates, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure bad_integral_types_templates(),start of procedure IntTemplate,return from a call to IntTemplate<0>::IntTemplate,start of procedure CharTemplate,return from a call to CharTemplate<99>::CharTemplate,start of procedure LongTemplate,return from a call to LongTemplate<1234567890>::LongTemplate] +codetoanalyze/cpp/biabduction/templates/mangling.cpp, bad_nullptr_templates, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure bad_nullptr_templates(),start of procedure NullPtrTemplate,return from a call to NullPtrTemplate::NullPtrTemplate] +codetoanalyze/cpp/biabduction/templates/mangling.cpp, bad_packed_templates, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure bad_packed_templates(),start of procedure Tuple,return from a call to Tuple>::Tuple] +codetoanalyze/cpp/biabduction/templates/mangling.cpp, bad_reference_and_pointer_templates, 5, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure bad_reference_and_pointer_templates(),start of procedure PointerTypeTemplate,return from a call to PointerTypeTemplate::PointerTypeTemplate,start of procedure PointerTypeTemplate2,return from a call to PointerTypeTemplate2::PointerTypeTemplate2,start of procedure FunctionPointerTemplate,return from a call to FunctionPointerTemplate::FunctionPointerTemplate,start of procedure ReferenceTypeTemplate,return from a call to ReferenceTypeTemplate::ReferenceTypeTemplate] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, employee_typeid, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure employee_typeid(),start of procedure Employee,start of procedure Person,return from a call to Person::Person,return from a call to Employee::Employee] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, employee_typeid, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure employee_typeid(),start of procedure Employee,start of procedure Person,return from a call to Person::Person,return from a call to Employee::Employee,Taking true branch] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, person_ptr_typeid, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure person_ptr_typeid(),start of procedure Person,return from a call to Person::Person] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, person_ptr_typeid, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure person_ptr_typeid(),start of procedure Person,return from a call to Person::Person,Taking true branch] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, person_typeid, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure person_typeid(),start of procedure Person,return from a call to Person::Person] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, person_typeid, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure person_typeid(),start of procedure Person,return from a call to Person::Person,Taking false branch] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, person_typeid_name, 3, MEMORY_LEAK, CPP, ERROR, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person::Person] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, person_typeid_name, 4, MEMORY_LEAK, CPP, ERROR, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person::Person] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, person_typeid_name, 8, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person::Person,Taking false branch] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, template_type_id_person, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure template_type_id_person(),start of procedure Person,return from a call to Person::Person,Skipping template_typeid(): empty list of specs] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, template_type_id_person, 5, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure template_type_id_person(),start of procedure Person,return from a call to Person::Person,Taking false branch] +codetoanalyze/cpp/biabduction/types/typeid_expr.cpp, template_typeid, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure template_typeid(),start of procedure Person,return from a call to Person::Person,start of procedure Person,return from a call to Person::Person,start of procedure ~Person,start of procedure __infer_inner_destructor_~Person,return from a call to Person::__infer_inner_destructor_~Person,return from a call to Person::~Person,start of procedure ~Person,start of procedure __infer_inner_destructor_~Person,return from a call to Person::__infer_inner_destructor_~Person,return from a call to Person::~Person] +codetoanalyze/cpp/biabduction/use_after_free/foreach_map.cpp, use_after_free::Basic::test_double_delete_bad, 3, BIABD_USE_AFTER_FREE, B1, ERROR, [start of procedure test_double_delete_bad,Skipping Y: method has no implementation] +codetoanalyze/cpp/biabduction/use_after_free/foreach_map.cpp, use_after_free::Basic::test_for_map_delete_ok_FP, 2, BIABD_USE_AFTER_FREE, B5, ERROR, [start of procedure test_for_map_delete_ok_FP,Loop condition is true. Entering loop body,Skipping operator*: method has no implementation,Loop condition is true. Entering loop body,Skipping operator*: method has no implementation] +codetoanalyze/cpp/biabduction/use_after_free/foreach_map.cpp, use_after_free::Basic::test_for_umap_delete_ok_FP, 2, BIABD_USE_AFTER_FREE, B5, ERROR, [start of procedure test_for_umap_delete_ok_FP,Loop condition is true. Entering loop body,Skipping operator*: method has no implementation,Loop condition is true. Entering loop body,Skipping operator*: method has no implementation] +codetoanalyze/cpp/biabduction/vector/empty_access.cpp, ERROR_vector_as_param_by_value_clear_ok, 2, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_vector_as_param_by_value_clear_ok(),Skipping vector: method has no implementation,Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/empty_access.cpp, ERROR_vector_as_param_by_value_empty_bad, 2, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_vector_as_param_by_value_empty_bad(),Skipping vector: method has no implementation,Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/empty_access.cpp, ERROR_vector_as_param_empty_bad, 2, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_vector_as_param_empty_bad(),Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/empty_access.cpp, ERROR_vector_as_param_nonempty_ok, 2, Cannot_star, no_bucket, ERROR, [start of procedure ERROR_vector_as_param_nonempty_ok(),Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/empty_access.cpp, FN_vector_as_param_clear_bad, 2, Cannot_star, no_bucket, ERROR, [start of procedure FN_vector_as_param_clear_bad(),Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/iterator_access.cpp, iterator_access::possible_npe, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure iterator_access::possible_npe(),Skipping ~__wrap_iter: method has no implementation,Loop condition is true. Entering loop body,Taking true branch,Taking true branch] +codetoanalyze/cpp/biabduction/vector/iterator_cmp.cpp, iterator_compare::ERROR_empty_deref1_bad, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_empty_deref1_bad(),Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/iterator_cmp.cpp, iterator_compare::ERROR_empty_deref2_bad, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_empty_deref2_bad(),Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/iterator_cmp.cpp, iterator_compare::ERROR_empty_no_deref1_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_empty_no_deref1_ok(),Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/iterator_cmp.cpp, iterator_compare::ERROR_empty_no_deref2_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_empty_no_deref2_ok(),Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/iterator_cmp.cpp, iterator_compare::ERROR_not_empty_deref1_bad, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_not_empty_deref1_bad(),Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/iterator_cmp.cpp, iterator_compare::ERROR_not_empty_deref2_bad, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_not_empty_deref2_bad(),Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/iterator_cmp.cpp, iterator_compare::ERROR_not_empty_no_deref1_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_not_empty_no_deref1_ok(),Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/iterator_cmp.cpp, iterator_compare::ERROR_not_empty_no_deref2_ok, 3, Cannot_star, no_bucket, ERROR, [start of procedure iterator_compare::ERROR_not_empty_no_deref2_ok(),Skipping vector: method has no implementation] +codetoanalyze/cpp/biabduction/vector/loop.cpp, FP_empty_vector_loop_ok, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure FP_empty_vector_loop_ok(),Skipping vector: method has no implementation,Loop condition is true. Entering loop body] +codetoanalyze/cpp/biabduction/vector/loop.cpp, non_empty_vector_loop_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure non_empty_vector_loop_bad(),Skipping vector: method has no implementation,Loop condition is true. Entering loop body] codetoanalyze/cpp/shared/attributes/annotate.cpp, derefFirstArg2_null_deref, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure derefFirstArg2_null_deref()] codetoanalyze/cpp/shared/attributes/annotate.cpp, derefFirstArg3_null_deref, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefFirstArg3_null_deref(),start of procedure derefFirstArg3()] codetoanalyze/cpp/shared/attributes/annotate.cpp, derefFirstArg_null_deref, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure derefFirstArg_null_deref()] diff --git a/infer/tests/codetoanalyze/cpp/errors/memory_leaks/array_leak.cpp b/infer/tests/codetoanalyze/cpp/biabduction/memory_leaks/array_leak.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/memory_leaks/array_leak.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/memory_leaks/array_leak.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/memory_leaks/object_leak.cpp b/infer/tests/codetoanalyze/cpp/biabduction/memory_leaks/object_leak.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/memory_leaks/object_leak.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/memory_leaks/object_leak.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/memory_leaks/raii_malloc.cpp b/infer/tests/codetoanalyze/cpp/biabduction/memory_leaks/raii_malloc.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/memory_leaks/raii_malloc.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/memory_leaks/raii_malloc.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/models/atomic.cpp b/infer/tests/codetoanalyze/cpp/biabduction/models/atomic.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/models/atomic.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/models/atomic.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/models/cmp.cpp b/infer/tests/codetoanalyze/cpp/biabduction/models/cmp.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/models/cmp.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/models/cmp.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/models/move.cpp b/infer/tests/codetoanalyze/cpp/biabduction/models/move.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/models/move.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/models/move.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/models/pair.cpp b/infer/tests/codetoanalyze/cpp/biabduction/models/pair.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/models/pair.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/models/pair.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/models/swap.cpp b/infer/tests/codetoanalyze/cpp/biabduction/models/swap.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/models/swap.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/models/swap.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/models/throw_wrapper.cpp b/infer/tests/codetoanalyze/cpp/biabduction/models/throw_wrapper.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/models/throw_wrapper.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/models/throw_wrapper.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/mutex/std_mutex.cpp b/infer/tests/codetoanalyze/cpp/biabduction/mutex/std_mutex.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/mutex/std_mutex.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/mutex/std_mutex.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/mutex/std_mutex_lock_profiling.cpp b/infer/tests/codetoanalyze/cpp/biabduction/mutex/std_mutex_lock_profiling.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/mutex/std_mutex_lock_profiling.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/mutex/std_mutex_lock_profiling.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/mutex/timed_mutex.cpp b/infer/tests/codetoanalyze/cpp/biabduction/mutex/timed_mutex.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/mutex/timed_mutex.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/mutex/timed_mutex.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/npe/boxed_ptr.cpp b/infer/tests/codetoanalyze/cpp/biabduction/npe/boxed_ptr.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/npe/boxed_ptr.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/npe/boxed_ptr.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/npe/cancellation.cpp b/infer/tests/codetoanalyze/cpp/biabduction/npe/cancellation.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/npe/cancellation.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/npe/cancellation.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/npe/npe_added_to_b1.cpp b/infer/tests/codetoanalyze/cpp/biabduction/npe/npe_added_to_b1.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/npe/npe_added_to_b1.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/npe/npe_added_to_b1.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/npe/null_returned_by_method.cpp b/infer/tests/codetoanalyze/cpp/biabduction/npe/null_returned_by_method.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/npe/null_returned_by_method.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/npe/null_returned_by_method.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/npe/object_deref.cpp b/infer/tests/codetoanalyze/cpp/biabduction/npe/object_deref.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/npe/object_deref.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/npe/object_deref.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/npe/recursive_call.cpp b/infer/tests/codetoanalyze/cpp/biabduction/npe/recursive_call.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/npe/recursive_call.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/npe/recursive_call.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/npe/skip_function_with_const_formals.cpp b/infer/tests/codetoanalyze/cpp/biabduction/npe/skip_function_with_const_formals.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/npe/skip_function_with_const_formals.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/npe/skip_function_with_const_formals.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/npe/this_not_null.cpp b/infer/tests/codetoanalyze/cpp/biabduction/npe/this_not_null.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/npe/this_not_null.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/npe/this_not_null.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/npe/throw_as_assert.cpp b/infer/tests/codetoanalyze/cpp/biabduction/npe/throw_as_assert.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/npe/throw_as_assert.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/npe/throw_as_assert.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/numeric/min_max.cpp b/infer/tests/codetoanalyze/cpp/biabduction/numeric/min_max.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/numeric/min_max.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/numeric/min_max.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/overwrite_attribute/lib.cpp b/infer/tests/codetoanalyze/cpp/biabduction/overwrite_attribute/lib.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/overwrite_attribute/lib.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/overwrite_attribute/lib.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/overwrite_attribute/lib.h b/infer/tests/codetoanalyze/cpp/biabduction/overwrite_attribute/lib.h similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/overwrite_attribute/lib.h rename to infer/tests/codetoanalyze/cpp/biabduction/overwrite_attribute/lib.h diff --git a/infer/tests/codetoanalyze/cpp/errors/overwrite_attribute/main.cpp b/infer/tests/codetoanalyze/cpp/biabduction/overwrite_attribute/main.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/overwrite_attribute/main.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/overwrite_attribute/main.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/pointers/unintialized.cpp b/infer/tests/codetoanalyze/cpp/biabduction/pointers/unintialized.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/pointers/unintialized.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/pointers/unintialized.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/resource_leaks/raii.cpp b/infer/tests/codetoanalyze/cpp/biabduction/resource_leaks/raii.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/resource_leaks/raii.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/resource_leaks/raii.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/shared b/infer/tests/codetoanalyze/cpp/biabduction/shared similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/shared rename to infer/tests/codetoanalyze/cpp/biabduction/shared diff --git a/infer/tests/codetoanalyze/cpp/errors/smart_ptr/const_volatile_type.cpp b/infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/const_volatile_type.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/smart_ptr/const_volatile_type.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/const_volatile_type.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp b/infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/deref_after_move_example.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/deref_after_move_example.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/smart_ptr/shared_ptr_compil.cpp b/infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_compil.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/smart_ptr/shared_ptr_compil.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_compil.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp b/infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_constructors.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_constructors.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp b/infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/shared_ptr_deref.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp b/infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/unique_ptr_deref.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/unique_ptr_deref.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp b/infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/weak_ptr.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/weak_ptr.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/smart_ptr/weak_ptr_compil.cpp b/infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/weak_ptr_compil.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/smart_ptr/weak_ptr_compil.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/smart_ptr/weak_ptr_compil.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/stack_escape/basic.cpp b/infer/tests/codetoanalyze/cpp/biabduction/stack_escape/basic.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/stack_escape/basic.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/stack_escape/basic.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/static_local/nonstatic_local_bad.cpp b/infer/tests/codetoanalyze/cpp/biabduction/static_local/nonstatic_local_bad.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/static_local/nonstatic_local_bad.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/static_local/nonstatic_local_bad.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/static_local/static_local_ok.cpp b/infer/tests/codetoanalyze/cpp/biabduction/static_local/static_local_ok.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/static_local/static_local_ok.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/static_local/static_local_ok.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/subtyping/cast_with_enforce.cpp b/infer/tests/codetoanalyze/cpp/biabduction/subtyping/cast_with_enforce.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/subtyping/cast_with_enforce.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/subtyping/cast_with_enforce.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/subtyping/dynamic_cast.cpp b/infer/tests/codetoanalyze/cpp/biabduction/subtyping/dynamic_cast.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/subtyping/dynamic_cast.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/subtyping/dynamic_cast.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/subtyping/implicit_cast_with_const.cpp b/infer/tests/codetoanalyze/cpp/biabduction/subtyping/implicit_cast_with_const.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/subtyping/implicit_cast_with_const.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/subtyping/implicit_cast_with_const.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/subtyping/subtyping_check.cpp b/infer/tests/codetoanalyze/cpp/biabduction/subtyping/subtyping_check.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/subtyping/subtyping_check.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/subtyping/subtyping_check.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/templates/dependent_parent.cpp b/infer/tests/codetoanalyze/cpp/biabduction/templates/dependent_parent.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/templates/dependent_parent.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/templates/dependent_parent.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/templates/mangling.cpp b/infer/tests/codetoanalyze/cpp/biabduction/templates/mangling.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/templates/mangling.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/templates/mangling.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/types/typeid_expr.cpp b/infer/tests/codetoanalyze/cpp/biabduction/types/typeid_expr.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/types/typeid_expr.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/types/typeid_expr.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/use_after_free/foreach_map.cpp b/infer/tests/codetoanalyze/cpp/biabduction/use_after_free/foreach_map.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/use_after_free/foreach_map.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/use_after_free/foreach_map.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/vector/access_field_later.cpp b/infer/tests/codetoanalyze/cpp/biabduction/vector/access_field_later.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/vector/access_field_later.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/vector/access_field_later.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/vector/empty_access.cpp b/infer/tests/codetoanalyze/cpp/biabduction/vector/empty_access.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/vector/empty_access.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/vector/empty_access.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/vector/iterator_access.cpp b/infer/tests/codetoanalyze/cpp/biabduction/vector/iterator_access.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/vector/iterator_access.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/vector/iterator_access.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/vector/iterator_cmp.cpp b/infer/tests/codetoanalyze/cpp/biabduction/vector/iterator_cmp.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/vector/iterator_cmp.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/vector/iterator_cmp.cpp diff --git a/infer/tests/codetoanalyze/cpp/errors/vector/loop.cpp b/infer/tests/codetoanalyze/cpp/biabduction/vector/loop.cpp similarity index 100% rename from infer/tests/codetoanalyze/cpp/errors/vector/loop.cpp rename to infer/tests/codetoanalyze/cpp/biabduction/vector/loop.cpp diff --git a/infer/tests/codetoanalyze/cpp/bufferoverrun/Makefile b/infer/tests/codetoanalyze/cpp/bufferoverrun/Makefile index a64d8f8f7..fb47df690 100644 --- a/infer/tests/codetoanalyze/cpp/bufferoverrun/Makefile +++ b/infer/tests/codetoanalyze/cpp/bufferoverrun/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++11 -nostdinc++ -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --bufferoverrun-only --ml-buckets cpp --no-filtering --debug-exceptions \ --project-root $(TESTS_DIR) --report-force-relative-path diff --git a/infer/tests/codetoanalyze/cpp/fb-taint/Makefile b/infer/tests/codetoanalyze/cpp/fb-taint/Makefile index b793d168a..8ac72b08c 100644 --- a/infer/tests/codetoanalyze/cpp/fb-taint/Makefile +++ b/infer/tests/codetoanalyze/cpp/fb-taint/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++11 -nostdinc++ -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --bufferoverrun-only --bo-service-handler-request --ml-buckets cpp --no-filtering \ --debug-exceptions --project-root $(TESTS_DIR) --report-force-relative-path diff --git a/infer/tests/codetoanalyze/cpp/frontend/Makefile b/infer/tests/codetoanalyze/cpp/frontend/Makefile index c9449b3e3..41a067f38 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/Makefile +++ b/infer/tests/codetoanalyze/cpp/frontend/Makefile @@ -5,7 +5,7 @@ TESTS_DIR=../../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = \ -nostdinc++ -isystem$(ROOT_DIR) -isystem$(CLANG_INCLUDES)/c++/v1/ \ -x c++ -std=c++11 -c diff --git a/infer/tests/codetoanalyze/cpp/impurity/Makefile b/infer/tests/codetoanalyze/cpp/impurity/Makefile index 51f5b1d2c..beb49c9f8 100644 --- a/infer/tests/codetoanalyze/cpp/impurity/Makefile +++ b/infer/tests/codetoanalyze/cpp/impurity/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++17 -nostdinc++ -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --impurity-only --debug-exceptions --project-root $(TESTS_DIR) --report-force-relative-path INFERPRINT_OPTIONS = --issues-tests diff --git a/infer/tests/codetoanalyze/cpp/liveness/Makefile b/infer/tests/codetoanalyze/cpp/liveness/Makefile index 57d5b3511..5ebd2db51 100644 --- a/infer/tests/codetoanalyze/cpp/liveness/Makefile +++ b/infer/tests/codetoanalyze/cpp/liveness/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++14 -nostdinc++ -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --liveness-only --ml-buckets cpp --debug-exceptions --project-root $(TESTS_DIR) INFERPRINT_OPTIONS = --issues-tests diff --git a/infer/tests/codetoanalyze/cpp/pulse/Makefile b/infer/tests/codetoanalyze/cpp/pulse/Makefile index 78ae296b7..a479a7f50 100644 --- a/infer/tests/codetoanalyze/cpp/pulse/Makefile +++ b/infer/tests/codetoanalyze/cpp/pulse/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++17 -nostdinc++ -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --pulse-only --debug-exceptions --project-root $(TESTS_DIR) INFERPRINT_OPTIONS = --issues-tests diff --git a/infer/tests/codetoanalyze/cpp/quandary/Makefile b/infer/tests/codetoanalyze/cpp/quandary/Makefile index 0e2bdf88c..3677b492f 100644 --- a/infer/tests/codetoanalyze/cpp/quandary/Makefile +++ b/infer/tests/codetoanalyze/cpp/quandary/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++11 -nostdinc++ -isystem$(ROOT_DIR) -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --function-pointer-specialization \ --quandary-only --passthroughs --debug-exceptions \ diff --git a/infer/tests/codetoanalyze/cpp/racerd/Makefile b/infer/tests/codetoanalyze/cpp/racerd/Makefile index 8af2f490d..9b9a57b97 100644 --- a/infer/tests/codetoanalyze/cpp/racerd/Makefile +++ b/infer/tests/codetoanalyze/cpp/racerd/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++11 -nostdinc++ -isystem$(ROOT_DIR) -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --racerd-only --debug-exceptions --project-root $(TESTS_DIR) diff --git a/infer/tests/codetoanalyze/cpp/siof/Makefile b/infer/tests/codetoanalyze/cpp/siof/Makefile index c96f76262..eabf5d178 100644 --- a/infer/tests/codetoanalyze/cpp/siof/Makefile +++ b/infer/tests/codetoanalyze/cpp/siof/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++11 -nostdinc++ -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --siof-only --siof-check-iostreams --debug-exceptions --project-root $(TESTS_DIR) INFERPRINT_OPTIONS = --issues-tests diff --git a/infer/tests/codetoanalyze/cpp/starvation/Makefile b/infer/tests/codetoanalyze/cpp/starvation/Makefile index 0560d4dad..1b604756c 100644 --- a/infer/tests/codetoanalyze/cpp/starvation/Makefile +++ b/infer/tests/codetoanalyze/cpp/starvation/Makefile @@ -6,7 +6,7 @@ TESTS_DIR = ../../.. ANALYZER = checkers -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++11 -nostdinc++ -isystem$(ROOT_DIR) -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --starvation-only --debug-exceptions --project-root $(TESTS_DIR) diff --git a/infer/tests/codetoanalyze/cpp/uninit/Makefile b/infer/tests/codetoanalyze/cpp/uninit/Makefile index 2fb98168c..2132f0828 100644 --- a/infer/tests/codetoanalyze/cpp/uninit/Makefile +++ b/infer/tests/codetoanalyze/cpp/uninit/Makefile @@ -5,7 +5,7 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem +# see explanations in cpp/biabduction/Makefile for the custom isystem CLANG_OPTIONS = -x c++ -std=c++11 -nostdinc++ -isystem$(CLANG_INCLUDES)/c++/v1/ -c INFER_OPTIONS = --uninit-only --debug-exceptions --project-root $(TESTS_DIR) INFERPRINT_OPTIONS = --issues-tests diff --git a/infer/tests/codetoanalyze/java/infer/.inferconfig b/infer/tests/codetoanalyze/java/biabduction/.inferconfig similarity index 100% rename from infer/tests/codetoanalyze/java/infer/.inferconfig rename to infer/tests/codetoanalyze/java/biabduction/.inferconfig diff --git a/infer/tests/codetoanalyze/java/infer/AnalysisStops.java b/infer/tests/codetoanalyze/java/biabduction/AnalysisStops.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/AnalysisStops.java rename to infer/tests/codetoanalyze/java/biabduction/AnalysisStops.java diff --git a/infer/tests/codetoanalyze/java/infer/ArrayOutOfBounds.java b/infer/tests/codetoanalyze/java/biabduction/ArrayOutOfBounds.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/ArrayOutOfBounds.java rename to infer/tests/codetoanalyze/java/biabduction/ArrayOutOfBounds.java diff --git a/infer/tests/codetoanalyze/java/infer/AutoGenerated.java b/infer/tests/codetoanalyze/java/biabduction/AutoGenerated.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/AutoGenerated.java rename to infer/tests/codetoanalyze/java/biabduction/AutoGenerated.java diff --git a/infer/tests/codetoanalyze/java/infer/BUCK b/infer/tests/codetoanalyze/java/biabduction/BUCK similarity index 100% rename from infer/tests/codetoanalyze/java/infer/BUCK rename to infer/tests/codetoanalyze/java/biabduction/BUCK diff --git a/infer/tests/codetoanalyze/java/infer/Builtins.java b/infer/tests/codetoanalyze/java/biabduction/Builtins.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/Builtins.java rename to infer/tests/codetoanalyze/java/biabduction/Builtins.java diff --git a/infer/tests/codetoanalyze/java/infer/ClassCastExceptions.java b/infer/tests/codetoanalyze/java/biabduction/ClassCastExceptions.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/ClassCastExceptions.java rename to infer/tests/codetoanalyze/java/biabduction/ClassCastExceptions.java diff --git a/infer/tests/codetoanalyze/java/infer/CloseableAsResourceExample.java b/infer/tests/codetoanalyze/java/biabduction/CloseableAsResourceExample.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/CloseableAsResourceExample.java rename to infer/tests/codetoanalyze/java/biabduction/CloseableAsResourceExample.java diff --git a/infer/tests/codetoanalyze/java/infer/CursorLeaks.java b/infer/tests/codetoanalyze/java/biabduction/CursorLeaks.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/CursorLeaks.java rename to infer/tests/codetoanalyze/java/biabduction/CursorLeaks.java diff --git a/infer/tests/codetoanalyze/java/infer/CursorNPEs.java b/infer/tests/codetoanalyze/java/biabduction/CursorNPEs.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/CursorNPEs.java rename to infer/tests/codetoanalyze/java/biabduction/CursorNPEs.java diff --git a/infer/tests/codetoanalyze/java/infer/DivideByZero.java b/infer/tests/codetoanalyze/java/biabduction/DivideByZero.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/DivideByZero.java rename to infer/tests/codetoanalyze/java/biabduction/DivideByZero.java diff --git a/infer/tests/codetoanalyze/java/infer/DoubleExample.java b/infer/tests/codetoanalyze/java/biabduction/DoubleExample.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/DoubleExample.java rename to infer/tests/codetoanalyze/java/biabduction/DoubleExample.java diff --git a/infer/tests/codetoanalyze/java/infer/DynamicDispatch.java b/infer/tests/codetoanalyze/java/biabduction/DynamicDispatch.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/DynamicDispatch.java rename to infer/tests/codetoanalyze/java/biabduction/DynamicDispatch.java diff --git a/infer/tests/codetoanalyze/java/infer/FilterInputStreamLeaks.java b/infer/tests/codetoanalyze/java/biabduction/FilterInputStreamLeaks.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/FilterInputStreamLeaks.java rename to infer/tests/codetoanalyze/java/biabduction/FilterInputStreamLeaks.java diff --git a/infer/tests/codetoanalyze/java/infer/FilterOutputStreamLeaks.java b/infer/tests/codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/FilterOutputStreamLeaks.java rename to infer/tests/codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java diff --git a/infer/tests/codetoanalyze/java/infer/GuardedByExample.java b/infer/tests/codetoanalyze/java/biabduction/GuardedByExample.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/GuardedByExample.java rename to infer/tests/codetoanalyze/java/biabduction/GuardedByExample.java diff --git a/infer/tests/codetoanalyze/java/infer/HashMapExample.java b/infer/tests/codetoanalyze/java/biabduction/HashMapExample.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/HashMapExample.java rename to infer/tests/codetoanalyze/java/biabduction/HashMapExample.java diff --git a/infer/tests/codetoanalyze/java/infer/IntegerExample.java b/infer/tests/codetoanalyze/java/biabduction/IntegerExample.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/IntegerExample.java rename to infer/tests/codetoanalyze/java/biabduction/IntegerExample.java diff --git a/infer/tests/codetoanalyze/java/infer/InvokeDynamic.java b/infer/tests/codetoanalyze/java/biabduction/InvokeDynamic.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/InvokeDynamic.java rename to infer/tests/codetoanalyze/java/biabduction/InvokeDynamic.java diff --git a/infer/tests/codetoanalyze/java/infer/JunitAssertion.java b/infer/tests/codetoanalyze/java/biabduction/JunitAssertion.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/JunitAssertion.java rename to infer/tests/codetoanalyze/java/biabduction/JunitAssertion.java diff --git a/infer/tests/codetoanalyze/java/infer/Lists.java b/infer/tests/codetoanalyze/java/biabduction/Lists.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/Lists.java rename to infer/tests/codetoanalyze/java/biabduction/Lists.java diff --git a/infer/tests/codetoanalyze/java/infer/Makefile b/infer/tests/codetoanalyze/java/biabduction/Makefile similarity index 100% rename from infer/tests/codetoanalyze/java/infer/Makefile rename to infer/tests/codetoanalyze/java/biabduction/Makefile diff --git a/infer/tests/codetoanalyze/java/infer/NeverNullSource.java b/infer/tests/codetoanalyze/java/biabduction/NeverNullSource.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/NeverNullSource.java rename to infer/tests/codetoanalyze/java/biabduction/NeverNullSource.java diff --git a/infer/tests/codetoanalyze/java/infer/NopFun.java b/infer/tests/codetoanalyze/java/biabduction/NopFun.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/NopFun.java rename to infer/tests/codetoanalyze/java/biabduction/NopFun.java diff --git a/infer/tests/codetoanalyze/java/infer/NullPointerExceptions.java b/infer/tests/codetoanalyze/java/biabduction/NullPointerExceptions.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/NullPointerExceptions.java rename to infer/tests/codetoanalyze/java/biabduction/NullPointerExceptions.java diff --git a/infer/tests/codetoanalyze/java/infer/ReaderLeaks.java b/infer/tests/codetoanalyze/java/biabduction/ReaderLeaks.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/ReaderLeaks.java rename to infer/tests/codetoanalyze/java/biabduction/ReaderLeaks.java diff --git a/infer/tests/codetoanalyze/java/infer/ResourceLeaks.java b/infer/tests/codetoanalyze/java/biabduction/ResourceLeaks.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/ResourceLeaks.java rename to infer/tests/codetoanalyze/java/biabduction/ResourceLeaks.java diff --git a/infer/tests/codetoanalyze/java/infer/ReturnValueIgnored.java b/infer/tests/codetoanalyze/java/biabduction/ReturnValueIgnored.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/ReturnValueIgnored.java rename to infer/tests/codetoanalyze/java/biabduction/ReturnValueIgnored.java diff --git a/infer/tests/codetoanalyze/java/infer/SkippedSourceFile.java b/infer/tests/codetoanalyze/java/biabduction/SkippedSourceFile.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/SkippedSourceFile.java rename to infer/tests/codetoanalyze/java/biabduction/SkippedSourceFile.java diff --git a/infer/tests/codetoanalyze/java/infer/SomeLibrary.java b/infer/tests/codetoanalyze/java/biabduction/SomeLibrary.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/SomeLibrary.java rename to infer/tests/codetoanalyze/java/biabduction/SomeLibrary.java diff --git a/infer/tests/codetoanalyze/java/infer/SuppressLintExample.java b/infer/tests/codetoanalyze/java/biabduction/SuppressLintExample.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/SuppressLintExample.java rename to infer/tests/codetoanalyze/java/biabduction/SuppressLintExample.java diff --git a/infer/tests/codetoanalyze/java/infer/T.java b/infer/tests/codetoanalyze/java/biabduction/T.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/T.java rename to infer/tests/codetoanalyze/java/biabduction/T.java diff --git a/infer/tests/codetoanalyze/java/infer/Utils.java b/infer/tests/codetoanalyze/java/biabduction/Utils.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/Utils.java rename to infer/tests/codetoanalyze/java/biabduction/Utils.java diff --git a/infer/tests/codetoanalyze/java/infer/WriterLeaks.java b/infer/tests/codetoanalyze/java/biabduction/WriterLeaks.java similarity index 100% rename from infer/tests/codetoanalyze/java/infer/WriterLeaks.java rename to infer/tests/codetoanalyze/java/biabduction/WriterLeaks.java diff --git a/infer/tests/codetoanalyze/java/biabduction/issues.exp b/infer/tests/codetoanalyze/java/biabduction/issues.exp new file mode 100644 index 000000000..38fb22aef --- /dev/null +++ b/infer/tests/codetoanalyze/java/biabduction/issues.exp @@ -0,0 +1,194 @@ +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.accessPathInCalleeMayCauseFalseNegative():void, 3, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure accessPathInCalleeMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure accessPathOnParam(...),Skipping toString(): unknown method] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.callOnCastUndefinedObjMayCauseFalseNegative():void, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure callOnCastUndefinedObjMayCauseFalseNegative(),start of procedure castExternalPreventsSpecInference(),Skipping externalFunc(): unknown method,Definition of externalFunc(),return from a call to String AnalysisStops.castExternalPreventsSpecInference(),Skipping toString(): unknown method] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.callOnUndefinedObjMayCauseFalseNegative():void, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure callOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure retZero(),return from a call to int AnalysisStops$MyObj.retZero()] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.castFailureOnUndefinedObjMayCauseFalseNegative():void, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure castFailureOnUndefinedObjMayCauseFalseNegative(),start of procedure castExternalPreventsSpecInference(),Skipping externalFunc(): unknown method,Definition of externalFunc(),return from a call to String AnalysisStops.castExternalPreventsSpecInference()] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.fieldReadAferCastMayCauseFalseNegative(java.util.Iterator):void, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure fieldReadAferCastMayCauseFalseNegative(...),Skipping toString(): unknown method,Taking true branch] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.fieldReadInCalleeMayCauseFalseNegative():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure fieldReadInCalleeMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure derefParam(...),Skipping toString(): unknown method] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.fieldReadInCalleeWithAngelicObjFieldMayCauseFalseNegative():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure fieldReadInCalleeWithAngelicObjFieldMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure derefParam(...),Skipping toString(): unknown method] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.fieldReadOnUndefinedObjMayCauseFalseNegative():void, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure fieldReadOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2()] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.fieldWriteOnUndefinedObjMayCauseFalseNegative():void, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure fieldWriteOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2()] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.heapFieldOfAngelicObjMayCauseFalseNegative():void, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure heapFieldOfAngelicObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking true branch] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.infiniteMaterializationMayCauseFalseNegative(boolean):void, 5, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure infiniteMaterializationMayCauseFalseNegative(...),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalseNegative():void, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure primitiveFieldOfAngelicObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking true branch] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalseNegative():void, 5, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure primitiveFieldOfAngelicObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.recursiveAngelicTypesMayCauseFalseNegative():void, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure recursiveAngelicTypesMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2()] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.skipFunctionInLoopMayCauseFalseNegative():void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure skipFunctionInLoopMayCauseFalseNegative(),Taking true branch,Skipping externalFunc(): unknown method,Definition of externalFunc(),Taking false branch] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.skipPointerDerefMayCauseCalleeFalseNegative():void, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure skipPointerDerefMayCauseCalleeFalseNegative(),start of procedure skipPointerDerefPreventsSpecInferenceRetZero(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to int AnalysisStops.skipPointerDerefPreventsSpecInferenceRetZero()] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.skipPointerDerefMayCauseInterprocFalseNegative():void, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure skipPointerDerefMayCauseInterprocFalseNegative(),start of procedure skipPointerDerefPreventsSpecInferenceRetZero(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to int AnalysisStops.skipPointerDerefPreventsSpecInferenceRetZero(),start of procedure divideByParam(...)] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.skipPointerDerefMayCauseLocalFalseNegative():void, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure skipPointerDerefMayCauseLocalFalseNegative(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method] +codetoanalyze/java/biabduction/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.specInferenceMayFailAndCauseFalseNegative(boolean,java.util.Iterator):void, 26, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure specInferenceMayFailAndCauseFalseNegative(...),start of procedure skipPointerDerefMayCauseLocalFalseNegative(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to void AnalysisStops.skipPointerDerefMayCauseLocalFalseNegative(),start of procedure skipPointerDerefPreventsSpecInferenceRetObj(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to Object AnalysisStops.skipPointerDerefPreventsSpecInferenceRetObj(),start of procedure skipPointerDerefPreventsSpecInferenceRetZero(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to int AnalysisStops.skipPointerDerefPreventsSpecInferenceRetZero(),start of procedure skipPointerDerefMayCauseCalleeFalseNegative(),start of procedure skipPointerDerefPreventsSpecInferenceRetZero(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to int AnalysisStops.skipPointerDerefPreventsSpecInferenceRetZero(),return from a call to void AnalysisStops.skipPointerDerefMayCauseCalleeFalseNegative(),start of procedure skipPointerDerefMayCauseInterprocFalseNegative(),start of procedure skipPointerDerefPreventsSpecInferenceRetZero(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to int AnalysisStops.skipPointerDerefPreventsSpecInferenceRetZero(),start of procedure divideByParam(...),return from a call to void AnalysisStops.divideByParam(int),return from a call to void AnalysisStops.skipPointerDerefMayCauseInterprocFalseNegative(),start of procedure castFailureOnUndefinedObjMayCauseFalseNegative(),start of procedure castExternalPreventsSpecInference(),Skipping externalFunc(): unknown method,Definition of externalFunc(),return from a call to String AnalysisStops.castExternalPreventsSpecInference(),return from a call to void AnalysisStops.castFailureOnUndefinedObjMayCauseFalseNegative(),start of procedure callOnCastUndefinedObjMayCauseFalseNegative(),start of procedure castExternalPreventsSpecInference(),Skipping externalFunc(): unknown method,Definition of externalFunc(),return from a call to String AnalysisStops.castExternalPreventsSpecInference(),Skipping toString(): unknown method,return from a call to void AnalysisStops.callOnCastUndefinedObjMayCauseFalseNegative(),start of procedure callOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure retZero(),return from a call to int AnalysisStops$MyObj.retZero(),return from a call to void AnalysisStops.callOnUndefinedObjMayCauseFalseNegative(),start of procedure callOnUndefinedObjMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure retOne(),return from a call to int AnalysisStops$MyObj.retOne(),return from a call to void AnalysisStops.callOnUndefinedObjMayCauseFalsePositive(),start of procedure fieldWriteOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),return from a call to void AnalysisStops.fieldWriteOnUndefinedObjMayCauseFalseNegative(),start of procedure fieldWriteOnUndefinedObjMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Skipping toString(): unknown method,return from a call to void AnalysisStops.fieldWriteOnUndefinedObjMayCauseFalsePositive(),start of procedure fieldReadOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),return from a call to void AnalysisStops.fieldReadOnUndefinedObjMayCauseFalseNegative(),start of procedure fieldReadOnUndefinedObjMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Skipping toString(): unknown method,return from a call to void AnalysisStops.fieldReadOnUndefinedObjMayCauseFalsePositive(),start of procedure recursiveAngelicTypesMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),return from a call to void AnalysisStops.recursiveAngelicTypesMayCauseFalseNegative(),Skipping recursiveAngelicTypesMayCauseFalsePositive(): empty list of specs,Definition of recursiveAngelicTypesMayCauseFalsePositive(),start of procedure infiniteMaterializationMayCauseFalseNegative(...),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch,return from a call to void AnalysisStops.infiniteMaterializationMayCauseFalseNegative(boolean),start of procedure infiniteMaterializationMayCauseFalsePositive(...),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch,Skipping toString(): unknown method,return from a call to void AnalysisStops.infiniteMaterializationMayCauseFalsePositive(boolean),start of procedure primitiveFieldOfAngelicObjMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking true branch,return from a call to void AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalsePositive(),start of procedure primitiveFieldOfAngelicObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch,return from a call to void AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalseNegative(),start of procedure heapFieldOfAngelicObjMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch,return from a call to void AnalysisStops.heapFieldOfAngelicObjMayCauseFalsePositive(),start of procedure heapFieldOfAngelicObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking true branch,return from a call to void AnalysisStops.heapFieldOfAngelicObjMayCauseFalseNegative(),Skipping fieldReadAferCastMayCauseFalseNegative(...): empty list of specs,Definition of fieldReadAferCastMayCauseFalseNegative(...),start of procedure fieldReadInCalleeMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure derefParam(...),Skipping toString(): unknown method,return from a call to void AnalysisStops.derefParam(AnalysisStops$MyObj),return from a call to void AnalysisStops.fieldReadInCalleeMayCauseFalsePositive(),start of procedure fieldReadInCalleeWithAngelicObjFieldMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure derefParam(...),Skipping toString(): unknown method,return from a call to void AnalysisStops.derefParam(AnalysisStops$MyObj),return from a call to void AnalysisStops.fieldReadInCalleeWithAngelicObjFieldMayCauseFalsePositive(),start of procedure accessPathInCalleeMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure accessPathOnParam(...),Skipping toString(): unknown method,return from a call to void AnalysisStops.accessPathOnParam(AnalysisStops$MyObj),return from a call to void AnalysisStops.accessPathInCalleeMayCauseFalsePositive()] +codetoanalyze/java/biabduction/ArrayOutOfBounds.java, codetoanalyze.java.infer.ArrayOutOfBounds.arrayOutOfBounds():int, 2, ARRAY_OUT_OF_BOUNDS_L1, no_bucket, ERROR, [start of procedure arrayOutOfBounds()] +codetoanalyze/java/biabduction/Builtins.java, codetoanalyze.java.infer.Builtins.causeError(java.lang.Object):void, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure causeError(...),Taking true branch] +codetoanalyze/java/biabduction/Builtins.java, codetoanalyze.java.infer.Builtins.doNotBlockError(java.lang.Object):void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure doNotBlockError(...),Taking true branch] +codetoanalyze/java/biabduction/ClassCastExceptions.java, codetoanalyze.java.infer.ClassCastExceptions.classCastException():void, 2, CLASS_CAST_EXCEPTION, no_bucket, ERROR, [start of procedure classCastException(),start of procedure SubClassA(),start of procedure SuperClass(),return from a call to SuperClass.(),return from a call to SubClassA.()] +codetoanalyze/java/biabduction/ClassCastExceptions.java, codetoanalyze.java.infer.ClassCastExceptions.classCastExceptionImplementsInterface():int, 1, CLASS_CAST_EXCEPTION, no_bucket, ERROR, [start of procedure classCastExceptionImplementsInterface(),start of procedure AnotherImplementationOfInterface(),return from a call to AnotherImplementationOfInterface.()] +codetoanalyze/java/biabduction/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.failToCloseWithCloseQuietly():void, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure failToCloseWithCloseQuietly(),start of procedure SomeResource(),return from a call to SomeResource.(),start of procedure doSomething(),Skipping star(): unknown method,Definition of star(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] +codetoanalyze/java/biabduction/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.leakFoundWhenIndirectlyImplementingCloseable():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure leakFoundWhenIndirectlyImplementingCloseable(),start of procedure CloseableAsResourceExample$MyResource(...),return from a call to CloseableAsResourceExample$MyResource.(CloseableAsResourceExample)] +codetoanalyze/java/biabduction/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.notClosingCloseable():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure notClosingCloseable(),start of procedure SomeResource(),return from a call to SomeResource.()] +codetoanalyze/java/biabduction/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.notClosingWrapper():void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure notClosingWrapper(),start of procedure Resource(),return from a call to Resource.(),start of procedure Sub(...),start of procedure Wrapper(...),return from a call to Wrapper.(Resource),return from a call to Sub.(Resource),start of procedure close(),return from a call to void Resource.close()] +codetoanalyze/java/biabduction/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.skippedVritualCallDoesNotCloseResourceOnReceiver():void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure skippedVritualCallDoesNotCloseResourceOnReceiver(),start of procedure SomeResource(),return from a call to SomeResource.(),Skipping foo(...): unknown method,Definition of foo(...)] +codetoanalyze/java/biabduction/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.sourceOfNullWithResourceLeak():codetoanalyze.java.infer.T, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.()] +codetoanalyze/java/biabduction/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.withException():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure withException(),start of procedure SomeResource(),return from a call to SomeResource.(),start of procedure doSomething(),Skipping star(): unknown method,Definition of star(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] +codetoanalyze/java/biabduction/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.completeDownloadNotClosed(android.app.DownloadManager):int, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure completeDownloadNotClosed(...),Taking false branch,Skipping getColumnIndex(...): unknown method] +codetoanalyze/java/biabduction/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.cursorClosedCheckNullCheckClosed_FP(android.database.sqlite.SQLiteDatabase):java.lang.Object, 11, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure cursorClosedCheckNullCheckClosed_FP(...),Taking false branch,Skipping getString(...): unknown method,Taking true branch,Taking false branch] +codetoanalyze/java/biabduction/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.cursorNotClosed(android.database.sqlite.SQLiteDatabase):int, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure cursorNotClosed(...),Skipping getCount(): unknown method] +codetoanalyze/java/biabduction/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.getBucketCountNotClosed():int, 9, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure getBucketCountNotClosed(),Taking false branch,Taking false branch] +codetoanalyze/java/biabduction/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.getImageCountHelperNotClosed(java.lang.String):int, 9, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure getImageCountHelperNotClosed(...),Taking true branch,Skipping getInt(...): unknown method] +codetoanalyze/java/biabduction/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.loadPrefsFromContentProviderNotClosed():void, 10, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure loadPrefsFromContentProviderNotClosed(),Taking false branch,Taking true branch] +codetoanalyze/java/biabduction/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.queryUVMLegacyDbNotClosed():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure queryUVMLegacyDbNotClosed(),Skipping setTables(...): unknown method,Taking true branch] +codetoanalyze/java/biabduction/CursorNPEs.java, codetoanalyze.java.infer.CursorNPEs.cursorFromContentResolverNPE(java.lang.String):void, 8, NULL_DEREFERENCE, B1, ERROR, [start of procedure cursorFromContentResolverNPE(...)] +codetoanalyze/java/biabduction/CursorNPEs.java, codetoanalyze.java.infer.CursorNPEs.cursorFromDownloadManagerNPE(android.app.DownloadManager):int, 5, NULL_DEREFERENCE, B2, ERROR, [start of procedure cursorFromDownloadManagerNPE(...)] +codetoanalyze/java/biabduction/CursorNPEs.java, codetoanalyze.java.infer.CursorNPEs.cursorFromMediaNPE():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure cursorFromMediaNPE()] +codetoanalyze/java/biabduction/DivideByZero.java, codetoanalyze.java.infer.DivideByZero.callDivideByZeroInterProc():int, 1, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure callDivideByZeroInterProc(),start of procedure divideByZeroInterProc(...)] +codetoanalyze/java/biabduction/DivideByZero.java, codetoanalyze.java.infer.DivideByZero.divByZeroLocal(java.lang.String):int, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure divByZeroLocal(...)] +codetoanalyze/java/biabduction/DivideByZero.java, codetoanalyze.java.infer.DivideByZero.divideByZeroWithStaticField():int, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure divideByZeroWithStaticField(),start of procedure setXToZero(),return from a call to void DivideByZero.setXToZero(),start of procedure divideByZeroInterProc(...)] +codetoanalyze/java/biabduction/DoubleExample.java, codetoanalyze.java.infer.DoubleExample.testdReadNullableBad():java.lang.Double, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure testdReadNullableBad()] +codetoanalyze/java/biabduction/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch$WithField.dispatchOnFieldBad():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure dispatchOnFieldBad(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure DynamicDispatch$WithField(...),return from a call to DynamicDispatch$WithField.(DynamicDispatch$Subtype),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo()] +codetoanalyze/java/biabduction/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.dynamicDispatchCallsWrapperWithSubtypeBad():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure dynamicDispatchCallsWrapperWithSubtypeBad(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure dynamicDispatchWrapperFoo(...),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo(),return from a call to Object DynamicDispatch.dynamicDispatchWrapperFoo(DynamicDispatch$Subtype)] +codetoanalyze/java/biabduction/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.dynamicDispatchCallsWrapperWithSupertypeBad():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure dynamicDispatchCallsWrapperWithSupertypeBad(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),start of procedure dynamicDispatchWrapperBar(...),start of procedure bar(),return from a call to Object DynamicDispatch$Supertype.bar(),return from a call to Object DynamicDispatch.dynamicDispatchWrapperBar(DynamicDispatch$Supertype)] +codetoanalyze/java/biabduction/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.dynamicDispatchShouldNotCauseFalseNegativeEasy():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure dynamicDispatchShouldNotCauseFalseNegativeEasy(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo()] +codetoanalyze/java/biabduction/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.dynamicDispatchShouldNotReportWhenCallingSupertype(codetoanalyze.java.infer.DynamicDispatch$Subtype):void, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure dynamicDispatchShouldNotReportWhenCallingSupertype(...),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo()] +codetoanalyze/java/biabduction/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.dynamicResolutionWithPrivateMethodBad():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure dynamicResolutionWithPrivateMethodBad(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure callFoo(...),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo(),return from a call to Object DynamicDispatch.callFoo(DynamicDispatch$Subtype)] +codetoanalyze/java/biabduction/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.interfaceShouldNotCauseFalseNegativeEasy():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure interfaceShouldNotCauseFalseNegativeEasy(),start of procedure DynamicDispatch$Impl(),return from a call to DynamicDispatch$Impl.(),start of procedure foo(),return from a call to Object DynamicDispatch$Impl.foo()] +codetoanalyze/java/biabduction/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.interfaceShouldNotCauseFalseNegativeHard(codetoanalyze.java.infer.DynamicDispatch$Impl):void, 1, NULL_DEREFERENCE, B2, ERROR, [start of procedure interfaceShouldNotCauseFalseNegativeHard(...),start of procedure foo(),return from a call to Object DynamicDispatch$Impl.foo()] +codetoanalyze/java/biabduction/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.bufferedInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure bufferedInputStreamNotClosedAfterRead(),Skipping BufferedInputStream(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.checkedInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure checkedInputStreamNotClosedAfterRead(),Skipping CheckedInputStream(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.cipherInputStreamNotClosedAfterSkip():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure cipherInputStreamNotClosedAfterSkip(),Skipping CipherInputStream(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.dataInputStreamNotClosedAfterRead():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure dataInputStreamNotClosedAfterRead(),Skipping DataInputStream(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.deflaterInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure deflaterInputStreamNotClosedAfterRead(),Skipping DeflaterInputStream(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.digestInputStreamNotClosedAfterRead():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure digestInputStreamNotClosedAfterRead(),Skipping DigestInputStream(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure gzipInputStreamNotClosedAfterRead()] +codetoanalyze/java/biabduction/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure gzipInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/biabduction/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.inflaterInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure inflaterInputStreamNotClosedAfterRead(),Skipping InflaterInputStream(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.pushbackInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pushbackInputStreamNotClosedAfterRead(),Skipping PushbackInputStream(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.bufferedOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure bufferedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.checkedOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure checkedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.cipherOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure cipherOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.dataOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure dataOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.deflaterOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure deflaterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.digestOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure digestOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.filterOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure filterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure gzipOutputStreamNotClosedAfterFlush()] +codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure gzipOutputStreamNotClosedAfterFlush(),exception java.io.IOException] +codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.inflaterOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure inflaterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/biabduction/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.printStreamNotClosedAfterWrite():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure printStreamNotClosedAfterWrite()] +codetoanalyze/java/biabduction/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getAfterClearBad():void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure getAfterClearBad()] +codetoanalyze/java/biabduction/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getAfterRemovingTheKeyBad():void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure getAfterRemovingTheKeyBad()] +codetoanalyze/java/biabduction/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getFromKeySetGood_FP(java.util.HashMap):void, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure getFromKeySetGood_FP(...),Taking true branch] +codetoanalyze/java/biabduction/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getOneIntegerWithoutCheck():int, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure getOneIntegerWithoutCheck()] +codetoanalyze/java/biabduction/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getTwoIntegersWithOneCheck(java.lang.Integer,java.lang.Integer):void, 8, NULL_DEREFERENCE, B2, ERROR, [start of procedure getTwoIntegersWithOneCheck(...),Taking true branch,Taking true branch] +codetoanalyze/java/biabduction/IntegerExample.java, codetoanalyze.java.infer.IntegerExample.testIntegerEqualsBad():void, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure testIntegerEqualsBad(),Taking true branch] +codetoanalyze/java/biabduction/InvokeDynamic.java, codetoanalyze.java.infer.InvokeDynamic.invokeDynamicThenNpeBad(java.util.List):void, 7, NULL_DEREFERENCE, B1, ERROR, [start of procedure invokeDynamicThenNpeBad(...),start of procedure callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_3_3(),return from a call to Comparator InvokeDynamic.callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_3_3(),Skipping sort(...): unknown method] +codetoanalyze/java/biabduction/InvokeDynamic.java, codetoanalyze.java.infer.InvokeDynamic.lambda$npeInLambdaBad$1(java.lang.String,java.lang.String):int, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure lambda$npeInLambdaBad$1(...)] +codetoanalyze/java/biabduction/InvokeDynamic.java, codetoanalyze.java.infer.InvokeDynamic.npeViaSimpleCapture():java.lang.Integer, 3, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure npeViaSimpleCapture(),start of procedure callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_10_3(...),return from a call to Function InvokeDynamic.callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_10_3(String)] +codetoanalyze/java/biabduction/InvokeDynamic.java, codetoanalyze.java.infer.InvokeDynamic.npeViaSimpleParamPassing():java.lang.Integer, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure npeViaSimpleParamPassing(),start of procedure callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_11_0(),return from a call to Function InvokeDynamic.callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_11_0()] +codetoanalyze/java/biabduction/JunitAssertion.java, codetoanalyze.java.infer.JunitAssertion.consistentAssertion(codetoanalyze.java.infer.JunitAssertion$A):void, 1, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure consistentAssertion(...),Taking false branch] +codetoanalyze/java/biabduction/JunitAssertion.java, codetoanalyze.java.infer.JunitAssertion.inconsistentAssertion(codetoanalyze.java.infer.JunitAssertion$A):void, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure inconsistentAssertion(...),Taking false branch] +codetoanalyze/java/biabduction/Lists.java, codetoanalyze.java.infer.Lists.clearCausesEmptinessNPE(java.util.List,int):void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure clearCausesEmptinessNPE(...),Taking true branch,Taking true branch] +codetoanalyze/java/biabduction/Lists.java, codetoanalyze.java.infer.Lists.getElementNPE(java.util.List):void, 4, NULL_DEREFERENCE, B2, ERROR, [start of procedure getElementNPE(...),Taking false branch,start of procedure getElement(...),Taking true branch,return from a call to Object Lists.getElement(List)] +codetoanalyze/java/biabduction/Lists.java, codetoanalyze.java.infer.Lists.removeInvalidatesNonEmptinessNPE(java.util.List,int):void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure removeInvalidatesNonEmptinessNPE(...),Taking true branch,Taking true branch] +codetoanalyze/java/biabduction/NopFun.java, T.go():void, 4, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure go(),start of procedure f(),Taking true branch,return from a call to void T.f(),start of procedure h(),Taking true branch,return from a call to void T.h()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure npeWithDollars()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions$E.dereferenceNullableInterfaceFieldBad():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure dereferenceNullableInterfaceFieldBad()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.FP_noNullPointerExceptionAfterSkipFunction():void, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure FP_noNullPointerExceptionAfterSkipFunction(),Skipping String(...): unknown method,Skipping toString(): unknown method,start of procedure genericMethodSomewhereCheckingForNull(...),Taking true branch,return from a call to void NullPointerExceptions.genericMethodSomewhereCheckingForNull(String)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.NPEvalueOfFromHashmapBad(java.util.HashMap,int):int, 1, NULL_DEREFERENCE, B2, ERROR, [start of procedure NPEvalueOfFromHashmapBad(...)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.addNullToImmutableListBuilderBad():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure addNullToImmutableListBuilderBad(),Skipping builder(): unknown method,start of procedure getObject(),return from a call to Object NullPointerExceptions.getObject()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.badCheckShouldCauseNPE():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure badCheckShouldCauseNPE(),start of procedure getBool(),Skipping test(): unknown method,Definition of test(),Taking true branch,return from a call to Boolean NullPointerExceptions.getBool(),Taking true branch,start of procedure getObj(),Skipping test(): unknown method,Definition of test(),Taking false branch,return from a call to Object NullPointerExceptions.getObj()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.cursorFromContentResolverNPE(java.lang.String):void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure cursorFromContentResolverNPE(...)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.deferenceNullableMethodCallingSkippedMethodBad():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure deferenceNullableMethodCallingSkippedMethodBad(),start of procedure wrapUnknownFuncWithNullable(),Skipping unknownFunc(): unknown method,Definition of unknownFunc(),return from a call to Object NullPointerExceptions.wrapUnknownFuncWithNullable()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.derefNull():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefNull(),start of procedure derefUndefinedCallee(),start of procedure retUndefined(),return from a call to Object NullPointerExceptions.retUndefined(),Skipping toString(): unknown method,return from a call to Object NullPointerExceptions.derefUndefinedCallee()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.derefNullableGetter():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefNullableGetter(),start of procedure nullableGetter(),return from a call to Object NullPointerExceptions.nullableGetter()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.derefNullableRet(boolean):void, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure derefNullableRet(...),start of procedure nullableRet(...),Taking true branch,return from a call to Object NullPointerExceptions.nullableRet(boolean)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.derefUndefNullableRet():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefUndefNullableRet(),Skipping undefNullableRet(): unknown method,Definition of undefNullableRet()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.derefUndefNullableRetWrapper():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefUndefNullableRetWrapper(),start of procedure undefNullableWrapper(),Skipping undefNullableRet(): unknown method,Definition of undefNullableRet(),return from a call to Object NullPointerExceptions.undefNullableWrapper()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.dereferenceAfterLoopOnList(codetoanalyze.java.infer.NullPointerExceptions$L):void, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure dereferenceAfterLoopOnList(...),start of procedure returnsNullAfterLoopOnList(...),Taking true branch,Taking true branch,Taking false branch,return from a call to Object NullPointerExceptions.returnsNullAfterLoopOnList(NullPointerExceptions$L)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.dereferenceAfterUnlock1(java.util.concurrent.locks.Lock):void, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure dereferenceAfterUnlock1(...),Skipping toString(): unknown method] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.dereferenceAfterUnlock2(java.util.concurrent.locks.Lock):void, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure dereferenceAfterUnlock2(...),Skipping toString(): unknown method] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.hashmapNPE(java.util.HashMap,java.lang.Object):java.lang.String, 1, NULL_DEREFERENCE, B2, ERROR, [start of procedure hashmapNPE(...)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullDerefernceReturnOfSkippedFunctionBad():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullDerefernceReturnOfSkippedFunctionBad(),Skipping unknownFunc(): unknown method,Definition of unknownFunc(),Taking true branch] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullListFiles(java.lang.String):int, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullListFiles(...),Skipping File(...): unknown method] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerException():int, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerException()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionArrayLength():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionArrayLength()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionCallArrayReadMethod():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionCallArrayReadMethod(),start of procedure arrayReadShouldNotCauseSymexMemoryError(...),Skipping toString(): unknown method,return from a call to Object NullPointerExceptions.arrayReadShouldNotCauseSymexMemoryError(int)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionFromFailingFileOutputStreamConstructor():void, 7, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionFromFailingFileOutputStreamConstructor(),exception java.io.FileNotFoundException,Switch condition is true. Entering switch case] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionFromFaillingResourceConstructor():void, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionFromFaillingResourceConstructor(),exception java.io.FileNotFoundException,Switch condition is true. Entering switch case] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionInArrayLengthLoop(java.lang.Object[]):void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionInArrayLengthLoop(...),Taking true branch] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionInterProc():int, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionInterProc(),start of procedure canReturnNullObject(...),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),Taking false branch,return from a call to NullPointerExceptions$A NullPointerExceptions.canReturnNullObject(boolean)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionUnlessFrameFails():void, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionUnlessFrameFails(),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),start of procedure frame(...),start of procedure id_generics(...),Skipping toString(): unknown method,return from a call to Object NullPointerExceptions.id_generics(NullPointerExceptions$A),return from a call to NullPointerExceptions$A NullPointerExceptions.frame(NullPointerExceptions$A),Taking true branch] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionWithAChainOfFields(codetoanalyze.java.infer.NullPointerExceptions$C):int, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure nullPointerExceptionWithAChainOfFields(...),start of procedure NullPointerExceptions$B(...),return from a call to NullPointerExceptions$B.(NullPointerExceptions)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionWithArray():int, 3, NULL_DEREFERENCE, B5, ERROR, [start of procedure nullPointerExceptionWithArray()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean):int, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionWithExceptionHandling(...),exception java.lang.Exception,Switch condition is true. Entering switch case] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionWithNullArrayParameter():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionWithNullArrayParameter(),start of procedure expectNotNullArrayParameter(...),Skipping clone(): unknown method] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionWithNullObjectParameter():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionWithNullObjectParameter(),start of procedure expectNotNullObjectParameter(...)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullTryLock(java.nio.channels.FileChannel):java.lang.String, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure nullTryLock(...)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullableFieldNPE():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullableFieldNPE()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullableParamNPE(java.lang.Object):void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullableParamNPE(...)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.optionalNPE(com.google.common.base.Optional):void, 1, NULL_DEREFERENCE, B2, ERROR, [start of procedure optionalNPE(...)] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.preconditionCheckStateTest(codetoanalyze.java.infer.NullPointerExceptions$D):int, 1, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure preconditionCheckStateTest(...),Taking false branch] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.someNPEAfterResourceLeak():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure someNPEAfterResourceLeak(),start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.(),return from a call to T CloseableAsResourceExample.sourceOfNullWithResourceLeak()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.stringConstantEqualsFalseNotNPE_FP():void, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure stringConstantEqualsFalseNotNPE_FP(),Taking false branch] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.stringVarEqualsFalseNPE():void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure stringVarEqualsFalseNPE(),start of procedure getString2(),return from a call to String NullPointerExceptions.getString2(),Skipping toString(): unknown method,Taking true branch] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.testSystemGetPropertyArgument():java.lang.String, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure testSystemGetPropertyArgument()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.testSystemGetPropertyReturn():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure testSystemGetPropertyReturn()] +codetoanalyze/java/biabduction/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.tryLockThrows(java.nio.channels.FileChannel):java.lang.String, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure tryLockThrows(...),exception java.io.IOException,Switch condition is true. Entering switch case] +codetoanalyze/java/biabduction/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.bufferedReaderNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure bufferedReaderNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/biabduction/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.fileReaderNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileReaderNotClosedAfterRead(),Skipping FileReader(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.inputStreamReaderNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure inputStreamReaderNotClosedAfterRead(),Skipping InputStreamReader(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.pipedReaderFalsePositive():void, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedReaderFalsePositive()] +codetoanalyze/java/biabduction/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.pipedReaderNotClosedAfterConnect(java.io.PipedWriter):void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedReaderNotClosedAfterConnect(...),exception java.io.IOException] +codetoanalyze/java/biabduction/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.pipedReaderNotClosedAfterConstructedWithWriter():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedReaderNotClosedAfterConstructedWithWriter(),exception java.io.IOException] +codetoanalyze/java/biabduction/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.pushbackReaderNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pushbackReaderNotClosedAfterRead(),Skipping PushbackReader(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.readerNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure readerNotClosedAfterRead(),Skipping FileReader(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.NoResourceLeakWarningAfterCheckState(java.io.File,int):void, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure NoResourceLeakWarningAfterCheckState(...),Taking false branch] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.activityObtainTypedArrayAndLeak(android.app.Activity):void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure activityObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(TypedArray)] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.contextObtainTypedArrayAndLeak(android.content.Context):void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure contextObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(TypedArray)] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.copyFileLeak(java.io.File,java.io.File):void, 9, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure copyFileLeak(...),exception java.io.FileNotFoundException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.copyFileLeak(java.io.File,java.io.File):void, 9, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure copyFileLeak(...),Skipping transferTo(...): unknown method,Taking true branch,exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.deflaterLeak():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure deflaterLeak()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileInputStreamNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamNotClosed():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamNotClosed()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamNotClosedAfterWrite():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamOneLeak():void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamOneLeak(),Taking true branch] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamTwoLeaks1(boolean):int, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamTwoLeaks1(...),Taking true branch] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamTwoLeaks1(boolean):int, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamTwoLeaks1(...),Taking false branch] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamTwoLeaks2():void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamTwoLeaks2(),Taking true branch] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamTwoLeaks2():void, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamTwoLeaks2(),Taking true branch] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.inflaterLeak():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure inflaterLeak()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.jarFileNotClosed():boolean, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure jarFileNotClosed()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.jarInputStreamLeak():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure jarInputStreamLeak()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.jarOutputStreamLeak():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure jarOutputStreamLeak()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.nestedBad1():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure nestedBad1()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.nestedBad2():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure nestedBad2()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.nestedBadJarInputStream(java.io.File):void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure nestedBadJarInputStream(...)] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.nestedBadJarOutputStream():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure nestedBadJarOutputStream()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectInputStreamClosedNestedBad():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectInputStreamClosedNestedBad()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectInputStreamNotClosedAfterRead():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectInputStreamNotClosedAfterRead()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectInputStreamNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectOutputStreamClosedNestedBad():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectOutputStreamClosedNestedBad()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectOutputStreamNotClosedAfterWrite():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectOutputStreamNotClosedAfterWrite()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectOutputStreamNotClosedAfterWrite():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.openHttpURLConnectionNotDisconnected():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure openHttpURLConnectionNotDisconnected()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.openHttpsURLConnectionNotDisconnected():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure openHttpsURLConnectionNotDisconnected()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.parseFromInputStreamAndLeak(com.fasterxml.jackson.core.JsonFactory):void, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure parseFromInputStreamAndLeak(...)] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.parseFromStringAndNotClose(com.fasterxml.jackson.core.JsonFactory):void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure parseFromStringAndNotClose(...)] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.pipedInputStreamNotClosedAfterRead(java.io.PipedOutputStream):void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedInputStreamNotClosedAfterRead(...),exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.pipedOutputStreamNotClosedAfterWrite():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.readConfigNotCloseStream(java.lang.String):int, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure readConfigNotCloseStream(...)] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.readInstallationFileBad(java.io.File):java.lang.String, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure readInstallationFileBad(...),exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.scannerNotClosed():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure scannerNotClosed()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.serverSocketNotClosed():void, 11, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure serverSocketNotClosed(),Skipping ServerSocket(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.socketNotClosed():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure socketNotClosed()] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.themeObtainTypedArrayAndLeak(android.content.res.Resources$Theme):void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure themeObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(TypedArray)] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.twoResources():void, 11, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure twoResources(),Taking true branch,exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.twoResourcesRandomAccessFile():void, 10, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure twoResourcesRandomAccessFile(),Taking true branch,exception java.io.IOException] +codetoanalyze/java/biabduction/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.zipFileLeakExceptionalBranch():void, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure zipFileLeakExceptionalBranch(),exception java.io.IOException,Switch condition is true. Entering switch case] +codetoanalyze/java/biabduction/SuppressLintExample.java, codetoanalyze.java.infer.SuppressAllWarnigsInTheClass.shouldNotReportNPE():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure shouldNotReportNPE()] +codetoanalyze/java/biabduction/SuppressLintExample.java, codetoanalyze.java.infer.SuppressAllWarnigsInTheClass.shouldNotReportResourceLeak():void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure shouldNotReportResourceLeak()] +codetoanalyze/java/biabduction/SuppressLintExample.java, codetoanalyze.java.infer.SuppressLintExample.shouldReportNPE():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure shouldReportNPE()] +codetoanalyze/java/biabduction/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.bufferedWriterNotClosedAfterWrite():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure bufferedWriterNotClosedAfterWrite(),Skipping FileWriter(...): unknown method,Skipping BufferedWriter(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.fileWriterNotClosedAfterWrite():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileWriterNotClosedAfterWrite(),Skipping FileWriter(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.outputStreamWriterNotClosedAfterWrite():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure outputStreamWriterNotClosedAfterWrite(),Skipping OutputStreamWriter(...): unknown method,exception java.io.IOException] +codetoanalyze/java/biabduction/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.pipedWriterNotClosedAfterConnect(java.io.PipedReader):void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedWriterNotClosedAfterConnect(...),exception java.io.IOException] +codetoanalyze/java/biabduction/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.pipedWriterNotClosedAfterConstructedWithReader():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedWriterNotClosedAfterConstructedWithReader(),exception java.io.IOException] +codetoanalyze/java/biabduction/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.printWriterNotClosedAfterAppend():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure printWriterNotClosedAfterAppend(),Skipping PrintWriter(...): unknown method] +codetoanalyze/java/biabduction/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.writerNotClosedAfterWrite():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure writerNotClosedAfterWrite(),Skipping PrintWriter(...): unknown method,exception java.io.IOException] diff --git a/infer/tests/codetoanalyze/java/infer/issues.exp b/infer/tests/codetoanalyze/java/infer/issues.exp deleted file mode 100644 index fe63f08aa..000000000 --- a/infer/tests/codetoanalyze/java/infer/issues.exp +++ /dev/null @@ -1,194 +0,0 @@ -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.accessPathInCalleeMayCauseFalseNegative():void, 3, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure accessPathInCalleeMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure accessPathOnParam(...),Skipping toString(): unknown method] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.callOnCastUndefinedObjMayCauseFalseNegative():void, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure callOnCastUndefinedObjMayCauseFalseNegative(),start of procedure castExternalPreventsSpecInference(),Skipping externalFunc(): unknown method,Definition of externalFunc(),return from a call to String AnalysisStops.castExternalPreventsSpecInference(),Skipping toString(): unknown method] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.callOnUndefinedObjMayCauseFalseNegative():void, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure callOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure retZero(),return from a call to int AnalysisStops$MyObj.retZero()] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.castFailureOnUndefinedObjMayCauseFalseNegative():void, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure castFailureOnUndefinedObjMayCauseFalseNegative(),start of procedure castExternalPreventsSpecInference(),Skipping externalFunc(): unknown method,Definition of externalFunc(),return from a call to String AnalysisStops.castExternalPreventsSpecInference()] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.fieldReadAferCastMayCauseFalseNegative(java.util.Iterator):void, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure fieldReadAferCastMayCauseFalseNegative(...),Skipping toString(): unknown method,Taking true branch] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.fieldReadInCalleeMayCauseFalseNegative():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure fieldReadInCalleeMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure derefParam(...),Skipping toString(): unknown method] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.fieldReadInCalleeWithAngelicObjFieldMayCauseFalseNegative():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure fieldReadInCalleeWithAngelicObjFieldMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure derefParam(...),Skipping toString(): unknown method] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.fieldReadOnUndefinedObjMayCauseFalseNegative():void, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure fieldReadOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2()] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.fieldWriteOnUndefinedObjMayCauseFalseNegative():void, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure fieldWriteOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2()] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.heapFieldOfAngelicObjMayCauseFalseNegative():void, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure heapFieldOfAngelicObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking true branch] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.infiniteMaterializationMayCauseFalseNegative(boolean):void, 5, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure infiniteMaterializationMayCauseFalseNegative(...),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalseNegative():void, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure primitiveFieldOfAngelicObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking true branch] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalseNegative():void, 5, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure primitiveFieldOfAngelicObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.recursiveAngelicTypesMayCauseFalseNegative():void, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure recursiveAngelicTypesMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2()] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.skipFunctionInLoopMayCauseFalseNegative():void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure skipFunctionInLoopMayCauseFalseNegative(),Taking true branch,Skipping externalFunc(): unknown method,Definition of externalFunc(),Taking false branch] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.skipPointerDerefMayCauseCalleeFalseNegative():void, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure skipPointerDerefMayCauseCalleeFalseNegative(),start of procedure skipPointerDerefPreventsSpecInferenceRetZero(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to int AnalysisStops.skipPointerDerefPreventsSpecInferenceRetZero()] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.skipPointerDerefMayCauseInterprocFalseNegative():void, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure skipPointerDerefMayCauseInterprocFalseNegative(),start of procedure skipPointerDerefPreventsSpecInferenceRetZero(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to int AnalysisStops.skipPointerDerefPreventsSpecInferenceRetZero(),start of procedure divideByParam(...)] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.skipPointerDerefMayCauseLocalFalseNegative():void, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure skipPointerDerefMayCauseLocalFalseNegative(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method] -codetoanalyze/java/infer/AnalysisStops.java, codetoanalyze.java.infer.AnalysisStops.specInferenceMayFailAndCauseFalseNegative(boolean,java.util.Iterator):void, 26, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure specInferenceMayFailAndCauseFalseNegative(...),start of procedure skipPointerDerefMayCauseLocalFalseNegative(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to void AnalysisStops.skipPointerDerefMayCauseLocalFalseNegative(),start of procedure skipPointerDerefPreventsSpecInferenceRetObj(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to Object AnalysisStops.skipPointerDerefPreventsSpecInferenceRetObj(),start of procedure skipPointerDerefPreventsSpecInferenceRetZero(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to int AnalysisStops.skipPointerDerefPreventsSpecInferenceRetZero(),start of procedure skipPointerDerefMayCauseCalleeFalseNegative(),start of procedure skipPointerDerefPreventsSpecInferenceRetZero(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to int AnalysisStops.skipPointerDerefPreventsSpecInferenceRetZero(),return from a call to void AnalysisStops.skipPointerDerefMayCauseCalleeFalseNegative(),start of procedure skipPointerDerefMayCauseInterprocFalseNegative(),start of procedure skipPointerDerefPreventsSpecInferenceRetZero(),Skipping externalFunc(): unknown method,Definition of externalFunc(),Skipping toString(): unknown method,return from a call to int AnalysisStops.skipPointerDerefPreventsSpecInferenceRetZero(),start of procedure divideByParam(...),return from a call to void AnalysisStops.divideByParam(int),return from a call to void AnalysisStops.skipPointerDerefMayCauseInterprocFalseNegative(),start of procedure castFailureOnUndefinedObjMayCauseFalseNegative(),start of procedure castExternalPreventsSpecInference(),Skipping externalFunc(): unknown method,Definition of externalFunc(),return from a call to String AnalysisStops.castExternalPreventsSpecInference(),return from a call to void AnalysisStops.castFailureOnUndefinedObjMayCauseFalseNegative(),start of procedure callOnCastUndefinedObjMayCauseFalseNegative(),start of procedure castExternalPreventsSpecInference(),Skipping externalFunc(): unknown method,Definition of externalFunc(),return from a call to String AnalysisStops.castExternalPreventsSpecInference(),Skipping toString(): unknown method,return from a call to void AnalysisStops.callOnCastUndefinedObjMayCauseFalseNegative(),start of procedure callOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure retZero(),return from a call to int AnalysisStops$MyObj.retZero(),return from a call to void AnalysisStops.callOnUndefinedObjMayCauseFalseNegative(),start of procedure callOnUndefinedObjMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure retOne(),return from a call to int AnalysisStops$MyObj.retOne(),return from a call to void AnalysisStops.callOnUndefinedObjMayCauseFalsePositive(),start of procedure fieldWriteOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),return from a call to void AnalysisStops.fieldWriteOnUndefinedObjMayCauseFalseNegative(),start of procedure fieldWriteOnUndefinedObjMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Skipping toString(): unknown method,return from a call to void AnalysisStops.fieldWriteOnUndefinedObjMayCauseFalsePositive(),start of procedure fieldReadOnUndefinedObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),return from a call to void AnalysisStops.fieldReadOnUndefinedObjMayCauseFalseNegative(),start of procedure fieldReadOnUndefinedObjMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Skipping toString(): unknown method,return from a call to void AnalysisStops.fieldReadOnUndefinedObjMayCauseFalsePositive(),start of procedure recursiveAngelicTypesMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),return from a call to void AnalysisStops.recursiveAngelicTypesMayCauseFalseNegative(),Skipping recursiveAngelicTypesMayCauseFalsePositive(): empty list of specs,Definition of recursiveAngelicTypesMayCauseFalsePositive(),start of procedure infiniteMaterializationMayCauseFalseNegative(...),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch,return from a call to void AnalysisStops.infiniteMaterializationMayCauseFalseNegative(boolean),start of procedure infiniteMaterializationMayCauseFalsePositive(...),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch,Skipping toString(): unknown method,return from a call to void AnalysisStops.infiniteMaterializationMayCauseFalsePositive(boolean),start of procedure primitiveFieldOfAngelicObjMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking true branch,return from a call to void AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalsePositive(),start of procedure primitiveFieldOfAngelicObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch,return from a call to void AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalseNegative(),start of procedure heapFieldOfAngelicObjMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking false branch,return from a call to void AnalysisStops.heapFieldOfAngelicObjMayCauseFalsePositive(),start of procedure heapFieldOfAngelicObjMayCauseFalseNegative(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),Taking true branch,return from a call to void AnalysisStops.heapFieldOfAngelicObjMayCauseFalseNegative(),Skipping fieldReadAferCastMayCauseFalseNegative(...): empty list of specs,Definition of fieldReadAferCastMayCauseFalseNegative(...),start of procedure fieldReadInCalleeMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure derefParam(...),Skipping toString(): unknown method,return from a call to void AnalysisStops.derefParam(AnalysisStops$MyObj),return from a call to void AnalysisStops.fieldReadInCalleeMayCauseFalsePositive(),start of procedure fieldReadInCalleeWithAngelicObjFieldMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure derefParam(...),Skipping toString(): unknown method,return from a call to void AnalysisStops.derefParam(AnalysisStops$MyObj),return from a call to void AnalysisStops.fieldReadInCalleeWithAngelicObjFieldMayCauseFalsePositive(),start of procedure accessPathInCalleeMayCauseFalsePositive(),Skipping externalFunc2(): unknown method,Definition of externalFunc2(),start of procedure accessPathOnParam(...),Skipping toString(): unknown method,return from a call to void AnalysisStops.accessPathOnParam(AnalysisStops$MyObj),return from a call to void AnalysisStops.accessPathInCalleeMayCauseFalsePositive()] -codetoanalyze/java/infer/ArrayOutOfBounds.java, codetoanalyze.java.infer.ArrayOutOfBounds.arrayOutOfBounds():int, 2, ARRAY_OUT_OF_BOUNDS_L1, no_bucket, ERROR, [start of procedure arrayOutOfBounds()] -codetoanalyze/java/infer/Builtins.java, codetoanalyze.java.infer.Builtins.causeError(java.lang.Object):void, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure causeError(...),Taking true branch] -codetoanalyze/java/infer/Builtins.java, codetoanalyze.java.infer.Builtins.doNotBlockError(java.lang.Object):void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure doNotBlockError(...),Taking true branch] -codetoanalyze/java/infer/ClassCastExceptions.java, codetoanalyze.java.infer.ClassCastExceptions.classCastException():void, 2, CLASS_CAST_EXCEPTION, no_bucket, ERROR, [start of procedure classCastException(),start of procedure SubClassA(),start of procedure SuperClass(),return from a call to SuperClass.(),return from a call to SubClassA.()] -codetoanalyze/java/infer/ClassCastExceptions.java, codetoanalyze.java.infer.ClassCastExceptions.classCastExceptionImplementsInterface():int, 1, CLASS_CAST_EXCEPTION, no_bucket, ERROR, [start of procedure classCastExceptionImplementsInterface(),start of procedure AnotherImplementationOfInterface(),return from a call to AnotherImplementationOfInterface.()] -codetoanalyze/java/infer/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.failToCloseWithCloseQuietly():void, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure failToCloseWithCloseQuietly(),start of procedure SomeResource(),return from a call to SomeResource.(),start of procedure doSomething(),Skipping star(): unknown method,Definition of star(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] -codetoanalyze/java/infer/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.leakFoundWhenIndirectlyImplementingCloseable():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure leakFoundWhenIndirectlyImplementingCloseable(),start of procedure CloseableAsResourceExample$MyResource(...),return from a call to CloseableAsResourceExample$MyResource.(CloseableAsResourceExample)] -codetoanalyze/java/infer/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.notClosingCloseable():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure notClosingCloseable(),start of procedure SomeResource(),return from a call to SomeResource.()] -codetoanalyze/java/infer/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.notClosingWrapper():void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure notClosingWrapper(),start of procedure Resource(),return from a call to Resource.(),start of procedure Sub(...),start of procedure Wrapper(...),return from a call to Wrapper.(Resource),return from a call to Sub.(Resource),start of procedure close(),return from a call to void Resource.close()] -codetoanalyze/java/infer/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.skippedVritualCallDoesNotCloseResourceOnReceiver():void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure skippedVritualCallDoesNotCloseResourceOnReceiver(),start of procedure SomeResource(),return from a call to SomeResource.(),Skipping foo(...): unknown method,Definition of foo(...)] -codetoanalyze/java/infer/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.sourceOfNullWithResourceLeak():codetoanalyze.java.infer.T, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.()] -codetoanalyze/java/infer/CloseableAsResourceExample.java, codetoanalyze.java.infer.CloseableAsResourceExample.withException():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure withException(),start of procedure SomeResource(),return from a call to SomeResource.(),start of procedure doSomething(),Skipping star(): unknown method,Definition of star(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] -codetoanalyze/java/infer/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.completeDownloadNotClosed(android.app.DownloadManager):int, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure completeDownloadNotClosed(...),Taking false branch,Skipping getColumnIndex(...): unknown method] -codetoanalyze/java/infer/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.cursorClosedCheckNullCheckClosed_FP(android.database.sqlite.SQLiteDatabase):java.lang.Object, 11, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure cursorClosedCheckNullCheckClosed_FP(...),Taking false branch,Skipping getString(...): unknown method,Taking true branch,Taking false branch] -codetoanalyze/java/infer/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.cursorNotClosed(android.database.sqlite.SQLiteDatabase):int, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure cursorNotClosed(...),Skipping getCount(): unknown method] -codetoanalyze/java/infer/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.getBucketCountNotClosed():int, 9, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure getBucketCountNotClosed(),Taking false branch,Taking false branch] -codetoanalyze/java/infer/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.getImageCountHelperNotClosed(java.lang.String):int, 9, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure getImageCountHelperNotClosed(...),Taking true branch,Skipping getInt(...): unknown method] -codetoanalyze/java/infer/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.loadPrefsFromContentProviderNotClosed():void, 10, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure loadPrefsFromContentProviderNotClosed(),Taking false branch,Taking true branch] -codetoanalyze/java/infer/CursorLeaks.java, codetoanalyze.java.infer.CursorLeaks.queryUVMLegacyDbNotClosed():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure queryUVMLegacyDbNotClosed(),Skipping setTables(...): unknown method,Taking true branch] -codetoanalyze/java/infer/CursorNPEs.java, codetoanalyze.java.infer.CursorNPEs.cursorFromContentResolverNPE(java.lang.String):void, 8, NULL_DEREFERENCE, B1, ERROR, [start of procedure cursorFromContentResolverNPE(...)] -codetoanalyze/java/infer/CursorNPEs.java, codetoanalyze.java.infer.CursorNPEs.cursorFromDownloadManagerNPE(android.app.DownloadManager):int, 5, NULL_DEREFERENCE, B2, ERROR, [start of procedure cursorFromDownloadManagerNPE(...)] -codetoanalyze/java/infer/CursorNPEs.java, codetoanalyze.java.infer.CursorNPEs.cursorFromMediaNPE():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure cursorFromMediaNPE()] -codetoanalyze/java/infer/DivideByZero.java, codetoanalyze.java.infer.DivideByZero.callDivideByZeroInterProc():int, 1, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure callDivideByZeroInterProc(),start of procedure divideByZeroInterProc(...)] -codetoanalyze/java/infer/DivideByZero.java, codetoanalyze.java.infer.DivideByZero.divByZeroLocal(java.lang.String):int, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure divByZeroLocal(...)] -codetoanalyze/java/infer/DivideByZero.java, codetoanalyze.java.infer.DivideByZero.divideByZeroWithStaticField():int, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure divideByZeroWithStaticField(),start of procedure setXToZero(),return from a call to void DivideByZero.setXToZero(),start of procedure divideByZeroInterProc(...)] -codetoanalyze/java/infer/DoubleExample.java, codetoanalyze.java.infer.DoubleExample.testdReadNullableBad():java.lang.Double, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure testdReadNullableBad()] -codetoanalyze/java/infer/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch$WithField.dispatchOnFieldBad():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure dispatchOnFieldBad(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure DynamicDispatch$WithField(...),return from a call to DynamicDispatch$WithField.(DynamicDispatch$Subtype),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo()] -codetoanalyze/java/infer/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.dynamicDispatchCallsWrapperWithSubtypeBad():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure dynamicDispatchCallsWrapperWithSubtypeBad(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure dynamicDispatchWrapperFoo(...),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo(),return from a call to Object DynamicDispatch.dynamicDispatchWrapperFoo(DynamicDispatch$Subtype)] -codetoanalyze/java/infer/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.dynamicDispatchCallsWrapperWithSupertypeBad():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure dynamicDispatchCallsWrapperWithSupertypeBad(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),start of procedure dynamicDispatchWrapperBar(...),start of procedure bar(),return from a call to Object DynamicDispatch$Supertype.bar(),return from a call to Object DynamicDispatch.dynamicDispatchWrapperBar(DynamicDispatch$Supertype)] -codetoanalyze/java/infer/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.dynamicDispatchShouldNotCauseFalseNegativeEasy():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure dynamicDispatchShouldNotCauseFalseNegativeEasy(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo()] -codetoanalyze/java/infer/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.dynamicDispatchShouldNotReportWhenCallingSupertype(codetoanalyze.java.infer.DynamicDispatch$Subtype):void, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure dynamicDispatchShouldNotReportWhenCallingSupertype(...),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo()] -codetoanalyze/java/infer/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.dynamicResolutionWithPrivateMethodBad():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure dynamicResolutionWithPrivateMethodBad(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure callFoo(...),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo(),return from a call to Object DynamicDispatch.callFoo(DynamicDispatch$Subtype)] -codetoanalyze/java/infer/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.interfaceShouldNotCauseFalseNegativeEasy():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure interfaceShouldNotCauseFalseNegativeEasy(),start of procedure DynamicDispatch$Impl(),return from a call to DynamicDispatch$Impl.(),start of procedure foo(),return from a call to Object DynamicDispatch$Impl.foo()] -codetoanalyze/java/infer/DynamicDispatch.java, codetoanalyze.java.infer.DynamicDispatch.interfaceShouldNotCauseFalseNegativeHard(codetoanalyze.java.infer.DynamicDispatch$Impl):void, 1, NULL_DEREFERENCE, B2, ERROR, [start of procedure interfaceShouldNotCauseFalseNegativeHard(...),start of procedure foo(),return from a call to Object DynamicDispatch$Impl.foo()] -codetoanalyze/java/infer/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.bufferedInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure bufferedInputStreamNotClosedAfterRead(),Skipping BufferedInputStream(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.checkedInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure checkedInputStreamNotClosedAfterRead(),Skipping CheckedInputStream(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.cipherInputStreamNotClosedAfterSkip():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure cipherInputStreamNotClosedAfterSkip(),Skipping CipherInputStream(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.dataInputStreamNotClosedAfterRead():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure dataInputStreamNotClosedAfterRead(),Skipping DataInputStream(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.deflaterInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure deflaterInputStreamNotClosedAfterRead(),Skipping DeflaterInputStream(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.digestInputStreamNotClosedAfterRead():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure digestInputStreamNotClosedAfterRead(),Skipping DigestInputStream(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure gzipInputStreamNotClosedAfterRead()] -codetoanalyze/java/infer/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure gzipInputStreamNotClosedAfterRead(),exception java.io.IOException] -codetoanalyze/java/infer/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.inflaterInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure inflaterInputStreamNotClosedAfterRead(),Skipping InflaterInputStream(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/FilterInputStreamLeaks.java, codetoanalyze.java.infer.FilterInputStreamLeaks.pushbackInputStreamNotClosedAfterRead():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pushbackInputStreamNotClosedAfterRead(),Skipping PushbackInputStream(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.bufferedOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure bufferedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.checkedOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure checkedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.cipherOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure cipherOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.dataOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure dataOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.deflaterOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure deflaterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.digestOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure digestOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.filterOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure filterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure gzipOutputStreamNotClosedAfterFlush()] -codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure gzipOutputStreamNotClosedAfterFlush(),exception java.io.IOException] -codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.inflaterOutputStreamNotClosedAfterWrite():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure inflaterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -codetoanalyze/java/infer/FilterOutputStreamLeaks.java, codetoanalyze.java.infer.FilterOutputStreamLeaks.printStreamNotClosedAfterWrite():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure printStreamNotClosedAfterWrite()] -codetoanalyze/java/infer/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getAfterClearBad():void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure getAfterClearBad()] -codetoanalyze/java/infer/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getAfterRemovingTheKeyBad():void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure getAfterRemovingTheKeyBad()] -codetoanalyze/java/infer/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getFromKeySetGood_FP(java.util.HashMap):void, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure getFromKeySetGood_FP(...),Taking true branch] -codetoanalyze/java/infer/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getOneIntegerWithoutCheck():int, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure getOneIntegerWithoutCheck()] -codetoanalyze/java/infer/HashMapExample.java, codetoanalyze.java.infer.HashMapExample.getTwoIntegersWithOneCheck(java.lang.Integer,java.lang.Integer):void, 8, NULL_DEREFERENCE, B2, ERROR, [start of procedure getTwoIntegersWithOneCheck(...),Taking true branch,Taking true branch] -codetoanalyze/java/infer/IntegerExample.java, codetoanalyze.java.infer.IntegerExample.testIntegerEqualsBad():void, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure testIntegerEqualsBad(),Taking true branch] -codetoanalyze/java/infer/InvokeDynamic.java, codetoanalyze.java.infer.InvokeDynamic.invokeDynamicThenNpeBad(java.util.List):void, 7, NULL_DEREFERENCE, B1, ERROR, [start of procedure invokeDynamicThenNpeBad(...),start of procedure callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_3_3(),return from a call to Comparator InvokeDynamic.callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_3_3(),Skipping sort(...): unknown method] -codetoanalyze/java/infer/InvokeDynamic.java, codetoanalyze.java.infer.InvokeDynamic.lambda$npeInLambdaBad$1(java.lang.String,java.lang.String):int, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure lambda$npeInLambdaBad$1(...)] -codetoanalyze/java/infer/InvokeDynamic.java, codetoanalyze.java.infer.InvokeDynamic.npeViaSimpleCapture():java.lang.Integer, 3, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure npeViaSimpleCapture(),start of procedure callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_10_3(...),return from a call to Function InvokeDynamic.callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_10_3(String)] -codetoanalyze/java/infer/InvokeDynamic.java, codetoanalyze.java.infer.InvokeDynamic.npeViaSimpleParamPassing():java.lang.Integer, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure npeViaSimpleParamPassing(),start of procedure callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_11_0(),return from a call to Function InvokeDynamic.callsite_codetoanalyze.java.infer.InvokeDynamic$Lambda$_11_0()] -codetoanalyze/java/infer/JunitAssertion.java, codetoanalyze.java.infer.JunitAssertion.consistentAssertion(codetoanalyze.java.infer.JunitAssertion$A):void, 1, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure consistentAssertion(...),Taking false branch] -codetoanalyze/java/infer/JunitAssertion.java, codetoanalyze.java.infer.JunitAssertion.inconsistentAssertion(codetoanalyze.java.infer.JunitAssertion$A):void, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure inconsistentAssertion(...),Taking false branch] -codetoanalyze/java/infer/Lists.java, codetoanalyze.java.infer.Lists.clearCausesEmptinessNPE(java.util.List,int):void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure clearCausesEmptinessNPE(...),Taking true branch,Taking true branch] -codetoanalyze/java/infer/Lists.java, codetoanalyze.java.infer.Lists.getElementNPE(java.util.List):void, 4, NULL_DEREFERENCE, B2, ERROR, [start of procedure getElementNPE(...),Taking false branch,start of procedure getElement(...),Taking true branch,return from a call to Object Lists.getElement(List)] -codetoanalyze/java/infer/Lists.java, codetoanalyze.java.infer.Lists.removeInvalidatesNonEmptinessNPE(java.util.List,int):void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure removeInvalidatesNonEmptinessNPE(...),Taking true branch,Taking true branch] -codetoanalyze/java/infer/NopFun.java, T.go():void, 4, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure go(),start of procedure f(),Taking true branch,return from a call to void T.f(),start of procedure h(),Taking true branch,return from a call to void T.h()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure npeWithDollars()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions$E.dereferenceNullableInterfaceFieldBad():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure dereferenceNullableInterfaceFieldBad()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.FP_noNullPointerExceptionAfterSkipFunction():void, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure FP_noNullPointerExceptionAfterSkipFunction(),Skipping String(...): unknown method,Skipping toString(): unknown method,start of procedure genericMethodSomewhereCheckingForNull(...),Taking true branch,return from a call to void NullPointerExceptions.genericMethodSomewhereCheckingForNull(String)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.NPEvalueOfFromHashmapBad(java.util.HashMap,int):int, 1, NULL_DEREFERENCE, B2, ERROR, [start of procedure NPEvalueOfFromHashmapBad(...)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.addNullToImmutableListBuilderBad():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure addNullToImmutableListBuilderBad(),Skipping builder(): unknown method,start of procedure getObject(),return from a call to Object NullPointerExceptions.getObject()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.badCheckShouldCauseNPE():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure badCheckShouldCauseNPE(),start of procedure getBool(),Skipping test(): unknown method,Definition of test(),Taking true branch,return from a call to Boolean NullPointerExceptions.getBool(),Taking true branch,start of procedure getObj(),Skipping test(): unknown method,Definition of test(),Taking false branch,return from a call to Object NullPointerExceptions.getObj()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.cursorFromContentResolverNPE(java.lang.String):void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure cursorFromContentResolverNPE(...)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.deferenceNullableMethodCallingSkippedMethodBad():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure deferenceNullableMethodCallingSkippedMethodBad(),start of procedure wrapUnknownFuncWithNullable(),Skipping unknownFunc(): unknown method,Definition of unknownFunc(),return from a call to Object NullPointerExceptions.wrapUnknownFuncWithNullable()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.derefNull():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefNull(),start of procedure derefUndefinedCallee(),start of procedure retUndefined(),return from a call to Object NullPointerExceptions.retUndefined(),Skipping toString(): unknown method,return from a call to Object NullPointerExceptions.derefUndefinedCallee()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.derefNullableGetter():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefNullableGetter(),start of procedure nullableGetter(),return from a call to Object NullPointerExceptions.nullableGetter()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.derefNullableRet(boolean):void, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure derefNullableRet(...),start of procedure nullableRet(...),Taking true branch,return from a call to Object NullPointerExceptions.nullableRet(boolean)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.derefUndefNullableRet():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefUndefNullableRet(),Skipping undefNullableRet(): unknown method,Definition of undefNullableRet()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.derefUndefNullableRetWrapper():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefUndefNullableRetWrapper(),start of procedure undefNullableWrapper(),Skipping undefNullableRet(): unknown method,Definition of undefNullableRet(),return from a call to Object NullPointerExceptions.undefNullableWrapper()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.dereferenceAfterLoopOnList(codetoanalyze.java.infer.NullPointerExceptions$L):void, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure dereferenceAfterLoopOnList(...),start of procedure returnsNullAfterLoopOnList(...),Taking true branch,Taking true branch,Taking false branch,return from a call to Object NullPointerExceptions.returnsNullAfterLoopOnList(NullPointerExceptions$L)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.dereferenceAfterUnlock1(java.util.concurrent.locks.Lock):void, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure dereferenceAfterUnlock1(...),Skipping toString(): unknown method] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.dereferenceAfterUnlock2(java.util.concurrent.locks.Lock):void, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure dereferenceAfterUnlock2(...),Skipping toString(): unknown method] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.hashmapNPE(java.util.HashMap,java.lang.Object):java.lang.String, 1, NULL_DEREFERENCE, B2, ERROR, [start of procedure hashmapNPE(...)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullDerefernceReturnOfSkippedFunctionBad():void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullDerefernceReturnOfSkippedFunctionBad(),Skipping unknownFunc(): unknown method,Definition of unknownFunc(),Taking true branch] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullListFiles(java.lang.String):int, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullListFiles(...),Skipping File(...): unknown method] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerException():int, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerException()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionArrayLength():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionArrayLength()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionCallArrayReadMethod():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionCallArrayReadMethod(),start of procedure arrayReadShouldNotCauseSymexMemoryError(...),Skipping toString(): unknown method,return from a call to Object NullPointerExceptions.arrayReadShouldNotCauseSymexMemoryError(int)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionFromFailingFileOutputStreamConstructor():void, 7, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionFromFailingFileOutputStreamConstructor(),exception java.io.FileNotFoundException,Switch condition is true. Entering switch case] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionFromFaillingResourceConstructor():void, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionFromFaillingResourceConstructor(),exception java.io.FileNotFoundException,Switch condition is true. Entering switch case] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionInArrayLengthLoop(java.lang.Object[]):void, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionInArrayLengthLoop(...),Taking true branch] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionInterProc():int, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionInterProc(),start of procedure canReturnNullObject(...),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),Taking false branch,return from a call to NullPointerExceptions$A NullPointerExceptions.canReturnNullObject(boolean)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionUnlessFrameFails():void, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionUnlessFrameFails(),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),start of procedure frame(...),start of procedure id_generics(...),Skipping toString(): unknown method,return from a call to Object NullPointerExceptions.id_generics(NullPointerExceptions$A),return from a call to NullPointerExceptions$A NullPointerExceptions.frame(NullPointerExceptions$A),Taking true branch] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionWithAChainOfFields(codetoanalyze.java.infer.NullPointerExceptions$C):int, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure nullPointerExceptionWithAChainOfFields(...),start of procedure NullPointerExceptions$B(...),return from a call to NullPointerExceptions$B.(NullPointerExceptions)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionWithArray():int, 3, NULL_DEREFERENCE, B5, ERROR, [start of procedure nullPointerExceptionWithArray()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean):int, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionWithExceptionHandling(...),exception java.lang.Exception,Switch condition is true. Entering switch case] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionWithNullArrayParameter():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionWithNullArrayParameter(),start of procedure expectNotNullArrayParameter(...),Skipping clone(): unknown method] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullPointerExceptionWithNullObjectParameter():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullPointerExceptionWithNullObjectParameter(),start of procedure expectNotNullObjectParameter(...)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullTryLock(java.nio.channels.FileChannel):java.lang.String, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure nullTryLock(...)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullableFieldNPE():void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullableFieldNPE()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.nullableParamNPE(java.lang.Object):void, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullableParamNPE(...)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.optionalNPE(com.google.common.base.Optional):void, 1, NULL_DEREFERENCE, B2, ERROR, [start of procedure optionalNPE(...)] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.preconditionCheckStateTest(codetoanalyze.java.infer.NullPointerExceptions$D):int, 1, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure preconditionCheckStateTest(...),Taking false branch] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.someNPEAfterResourceLeak():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure someNPEAfterResourceLeak(),start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.(),return from a call to T CloseableAsResourceExample.sourceOfNullWithResourceLeak()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.stringConstantEqualsFalseNotNPE_FP():void, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure stringConstantEqualsFalseNotNPE_FP(),Taking false branch] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.stringVarEqualsFalseNPE():void, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure stringVarEqualsFalseNPE(),start of procedure getString2(),return from a call to String NullPointerExceptions.getString2(),Skipping toString(): unknown method,Taking true branch] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.testSystemGetPropertyArgument():java.lang.String, 1, NULL_DEREFERENCE, B1, ERROR, [start of procedure testSystemGetPropertyArgument()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.testSystemGetPropertyReturn():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure testSystemGetPropertyReturn()] -codetoanalyze/java/infer/NullPointerExceptions.java, codetoanalyze.java.infer.NullPointerExceptions.tryLockThrows(java.nio.channels.FileChannel):java.lang.String, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure tryLockThrows(...),exception java.io.IOException,Switch condition is true. Entering switch case] -codetoanalyze/java/infer/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.bufferedReaderNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure bufferedReaderNotClosedAfterRead(),exception java.io.IOException] -codetoanalyze/java/infer/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.fileReaderNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileReaderNotClosedAfterRead(),Skipping FileReader(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.inputStreamReaderNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure inputStreamReaderNotClosedAfterRead(),Skipping InputStreamReader(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.pipedReaderFalsePositive():void, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedReaderFalsePositive()] -codetoanalyze/java/infer/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.pipedReaderNotClosedAfterConnect(java.io.PipedWriter):void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedReaderNotClosedAfterConnect(...),exception java.io.IOException] -codetoanalyze/java/infer/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.pipedReaderNotClosedAfterConstructedWithWriter():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedReaderNotClosedAfterConstructedWithWriter(),exception java.io.IOException] -codetoanalyze/java/infer/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.pushbackReaderNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pushbackReaderNotClosedAfterRead(),Skipping PushbackReader(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/ReaderLeaks.java, codetoanalyze.java.infer.ReaderLeaks.readerNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure readerNotClosedAfterRead(),Skipping FileReader(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.NoResourceLeakWarningAfterCheckState(java.io.File,int):void, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure NoResourceLeakWarningAfterCheckState(...),Taking false branch] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.activityObtainTypedArrayAndLeak(android.app.Activity):void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure activityObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(TypedArray)] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.contextObtainTypedArrayAndLeak(android.content.Context):void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure contextObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(TypedArray)] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.copyFileLeak(java.io.File,java.io.File):void, 9, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure copyFileLeak(...),exception java.io.FileNotFoundException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.copyFileLeak(java.io.File,java.io.File):void, 9, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure copyFileLeak(...),Skipping transferTo(...): unknown method,Taking true branch,exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.deflaterLeak():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure deflaterLeak()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileInputStreamNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileInputStreamNotClosedAfterRead(),exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamNotClosed():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamNotClosed()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamNotClosedAfterWrite():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamOneLeak():void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamOneLeak(),Taking true branch] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamTwoLeaks1(boolean):int, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamTwoLeaks1(...),Taking true branch] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamTwoLeaks1(boolean):int, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamTwoLeaks1(...),Taking false branch] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamTwoLeaks2():void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamTwoLeaks2(),Taking true branch] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.fileOutputStreamTwoLeaks2():void, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileOutputStreamTwoLeaks2(),Taking true branch] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.inflaterLeak():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure inflaterLeak()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.jarFileNotClosed():boolean, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure jarFileNotClosed()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.jarInputStreamLeak():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure jarInputStreamLeak()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.jarOutputStreamLeak():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure jarOutputStreamLeak()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.nestedBad1():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure nestedBad1()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.nestedBad2():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure nestedBad2()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.nestedBadJarInputStream(java.io.File):void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure nestedBadJarInputStream(...)] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.nestedBadJarOutputStream():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure nestedBadJarOutputStream()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectInputStreamClosedNestedBad():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectInputStreamClosedNestedBad()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectInputStreamNotClosedAfterRead():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectInputStreamNotClosedAfterRead()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectInputStreamNotClosedAfterRead():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectInputStreamNotClosedAfterRead(),exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectOutputStreamClosedNestedBad():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectOutputStreamClosedNestedBad()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectOutputStreamNotClosedAfterWrite():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectOutputStreamNotClosedAfterWrite()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.objectOutputStreamNotClosedAfterWrite():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure objectOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.openHttpURLConnectionNotDisconnected():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure openHttpURLConnectionNotDisconnected()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.openHttpsURLConnectionNotDisconnected():void, 3, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure openHttpsURLConnectionNotDisconnected()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.parseFromInputStreamAndLeak(com.fasterxml.jackson.core.JsonFactory):void, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure parseFromInputStreamAndLeak(...)] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.parseFromStringAndNotClose(com.fasterxml.jackson.core.JsonFactory):void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure parseFromStringAndNotClose(...)] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.pipedInputStreamNotClosedAfterRead(java.io.PipedOutputStream):void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedInputStreamNotClosedAfterRead(...),exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.pipedOutputStreamNotClosedAfterWrite():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.readConfigNotCloseStream(java.lang.String):int, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure readConfigNotCloseStream(...)] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.readInstallationFileBad(java.io.File):java.lang.String, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure readInstallationFileBad(...),exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.scannerNotClosed():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure scannerNotClosed()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.serverSocketNotClosed():void, 11, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure serverSocketNotClosed(),Skipping ServerSocket(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.socketNotClosed():void, 1, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure socketNotClosed()] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.themeObtainTypedArrayAndLeak(android.content.res.Resources$Theme):void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure themeObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(TypedArray)] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.twoResources():void, 11, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure twoResources(),Taking true branch,exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.twoResourcesRandomAccessFile():void, 10, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure twoResourcesRandomAccessFile(),Taking true branch,exception java.io.IOException] -codetoanalyze/java/infer/ResourceLeaks.java, codetoanalyze.java.infer.ResourceLeaks.zipFileLeakExceptionalBranch():void, 5, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure zipFileLeakExceptionalBranch(),exception java.io.IOException,Switch condition is true. Entering switch case] -codetoanalyze/java/infer/SuppressLintExample.java, codetoanalyze.java.infer.SuppressAllWarnigsInTheClass.shouldNotReportNPE():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure shouldNotReportNPE()] -codetoanalyze/java/infer/SuppressLintExample.java, codetoanalyze.java.infer.SuppressAllWarnigsInTheClass.shouldNotReportResourceLeak():void, 2, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure shouldNotReportResourceLeak()] -codetoanalyze/java/infer/SuppressLintExample.java, codetoanalyze.java.infer.SuppressLintExample.shouldReportNPE():void, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure shouldReportNPE()] -codetoanalyze/java/infer/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.bufferedWriterNotClosedAfterWrite():void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure bufferedWriterNotClosedAfterWrite(),Skipping FileWriter(...): unknown method,Skipping BufferedWriter(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.fileWriterNotClosedAfterWrite():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileWriterNotClosedAfterWrite(),Skipping FileWriter(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.outputStreamWriterNotClosedAfterWrite():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure outputStreamWriterNotClosedAfterWrite(),Skipping OutputStreamWriter(...): unknown method,exception java.io.IOException] -codetoanalyze/java/infer/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.pipedWriterNotClosedAfterConnect(java.io.PipedReader):void, 7, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedWriterNotClosedAfterConnect(...),exception java.io.IOException] -codetoanalyze/java/infer/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.pipedWriterNotClosedAfterConstructedWithReader():void, 8, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure pipedWriterNotClosedAfterConstructedWithReader(),exception java.io.IOException] -codetoanalyze/java/infer/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.printWriterNotClosedAfterAppend():void, 4, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure printWriterNotClosedAfterAppend(),Skipping PrintWriter(...): unknown method] -codetoanalyze/java/infer/WriterLeaks.java, codetoanalyze.java.infer.WriterLeaks.writerNotClosedAfterWrite():void, 6, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure writerNotClosedAfterWrite(),Skipping PrintWriter(...): unknown method,exception java.io.IOException] diff --git a/infer/tests/codetoanalyze/objc/errors/Makefile b/infer/tests/codetoanalyze/objc/biabduction/Makefile similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/Makefile rename to infer/tests/codetoanalyze/objc/biabduction/Makefile diff --git a/infer/tests/codetoanalyze/objc/errors/blocks_in_heap/BlockInHeap.m b/infer/tests/codetoanalyze/objc/biabduction/blocks_in_heap/BlockInHeap.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/blocks_in_heap/BlockInHeap.m rename to infer/tests/codetoanalyze/objc/biabduction/blocks_in_heap/BlockInHeap.m diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/A.h b/infer/tests/codetoanalyze/objc/biabduction/field_superclass/A.h similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/field_superclass/A.h rename to infer/tests/codetoanalyze/objc/biabduction/field_superclass/A.h diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/B.h b/infer/tests/codetoanalyze/objc/biabduction/field_superclass/B.h similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/field_superclass/B.h rename to infer/tests/codetoanalyze/objc/biabduction/field_superclass/B.h diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/B.m b/infer/tests/codetoanalyze/objc/biabduction/field_superclass/B.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/field_superclass/B.m rename to infer/tests/codetoanalyze/objc/biabduction/field_superclass/B.m diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/SubtypingExample.m b/infer/tests/codetoanalyze/objc/biabduction/field_superclass/SubtypingExample.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/field_superclass/SubtypingExample.m rename to infer/tests/codetoanalyze/objc/biabduction/field_superclass/SubtypingExample.m diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/field.c b/infer/tests/codetoanalyze/objc/biabduction/field_superclass/field.c similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/field_superclass/field.c rename to infer/tests/codetoanalyze/objc/biabduction/field_superclass/field.c diff --git a/infer/tests/codetoanalyze/objc/errors/global_const/global_const.m b/infer/tests/codetoanalyze/objc/biabduction/global_const/global_const.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/global_const/global_const.m rename to infer/tests/codetoanalyze/objc/biabduction/global_const/global_const.m diff --git a/infer/tests/codetoanalyze/objc/errors/initialization/compound_literal.c b/infer/tests/codetoanalyze/objc/biabduction/initialization/compound_literal.c similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/initialization/compound_literal.c rename to infer/tests/codetoanalyze/objc/biabduction/initialization/compound_literal.c diff --git a/infer/tests/codetoanalyze/objc/errors/initialization/struct_initlistexpr.c b/infer/tests/codetoanalyze/objc/biabduction/initialization/struct_initlistexpr.c similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/initialization/struct_initlistexpr.c rename to infer/tests/codetoanalyze/objc/biabduction/initialization/struct_initlistexpr.c diff --git a/infer/tests/codetoanalyze/objc/biabduction/issues.exp b/infer/tests/codetoanalyze/objc/biabduction/issues.exp new file mode 100644 index 000000000..7b805182b --- /dev/null +++ b/infer/tests/codetoanalyze/objc/biabduction/issues.exp @@ -0,0 +1,111 @@ +codetoanalyze/objc/biabduction/field_superclass/field.c, field_superclass_main, 3, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure field_superclass_main()] +codetoanalyze/objc/biabduction/global_const/global_const.m, SimpleRoot::doSomethingBadWithDict:andString:, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure doSomethingBadWithDict:andString:,Message stringByAppendingString: with receiver nil returns nil.] +codetoanalyze/objc/biabduction/global_const/global_const.m, SimpleRoot::doSomethingOkWithDict:andString:, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure doSomethingOkWithDict:andString:,Message stringByAppendingString: with receiver nil returns nil.] +codetoanalyze/objc/biabduction/initialization/compound_literal.c, init_with_compound_literal, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure init_with_compound_literal()] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleStaticVar.m, RetainCSV::foo, 13, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure foo,Executing synthesized setter setHandler:] +codetoanalyze/objc/biabduction/npe/null_returned_by_method.m, NullReturnedByMethodA::test1, 1, NULL_DEREFERENCE, B5, ERROR, [start of procedure test1,start of procedure test,return from a call to NullReturnedByMethodA::test] +codetoanalyze/objc/biabduction/procdescs/main.c, ProcdescMain, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure ProcdescMain(),Skipping plusX:andY:: method has no implementation] +codetoanalyze/objc/biabduction/procdescs/main.c, call_nslog, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure call_nslog(),Skipping NSLog(): method has no implementation] +codetoanalyze/objc/biabduction/property/main.c, property_main, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure property_main(),Skipping aProperty: method has no implementation] +codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder::FBAudioInputCallbackChain:, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure FBAudioInputCallbackChain:,Executing synthesized getter recorder Message recordState with receiver nil returns nil.] +codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder::FBAudioInputCallbackChain:, 2, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure FBAudioInputCallbackChain:,Message recorder with receiver nil returns nil. Message recordState with receiver nil returns nil.] +codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder::FBAudioInputCallbackField, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure FBAudioInputCallbackField,Message recordState with receiver nil returns nil.] +codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder::FBAudioInputCallbackSimple:, 2, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure FBAudioInputCallbackSimple:,Message recordState with receiver nil returns nil.] +codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder::FBAudioInputCallbackSimpleAliasing:, 3, PARAMETER_NOT_NULL_CHECKED, B1, WARNING, [start of procedure FBAudioInputCallbackSimpleAliasing:,Message recordState with receiver nil returns nil.] +codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder::init, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure init] +codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder::test, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure test,Message recordState with receiver nil returns nil.] +codetoanalyze/objc/shared/block/BlockVar.m, BlockVar::blockPostBad, 5, NULL_DEREFERENCE, B5, ERROR, [start of procedure blockPostBad,start of procedure block,return from a call to objc_blockBlockVar::blockPostBad_2] +codetoanalyze/objc/shared/block/BlockVar.m, BlockVar::capturedNullDeref, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure capturedNullDeref,start of procedure block] +codetoanalyze/objc/shared/block/BlockVar.m, BlockVar::navigateToURLInBackground, 8, NULL_DEREFERENCE, B1, ERROR, [start of procedure navigateToURLInBackground,start of procedure block,start of procedure test,return from a call to BlockVar::test,return from a call to objc_blockBlockVar::navigateToURLInBackground_1,Taking true branch] +codetoanalyze/objc/shared/block/block.m, main1, 30, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure main1(),start of procedure block,start of procedure block,return from a call to objc_blockobjc_blockmain1_2_3,return from a call to objc_blockmain1_2,start of procedure block,return from a call to objc_blockmain1_1] +codetoanalyze/objc/shared/block/block_no_args.m, My_manager::m, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure m,start of procedure block,return from a call to objc_blockMy_manager::m_1,Taking true branch] +codetoanalyze/objc/shared/category_procdesc/main.c, CategoryProcdescMain, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure CategoryProcdescMain(),Skipping performDaysWork: method has no implementation] +codetoanalyze/objc/shared/field_superclass/SuperExample.m, ASuper::init, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure init] +codetoanalyze/objc/biabduction/blocks_in_heap/BlockInHeap.m, block_in_heap_executed_after_bi_abduction_ok_test, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure block_in_heap_executed_after_bi_abduction_ok_test(),start of procedure block_in_heap_executed_after_bi_abduction_ok_no_retain_cycle(),start of procedure assign_block_to_ivar,Executing synthesized setter setHandler:,return from a call to BlockInHeap::assign_block_to_ivar,Executing synthesized getter handler,start of procedure block,return from a call to objc_blockBlockInHeap::assign_block_to_ivar_1,return from a call to block_in_heap_executed_after_bi_abduction_ok_no_retain_cycle,Taking true branch] +codetoanalyze/objc/biabduction/field_superclass/SubtypingExample.m, Employee::initWithName:andAge:andEducation:, 3, NULL_TEST_AFTER_DEREFERENCE, no_bucket, WARNING, [start of procedure initWithName:andAge:andEducation:,start of procedure initWithName:andAge:,return from a call to Person::initWithName:andAge:,Taking false branch] +codetoanalyze/objc/biabduction/field_superclass/SubtypingExample.m, Employee::initWithName:andAge:andEducation:, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure initWithName:andAge:andEducation:,start of procedure initWithName:andAge:,return from a call to Person::initWithName:andAge:,Taking true branch] +codetoanalyze/objc/biabduction/field_superclass/SubtypingExample.m, subtyping_test, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure subtyping_test(),start of procedure testFields(),start of procedure setEmployeeEducation:,return from a call to Employee::setEmployeeEducation:,start of procedure setAge:,return from a call to Person::setAge:,start of procedure setEmployeeEducation:,return from a call to Employee::setEmployeeEducation:,start of procedure getAge,return from a call to Person::getAge,return from a call to testFields] +codetoanalyze/objc/biabduction/initialization/struct_initlistexpr.c, field_set_correctly, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure field_set_correctly()] +codetoanalyze/objc/biabduction/initialization/struct_initlistexpr.c, implicit_expr_set_correctly, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure implicit_expr_set_correctly()] +codetoanalyze/objc/biabduction/initialization/struct_initlistexpr.c, point_coords_set_correctly, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure point_coords_set_correctly()] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockAsParameter.m, FBSomeDataManager::fetchNewData, 2, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure fetchNewData,start of procedure initWithCompletionBlock:,return from a call to Fetcher::initWithCompletionBlock:_objc_blockFBSomeDataManager::fetchNewData_1] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockCapturedVar.m, LinkResolver::test_bad, 3, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure test_bad,Executing synthesized setter setDidFinishLoad:] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlocks.m, RCBlock::retain_self_in_block, 1, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure retain_self_in_block,Executing synthesized setter setHandler:] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlocks.m, objc_blockretain_a_in_block_cycle_3, 1, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure block,Executing synthesized setter setChild:] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlocks.m, retain_a_in_block_cycle, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure retain_a_in_block_cycle(),Executing synthesized setter setB:,Executing synthesized setter setA:] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleDeduplication.m, CViewController::setCaptureInteractionController:, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure setCaptureInteractionController:,Taking true branch,Executing synthesized setter setDelegate:,Executing synthesized setter setDelegate:] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, MyCustomViewController::loadViewBad, 3, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure loadViewBad,Executing synthesized setter setView:,Executing synthesized setter setStrong_delegate:] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle.m, strongcycle, 6, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle(),Executing synthesized setter setB:,Executing synthesized setter setA:] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle2.m, strongcycle2, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle2(),start of procedure init,return from a call to Parent::init,start of procedure init,return from a call to Child::init,start of procedure setChild:,return from a call to Parent::setChild:,start of procedure setParent:,return from a call to Child::setParent:] +codetoanalyze/objc/biabduction/npe/UpdateDict.m, add_nil_in_dict, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure add_nil_in_dict(),Skipping dictionaryWithObjectsAndKeys:: method has no implementation] +codetoanalyze/objc/biabduction/npe/UpdateDict.m, add_nil_to_array, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure add_nil_to_array()] +codetoanalyze/objc/biabduction/npe/UpdateDict.m, insert_nil_in_array, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure insert_nil_in_array()] +codetoanalyze/objc/biabduction/npe/UpdateDict.m, nullable_NSDictionary_objectForKey, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure nullable_NSDictionary_objectForKey(),Taking true branch,Taking true branch] +codetoanalyze/objc/biabduction/npe/UpdateDict.m, nullable_NSDictionary_objectForKeyedSubscript, 5, NULL_DEREFERENCE, B5, ERROR, [start of procedure nullable_NSDictionary_objectForKeyedSubscript(),Taking true branch,Taking true branch] +codetoanalyze/objc/biabduction/npe/UpdateDict.m, nullable_NSMapTable_objectForKey, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure nullable_NSMapTable_objectForKey(),Taking true branch,Taking true branch] +codetoanalyze/objc/biabduction/npe/UpdateDict.m, update_array_with_null, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure update_array_with_null()] +codetoanalyze/objc/biabduction/npe/UpdateDict.m, update_dict_with_key_null, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure update_dict_with_key_null(),Skipping dictionaryWithObjectsAndKeys:: method has no implementation] +codetoanalyze/objc/biabduction/npe/nil_in_array_literal.m, Arr::insertNilBad, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure insertNilBad,start of procedure initA,Taking true branch,return from a call to A::initA] +codetoanalyze/objc/biabduction/npe/nil_in_array_literal.m, Arr::nilInArrayLiteral0, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInArrayLiteral0] +codetoanalyze/objc/biabduction/npe/nil_in_array_literal.m, Arr::nilInArrayLiteral1, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInArrayLiteral1] +codetoanalyze/objc/biabduction/npe/nil_in_array_literal.m, Arr::nilInArrayLiteral2, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInArrayLiteral2] +codetoanalyze/objc/biabduction/npe/nil_in_array_literal.m, Arr::nilInArrayLiteral3, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInArrayLiteral3] +codetoanalyze/objc/biabduction/npe/nil_in_array_literal.m, Arr::nilInArrayWithObject, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInArrayWithObject] +codetoanalyze/objc/biabduction/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralKey0, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralKey0] +codetoanalyze/objc/biabduction/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralKey1, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralKey1] +codetoanalyze/objc/biabduction/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralKey2, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralKey2] +codetoanalyze/objc/biabduction/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralKey3, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralKey3] +codetoanalyze/objc/biabduction/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralValue0, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralValue0] +codetoanalyze/objc/biabduction/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralValue1, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralValue1] +codetoanalyze/objc/biabduction/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralValue2, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralValue2] +codetoanalyze/objc/biabduction/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralValue3, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralValue3] +codetoanalyze/objc/biabduction/npe/npe_conditional.m, conditionalNPE, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure conditionalNPE(),start of procedure name,return from a call to ConditionalA::name,Condition is true] +codetoanalyze/objc/biabduction/npe/npe_self.m, CSelf::init, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure init] +codetoanalyze/objc/biabduction/npe/npe_self.m, CSelf::test, 3, NULL_DEREFERENCE, B5, ERROR, [start of procedure test,Taking false branch] +codetoanalyze/objc/biabduction/npe/nullable.m, derefNullableParamDirect, 0, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefNullableParamDirect()] +codetoanalyze/objc/biabduction/npe/nullable.m, derefNullableParamIndirect, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefNullableParamIndirect()] +codetoanalyze/objc/biabduction/npe/nullable.m, parameter_nullable_bug, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure parameter_nullable_bug()] +codetoanalyze/objc/biabduction/property/ExplicitIvarName.m, ExplicitIvarNameA::testDefaultName, 7, NULL_DEREFERENCE, B1, ERROR, [start of procedure testDefaultName,Skipping setY:: method has no implementation,Taking true branch] +codetoanalyze/objc/biabduction/property/ExplicitIvarName.m, ExplicitIvarNameA::testExplicit, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure testExplicit,Taking true branch] +codetoanalyze/objc/biabduction/subtyping/KindOfClassExample.m, shouldThrowDivideByZero1, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero1(),start of procedure init,return from a call to Base::init,start of procedure returnsZero1:,Taking true branch,return from a call to Base::returnsZero1:] +codetoanalyze/objc/biabduction/subtyping/KindOfClassExample.m, shouldThrowDivideByZero2, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero2(),start of procedure init,return from a call to Base::init,start of procedure returnsZero2(),Taking false branch,return from a call to returnsZero2] +codetoanalyze/objc/biabduction/subtyping/KindOfClassExample.m, shouldThrowDivideByZero3, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero3(),start of procedure init,return from a call to Derived::init,Taking true branch] +codetoanalyze/objc/biabduction/variadic_methods/premature_nil_termination.m, PrematureNilTermA::nilInArrayWithObjects, 5, PREMATURE_NIL_TERMINATION_ARGUMENT, B1, ERROR, [start of procedure nilInArrayWithObjects] +codetoanalyze/objc/shared/memory_leaks_benchmark/TollBridgeExample.m, TollBridgeExample::bridge, 2, MEMORY_LEAK, no_bucket, ERROR, [start of procedure bridge] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/CoreVideoExample.m, CoreVideoExample::cvpixelbuffer_not_released_leak, 1, MEMORY_LEAK, no_bucket, ERROR, [start of procedure cvpixelbuffer_not_released_leak] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/NSData_models_tests.m, NSData_models_tests::macForIV:, 2, MEMORY_LEAK, no_bucket, ERROR, [start of procedure macForIV:] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/NSString_models_tests.m, StringInitA::hexStringValue, 11, MEMORY_LEAK, no_bucket, ERROR, [start of procedure hexStringValue,Skipping CFStringCreateWithBytesNoCopy(): method has no implementation,Taking false branch] +codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleLength3.m, strongcycle, 6, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle(),Executing synthesized setter setB:,Executing synthesized setter setC:,Executing synthesized setter setA:] +codetoanalyze/objc/biabduction/npe/Fraction.m, test_virtual_call, 7, NULL_DEREFERENCE, B1, ERROR, [start of procedure test_virtual_call(),start of procedure setNumerator:,return from a call to Fraction::setNumerator:,start of procedure getNumerator,return from a call to Fraction::getNumerator,Taking true branch] +codetoanalyze/objc/biabduction/npe/Npe_with_equal_names.m, EqualNamesTest, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure EqualNamesTest(),start of procedure meth,return from a call to EqualNamesA::meth] +codetoanalyze/objc/biabduction/npe/Nsstring_nil_args.m, initWithFormatBad, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure initWithFormatBad()] +codetoanalyze/objc/biabduction/npe/Nsstring_nil_args.m, stringByAppendingStringBad, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure stringByAppendingStringBad()] +codetoanalyze/objc/biabduction/npe/Nsstring_nil_args.m, stringWithStringBad, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure stringWithStringBad(),start of procedure nullableMethod(),return from a call to nullableMethod] +codetoanalyze/objc/biabduction/npe/Nsstring_nil_args.m, stringWithUTF8StringBad, 1, NULL_DEREFERENCE, B5, ERROR, [start of procedure stringWithUTF8StringBad(),start of procedure nullableMethod(),return from a call to nullableMethod] +codetoanalyze/objc/biabduction/npe/block.m, BlockA::doSomethingThenCallback:, 2, PARAMETER_NOT_NULL_CHECKED, B1, WARNING, [start of procedure doSomethingThenCallback:] +codetoanalyze/objc/biabduction/npe/block.m, BlockA::foo, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure foo] +codetoanalyze/objc/biabduction/npe/block.m, BlockA::foo3:, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure foo3:] +codetoanalyze/objc/biabduction/npe/block.m, BlockA::foo4:, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure foo4:] +codetoanalyze/objc/biabduction/npe/block.m, BlockA::foo7, 2, IVAR_NOT_NULL_CHECKED, B1, WARNING, [start of procedure foo7] +codetoanalyze/objc/biabduction/npe/dynamic_dispatch.m, DynamicDispatchMain::npe_bad, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure npe_bad,start of procedure get_ddclass_from:,start of procedure get_ddclass,return from a call to PInstance::get_ddclass,return from a call to DynamicDispatchMain::get_ddclass_from:] +codetoanalyze/objc/biabduction/npe/dynamic_dispatch.m, objc_blockDynamicDispatchMain::dispatch_async_block_npe_bad_1, 3, NULL_DEREFERENCE, B5, ERROR, [start of procedure block,start of procedure get_ddclass_from:,start of procedure get_ddclass,return from a call to PInstance::get_ddclass,return from a call to DynamicDispatchMain::get_ddclass_from:] +codetoanalyze/objc/biabduction/npe/ivar_blocks.m, MyClass::ivar_npe, 1, IVAR_NOT_NULL_CHECKED, B1, WARNING, [start of procedure ivar_npe] +codetoanalyze/objc/biabduction/npe/skip_method_with_nil_object.m, SkipMethodNilA::testBug:, 6, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure testBug:,Message get_a with receiver nil returns nil.,Message skip_method with receiver nil returns nil.,Taking false branch] +codetoanalyze/objc/biabduction/property/main.c, property_main, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure property_main(),Skipping aProperty: method has no implementation] +codetoanalyze/objc/biabduction/resource_leaks/Dispatch_sources.m, ProcessContentsOfFile, 35, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure ProcessContentsOfFile(),Taking false branch,Skipping dispatch_get_global_queue(): method has no implementation,Skipping dispatch_source_create(): method has no implementation,Taking false branch,Skipping dispatch_source_set_event_handler(): method has no implementation,Skipping dispatch_source_set_cancel_handler(): method has no implementation] +codetoanalyze/objc/biabduction/resource_leaks/Dispatch_sources.m, objc_blockProcessContentsOfFile_2, 6, MEMORY_LEAK, no_bucket, ERROR, [start of procedure block,Skipping dispatch_source_get_data(): method has no implementation,Taking true branch,Skipping MyProcessFileData(): method has no implementation] +codetoanalyze/objc/biabduction/resource_leaks/ResourceLeakExample.m, NSFileHandle::fileHandleForLoggingAtPath:mode:, 9, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileHandleForLoggingAtPath:mode:,Taking true branch,Skipping fileSystemRepresentation: method has no implementation,Taking false branch,Taking true branch,Skipping autorelease: no implementation found for method declared in Objective-C protocol] +codetoanalyze/objc/shared/annotations/nonnull_annotations.m, A::test1:, 2, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure test1:,Message child with receiver nil returns nil.] +codetoanalyze/objc/shared/annotations/nonnull_annotations.m, A::test3:, 1, PARAMETER_NOT_NULL_CHECKED, B1, WARNING, [start of procedure test3:] +codetoanalyze/objc/shared/annotations/nullable_annotations.m, User::otherUserName, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure otherUserName,Skipping otherUser: method has no implementation] +codetoanalyze/objc/shared/annotations/nullable_annotations.m, npe_property_nullable, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure npe_property_nullable(),Skipping child: method has no implementation] +codetoanalyze/objc/shared/annotations/nullable_annotations_fields.m, A::nullable_field, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullable_field,Skipping getA(): method has no implementation] +codetoanalyze/objc/shared/block/dispatch.m, DispatchA::dispatch_a_block_variable_from_macro_delivers_initialised_object, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure dispatch_a_block_variable_from_macro_delivers_initialised_object,start of procedure dispatch_a_block_variable_from_macro,return from a call to DispatchA::dispatch_a_block_variable_from_macro] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::blockCapturedVarLeak, 6, MEMORY_LEAK, no_bucket, ERROR, [start of procedure blockCapturedVarLeak,start of procedure block,return from a call to objc_blockMemoryLeakExample::blockCapturedVarLeak_1] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::createCloseCrossGlyph:, 2, MEMORY_LEAK, no_bucket, ERROR, [start of procedure createCloseCrossGlyph:,Skipping CGRectGetHeight(): method has no implementation] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::measureFrameSizeForText, 1, MEMORY_LEAK, no_bucket, ERROR, [start of procedure measureFrameSizeForText] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::regularLeak, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure regularLeak] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::test, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure test,Skipping bounds: method has no implementation,Skipping setShadowPath:: method has no implementation] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::test1:, 1, MEMORY_LEAK, no_bucket, ERROR, [start of procedure test1:] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::test2:, 1, MEMORY_LEAK, no_bucket, ERROR, [start of procedure test2:] +codetoanalyze/objc/shared/npe/Available_expr.m, Available_expr::test_no_bug, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure test_no_bug,Taking true branch] diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/CADisplayLinkRetainCycle.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/CADisplayLinkRetainCycle.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/CADisplayLinkRetainCycle.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/CADisplayLinkRetainCycle.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/CoreVideoExample.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/CoreVideoExample.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/CoreVideoExample.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/CoreVideoExample.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakRaii.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/MemoryLeakRaii.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/MemoryLeakRaii.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/MemoryLeakRaii.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSData_models_tests.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/NSData_models_tests.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSData_models_tests.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/NSData_models_tests.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSString_models_tests.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/NSString_models_tests.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/NSString_models_tests.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/NSString_models_tests.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/ReleasedInBlock.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/ReleasedInBlock.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/ReleasedInBlock.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/ReleasedInBlock.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleBlockAsParameter.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockAsParameter.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleBlockAsParameter.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockAsParameter.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleBlockCapturedVar.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockCapturedVar.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleBlockCapturedVar.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockCapturedVar.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleBlocks.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlocks.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleBlocks.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlocks.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleDeduplication.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleDeduplication.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleDeduplication.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleDeduplication.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleExampleWeak.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleExampleWeak.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleExampleWeak.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleExampleWeak.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleLength3.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleLength3.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleLength3.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleLength3.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleStaticVar.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleStaticVar.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleStaticVar.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleStaticVar.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExampleBucketing.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainReleaseExampleBucketing.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExampleBucketing.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainReleaseExampleBucketing.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExampleBucketingArc.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainReleaseExampleBucketingArc.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExampleBucketingArc.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainReleaseExampleBucketingArc.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle.m diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle2.m b/infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle2.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle2.m rename to infer/tests/codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle2.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/BoxedNumberExample.m b/infer/tests/codetoanalyze/objc/biabduction/npe/BoxedNumberExample.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/BoxedNumberExample.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/BoxedNumberExample.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/Fraction.m b/infer/tests/codetoanalyze/objc/biabduction/npe/Fraction.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/Fraction.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/Fraction.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.h b/infer/tests/codetoanalyze/objc/biabduction/npe/NPD_core_foundation.h similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.h rename to infer/tests/codetoanalyze/objc/biabduction/npe/NPD_core_foundation.h diff --git a/infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.m b/infer/tests/codetoanalyze/objc/biabduction/npe/NPD_core_foundation.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/NPD_core_foundation.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/NPD_core_foundation.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/No_null_from_array.m b/infer/tests/codetoanalyze/objc/biabduction/npe/No_null_from_array.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/No_null_from_array.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/No_null_from_array.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/Npe_self_annotation.m b/infer/tests/codetoanalyze/objc/biabduction/npe/Npe_self_annotation.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/Npe_self_annotation.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/Npe_self_annotation.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/Npe_with_equal_names.m b/infer/tests/codetoanalyze/objc/biabduction/npe/Npe_with_equal_names.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/Npe_with_equal_names.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/Npe_with_equal_names.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/Nsstring_length_no_npe.m b/infer/tests/codetoanalyze/objc/biabduction/npe/Nsstring_length_no_npe.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/Nsstring_length_no_npe.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/Nsstring_length_no_npe.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/Nsstring_nil_args.m b/infer/tests/codetoanalyze/objc/biabduction/npe/Nsstring_nil_args.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/Nsstring_nil_args.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/Nsstring_nil_args.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/ObjCMethodCallInCondition.m b/infer/tests/codetoanalyze/objc/biabduction/npe/ObjCMethodCallInCondition.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/ObjCMethodCallInCondition.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/ObjCMethodCallInCondition.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/UpdateDict.m b/infer/tests/codetoanalyze/objc/biabduction/npe/UpdateDict.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/UpdateDict.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/UpdateDict.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/WeakCapturedVarsNPE.m b/infer/tests/codetoanalyze/objc/biabduction/npe/WeakCapturedVarsNPE.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/WeakCapturedVarsNPE.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/WeakCapturedVarsNPE.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/block.m b/infer/tests/codetoanalyze/objc/biabduction/npe/block.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/block.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/block.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/blockenum.m b/infer/tests/codetoanalyze/objc/biabduction/npe/blockenum.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/blockenum.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/blockenum.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/dynamic_dispatch.m b/infer/tests/codetoanalyze/objc/biabduction/npe/dynamic_dispatch.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/dynamic_dispatch.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/dynamic_dispatch.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/ivar_blocks.m b/infer/tests/codetoanalyze/objc/biabduction/npe/ivar_blocks.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/ivar_blocks.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/ivar_blocks.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/nil_in_array_literal.m b/infer/tests/codetoanalyze/objc/biabduction/npe/nil_in_array_literal.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/nil_in_array_literal.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/nil_in_array_literal.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/nil_in_dictionary_literal.m b/infer/tests/codetoanalyze/objc/biabduction/npe/nil_in_dictionary_literal.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/nil_in_dictionary_literal.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/nil_in_dictionary_literal.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/nil_param.m b/infer/tests/codetoanalyze/objc/biabduction/npe/nil_param.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/nil_param.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/nil_param.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/npe_conditional.m b/infer/tests/codetoanalyze/objc/biabduction/npe/npe_conditional.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/npe_conditional.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/npe_conditional.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/npe_self.m b/infer/tests/codetoanalyze/objc/biabduction/npe/npe_self.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/npe_self.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/npe_self.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/null_returned_by_method.m b/infer/tests/codetoanalyze/objc/biabduction/npe/null_returned_by_method.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/null_returned_by_method.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/null_returned_by_method.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/nullable.m b/infer/tests/codetoanalyze/objc/biabduction/npe/nullable.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/nullable.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/nullable.m diff --git a/infer/tests/codetoanalyze/objc/errors/npe/skip_method_with_nil_object.m b/infer/tests/codetoanalyze/objc/biabduction/npe/skip_method_with_nil_object.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/npe/skip_method_with_nil_object.m rename to infer/tests/codetoanalyze/objc/biabduction/npe/skip_method_with_nil_object.m diff --git a/infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.h b/infer/tests/codetoanalyze/objc/biabduction/procdescs/MethodCall.h similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.h rename to infer/tests/codetoanalyze/objc/biabduction/procdescs/MethodCall.h diff --git a/infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.m b/infer/tests/codetoanalyze/objc/biabduction/procdescs/MethodCall.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/procdescs/MethodCall.m rename to infer/tests/codetoanalyze/objc/biabduction/procdescs/MethodCall.m diff --git a/infer/tests/codetoanalyze/objc/errors/procdescs/main.c b/infer/tests/codetoanalyze/objc/biabduction/procdescs/main.c similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/procdescs/main.c rename to infer/tests/codetoanalyze/objc/biabduction/procdescs/main.c diff --git a/infer/tests/codetoanalyze/objc/errors/property/ExplicitIvarName.m b/infer/tests/codetoanalyze/objc/biabduction/property/ExplicitIvarName.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/property/ExplicitIvarName.m rename to infer/tests/codetoanalyze/objc/biabduction/property/ExplicitIvarName.m diff --git a/infer/tests/codetoanalyze/objc/errors/property/IvarExample.h b/infer/tests/codetoanalyze/objc/biabduction/property/IvarExample.h similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/property/IvarExample.h rename to infer/tests/codetoanalyze/objc/biabduction/property/IvarExample.h diff --git a/infer/tests/codetoanalyze/objc/errors/property/main.c b/infer/tests/codetoanalyze/objc/biabduction/property/main.c similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/property/main.c rename to infer/tests/codetoanalyze/objc/biabduction/property/main.c diff --git a/infer/tests/codetoanalyze/objc/errors/resource_leaks/Dispatch_sources.m b/infer/tests/codetoanalyze/objc/biabduction/resource_leaks/Dispatch_sources.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/resource_leaks/Dispatch_sources.m rename to infer/tests/codetoanalyze/objc/biabduction/resource_leaks/Dispatch_sources.m diff --git a/infer/tests/codetoanalyze/objc/errors/resource_leaks/ResourceLeakExample.m b/infer/tests/codetoanalyze/objc/biabduction/resource_leaks/ResourceLeakExample.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/resource_leaks/ResourceLeakExample.m rename to infer/tests/codetoanalyze/objc/biabduction/resource_leaks/ResourceLeakExample.m diff --git a/infer/tests/codetoanalyze/objc/errors/returnstmt/return_npe_test.m b/infer/tests/codetoanalyze/objc/biabduction/returnstmt/return_npe_test.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/returnstmt/return_npe_test.m rename to infer/tests/codetoanalyze/objc/biabduction/returnstmt/return_npe_test.m diff --git a/infer/tests/codetoanalyze/objc/errors/shared b/infer/tests/codetoanalyze/objc/biabduction/shared similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/shared rename to infer/tests/codetoanalyze/objc/biabduction/shared diff --git a/infer/tests/codetoanalyze/objc/errors/subtyping/KindOfClassExample.m b/infer/tests/codetoanalyze/objc/biabduction/subtyping/KindOfClassExample.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/subtyping/KindOfClassExample.m rename to infer/tests/codetoanalyze/objc/biabduction/subtyping/KindOfClassExample.m diff --git a/infer/tests/codetoanalyze/objc/errors/taint/sources.m b/infer/tests/codetoanalyze/objc/biabduction/taint/sources.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/taint/sources.m rename to infer/tests/codetoanalyze/objc/biabduction/taint/sources.m diff --git a/infer/tests/codetoanalyze/objc/errors/taint/viewController.m b/infer/tests/codetoanalyze/objc/biabduction/taint/viewController.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/taint/viewController.m rename to infer/tests/codetoanalyze/objc/biabduction/taint/viewController.m diff --git a/infer/tests/codetoanalyze/objc/errors/variadic_methods/premature_nil_termination.m b/infer/tests/codetoanalyze/objc/biabduction/variadic_methods/premature_nil_termination.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/variadic_methods/premature_nil_termination.m rename to infer/tests/codetoanalyze/objc/biabduction/variadic_methods/premature_nil_termination.m diff --git a/infer/tests/codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m b/infer/tests/codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m similarity index 100% rename from infer/tests/codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m rename to infer/tests/codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m diff --git a/infer/tests/codetoanalyze/objc/errors/issues.exp b/infer/tests/codetoanalyze/objc/errors/issues.exp deleted file mode 100644 index 249024bfc..000000000 --- a/infer/tests/codetoanalyze/objc/errors/issues.exp +++ /dev/null @@ -1,111 +0,0 @@ -codetoanalyze/objc/errors/field_superclass/field.c, field_superclass_main, 3, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure field_superclass_main()] -codetoanalyze/objc/errors/global_const/global_const.m, SimpleRoot::doSomethingBadWithDict:andString:, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure doSomethingBadWithDict:andString:,Message stringByAppendingString: with receiver nil returns nil.] -codetoanalyze/objc/errors/global_const/global_const.m, SimpleRoot::doSomethingOkWithDict:andString:, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure doSomethingOkWithDict:andString:,Message stringByAppendingString: with receiver nil returns nil.] -codetoanalyze/objc/errors/initialization/compound_literal.c, init_with_compound_literal, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure init_with_compound_literal()] -codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleStaticVar.m, RetainCSV::foo, 13, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure foo,Executing synthesized setter setHandler:] -codetoanalyze/objc/errors/npe/null_returned_by_method.m, NullReturnedByMethodA::test1, 1, NULL_DEREFERENCE, B5, ERROR, [start of procedure test1,start of procedure test,return from a call to NullReturnedByMethodA::test] -codetoanalyze/objc/errors/procdescs/main.c, ProcdescMain, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure ProcdescMain(),Skipping plusX:andY:: method has no implementation] -codetoanalyze/objc/errors/procdescs/main.c, call_nslog, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure call_nslog(),Skipping NSLog(): method has no implementation] -codetoanalyze/objc/errors/property/main.c, property_main, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure property_main(),Skipping aProperty: method has no implementation] -codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder::FBAudioInputCallbackChain:, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure FBAudioInputCallbackChain:,Executing synthesized getter recorder Message recordState with receiver nil returns nil.] -codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder::FBAudioInputCallbackChain:, 2, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure FBAudioInputCallbackChain:,Message recorder with receiver nil returns nil. Message recordState with receiver nil returns nil.] -codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder::FBAudioInputCallbackField, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure FBAudioInputCallbackField,Message recordState with receiver nil returns nil.] -codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder::FBAudioInputCallbackSimple:, 2, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure FBAudioInputCallbackSimple:,Message recordState with receiver nil returns nil.] -codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder::FBAudioInputCallbackSimpleAliasing:, 3, PARAMETER_NOT_NULL_CHECKED, B1, WARNING, [start of procedure FBAudioInputCallbackSimpleAliasing:,Message recordState with receiver nil returns nil.] -codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder::init, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure init] -codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder::test, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure test,Message recordState with receiver nil returns nil.] -codetoanalyze/objc/shared/block/BlockVar.m, BlockVar::blockPostBad, 5, NULL_DEREFERENCE, B5, ERROR, [start of procedure blockPostBad,start of procedure block,return from a call to objc_blockBlockVar::blockPostBad_2] -codetoanalyze/objc/shared/block/BlockVar.m, BlockVar::capturedNullDeref, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure capturedNullDeref,start of procedure block] -codetoanalyze/objc/shared/block/BlockVar.m, BlockVar::navigateToURLInBackground, 8, NULL_DEREFERENCE, B1, ERROR, [start of procedure navigateToURLInBackground,start of procedure block,start of procedure test,return from a call to BlockVar::test,return from a call to objc_blockBlockVar::navigateToURLInBackground_1,Taking true branch] -codetoanalyze/objc/shared/block/block.m, main1, 30, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure main1(),start of procedure block,start of procedure block,return from a call to objc_blockobjc_blockmain1_2_3,return from a call to objc_blockmain1_2,start of procedure block,return from a call to objc_blockmain1_1] -codetoanalyze/objc/shared/block/block_no_args.m, My_manager::m, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure m,start of procedure block,return from a call to objc_blockMy_manager::m_1,Taking true branch] -codetoanalyze/objc/shared/category_procdesc/main.c, CategoryProcdescMain, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure CategoryProcdescMain(),Skipping performDaysWork: method has no implementation] -codetoanalyze/objc/shared/field_superclass/SuperExample.m, ASuper::init, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure init] -codetoanalyze/objc/errors/blocks_in_heap/BlockInHeap.m, block_in_heap_executed_after_bi_abduction_ok_test, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure block_in_heap_executed_after_bi_abduction_ok_test(),start of procedure block_in_heap_executed_after_bi_abduction_ok_no_retain_cycle(),start of procedure assign_block_to_ivar,Executing synthesized setter setHandler:,return from a call to BlockInHeap::assign_block_to_ivar,Executing synthesized getter handler,start of procedure block,return from a call to objc_blockBlockInHeap::assign_block_to_ivar_1,return from a call to block_in_heap_executed_after_bi_abduction_ok_no_retain_cycle,Taking true branch] -codetoanalyze/objc/errors/field_superclass/SubtypingExample.m, Employee::initWithName:andAge:andEducation:, 3, NULL_TEST_AFTER_DEREFERENCE, no_bucket, WARNING, [start of procedure initWithName:andAge:andEducation:,start of procedure initWithName:andAge:,return from a call to Person::initWithName:andAge:,Taking false branch] -codetoanalyze/objc/errors/field_superclass/SubtypingExample.m, Employee::initWithName:andAge:andEducation:, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure initWithName:andAge:andEducation:,start of procedure initWithName:andAge:,return from a call to Person::initWithName:andAge:,Taking true branch] -codetoanalyze/objc/errors/field_superclass/SubtypingExample.m, subtyping_test, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure subtyping_test(),start of procedure testFields(),start of procedure setEmployeeEducation:,return from a call to Employee::setEmployeeEducation:,start of procedure setAge:,return from a call to Person::setAge:,start of procedure setEmployeeEducation:,return from a call to Employee::setEmployeeEducation:,start of procedure getAge,return from a call to Person::getAge,return from a call to testFields] -codetoanalyze/objc/errors/initialization/struct_initlistexpr.c, field_set_correctly, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure field_set_correctly()] -codetoanalyze/objc/errors/initialization/struct_initlistexpr.c, implicit_expr_set_correctly, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure implicit_expr_set_correctly()] -codetoanalyze/objc/errors/initialization/struct_initlistexpr.c, point_coords_set_correctly, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure point_coords_set_correctly()] -codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleBlockAsParameter.m, FBSomeDataManager::fetchNewData, 2, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure fetchNewData,start of procedure initWithCompletionBlock:,return from a call to Fetcher::initWithCompletionBlock:_objc_blockFBSomeDataManager::fetchNewData_1] -codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleBlockCapturedVar.m, LinkResolver::test_bad, 3, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure test_bad,Executing synthesized setter setDidFinishLoad:] -codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleBlocks.m, RCBlock::retain_self_in_block, 1, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure retain_self_in_block,Executing synthesized setter setHandler:] -codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleBlocks.m, objc_blockretain_a_in_block_cycle_3, 1, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure block,Executing synthesized setter setChild:] -codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleBlocks.m, retain_a_in_block_cycle, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure retain_a_in_block_cycle(),Executing synthesized setter setB:,Executing synthesized setter setA:] -codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleDeduplication.m, CViewController::setCaptureInteractionController:, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure setCaptureInteractionController:,Taking true branch,Executing synthesized setter setDelegate:,Executing synthesized setter setDelegate:] -codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, MyCustomViewController::loadViewBad, 3, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure loadViewBad,Executing synthesized setter setView:,Executing synthesized setter setStrong_delegate:] -codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle.m, strongcycle, 6, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle(),Executing synthesized setter setB:,Executing synthesized setter setA:] -codetoanalyze/objc/errors/memory_leaks_benchmark/retain_cycle2.m, strongcycle2, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle2(),start of procedure init,return from a call to Parent::init,start of procedure init,return from a call to Child::init,start of procedure setChild:,return from a call to Parent::setChild:,start of procedure setParent:,return from a call to Child::setParent:] -codetoanalyze/objc/errors/npe/UpdateDict.m, add_nil_in_dict, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure add_nil_in_dict(),Skipping dictionaryWithObjectsAndKeys:: method has no implementation] -codetoanalyze/objc/errors/npe/UpdateDict.m, add_nil_to_array, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure add_nil_to_array()] -codetoanalyze/objc/errors/npe/UpdateDict.m, insert_nil_in_array, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure insert_nil_in_array()] -codetoanalyze/objc/errors/npe/UpdateDict.m, nullable_NSDictionary_objectForKey, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure nullable_NSDictionary_objectForKey(),Taking true branch,Taking true branch] -codetoanalyze/objc/errors/npe/UpdateDict.m, nullable_NSDictionary_objectForKeyedSubscript, 5, NULL_DEREFERENCE, B5, ERROR, [start of procedure nullable_NSDictionary_objectForKeyedSubscript(),Taking true branch,Taking true branch] -codetoanalyze/objc/errors/npe/UpdateDict.m, nullable_NSMapTable_objectForKey, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure nullable_NSMapTable_objectForKey(),Taking true branch,Taking true branch] -codetoanalyze/objc/errors/npe/UpdateDict.m, update_array_with_null, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure update_array_with_null()] -codetoanalyze/objc/errors/npe/UpdateDict.m, update_dict_with_key_null, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure update_dict_with_key_null(),Skipping dictionaryWithObjectsAndKeys:: method has no implementation] -codetoanalyze/objc/errors/npe/nil_in_array_literal.m, Arr::insertNilBad, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure insertNilBad,start of procedure initA,Taking true branch,return from a call to A::initA] -codetoanalyze/objc/errors/npe/nil_in_array_literal.m, Arr::nilInArrayLiteral0, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInArrayLiteral0] -codetoanalyze/objc/errors/npe/nil_in_array_literal.m, Arr::nilInArrayLiteral1, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInArrayLiteral1] -codetoanalyze/objc/errors/npe/nil_in_array_literal.m, Arr::nilInArrayLiteral2, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInArrayLiteral2] -codetoanalyze/objc/errors/npe/nil_in_array_literal.m, Arr::nilInArrayLiteral3, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInArrayLiteral3] -codetoanalyze/objc/errors/npe/nil_in_array_literal.m, Arr::nilInArrayWithObject, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInArrayWithObject] -codetoanalyze/objc/errors/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralKey0, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralKey0] -codetoanalyze/objc/errors/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralKey1, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralKey1] -codetoanalyze/objc/errors/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralKey2, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralKey2] -codetoanalyze/objc/errors/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralKey3, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralKey3] -codetoanalyze/objc/errors/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralValue0, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralValue0] -codetoanalyze/objc/errors/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralValue1, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralValue1] -codetoanalyze/objc/errors/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralValue2, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralValue2] -codetoanalyze/objc/errors/npe/nil_in_dictionary_literal.m, ADict::nilInDictionaryLiteralValue3, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nilInDictionaryLiteralValue3] -codetoanalyze/objc/errors/npe/npe_conditional.m, conditionalNPE, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure conditionalNPE(),start of procedure name,return from a call to ConditionalA::name,Condition is true] -codetoanalyze/objc/errors/npe/npe_self.m, CSelf::init, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure init] -codetoanalyze/objc/errors/npe/npe_self.m, CSelf::test, 3, NULL_DEREFERENCE, B5, ERROR, [start of procedure test,Taking false branch] -codetoanalyze/objc/errors/npe/nullable.m, derefNullableParamDirect, 0, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefNullableParamDirect()] -codetoanalyze/objc/errors/npe/nullable.m, derefNullableParamIndirect, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure derefNullableParamIndirect()] -codetoanalyze/objc/errors/npe/nullable.m, parameter_nullable_bug, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure parameter_nullable_bug()] -codetoanalyze/objc/errors/property/ExplicitIvarName.m, ExplicitIvarNameA::testDefaultName, 7, NULL_DEREFERENCE, B1, ERROR, [start of procedure testDefaultName,Skipping setY:: method has no implementation,Taking true branch] -codetoanalyze/objc/errors/property/ExplicitIvarName.m, ExplicitIvarNameA::testExplicit, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure testExplicit,Taking true branch] -codetoanalyze/objc/errors/subtyping/KindOfClassExample.m, shouldThrowDivideByZero1, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero1(),start of procedure init,return from a call to Base::init,start of procedure returnsZero1:,Taking true branch,return from a call to Base::returnsZero1:] -codetoanalyze/objc/errors/subtyping/KindOfClassExample.m, shouldThrowDivideByZero2, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero2(),start of procedure init,return from a call to Base::init,start of procedure returnsZero2(),Taking false branch,return from a call to returnsZero2] -codetoanalyze/objc/errors/subtyping/KindOfClassExample.m, shouldThrowDivideByZero3, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero3(),start of procedure init,return from a call to Derived::init,Taking true branch] -codetoanalyze/objc/errors/variadic_methods/premature_nil_termination.m, PrematureNilTermA::nilInArrayWithObjects, 5, PREMATURE_NIL_TERMINATION_ARGUMENT, B1, ERROR, [start of procedure nilInArrayWithObjects] -codetoanalyze/objc/shared/memory_leaks_benchmark/TollBridgeExample.m, TollBridgeExample::bridge, 2, MEMORY_LEAK, no_bucket, ERROR, [start of procedure bridge] -codetoanalyze/objc/errors/memory_leaks_benchmark/CoreVideoExample.m, CoreVideoExample::cvpixelbuffer_not_released_leak, 1, MEMORY_LEAK, no_bucket, ERROR, [start of procedure cvpixelbuffer_not_released_leak] -codetoanalyze/objc/errors/memory_leaks_benchmark/NSData_models_tests.m, NSData_models_tests::macForIV:, 2, MEMORY_LEAK, no_bucket, ERROR, [start of procedure macForIV:] -codetoanalyze/objc/errors/memory_leaks_benchmark/NSString_models_tests.m, StringInitA::hexStringValue, 11, MEMORY_LEAK, no_bucket, ERROR, [start of procedure hexStringValue,Skipping CFStringCreateWithBytesNoCopy(): method has no implementation,Taking false branch] -codetoanalyze/objc/errors/memory_leaks_benchmark/RetainCycleLength3.m, strongcycle, 6, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle(),Executing synthesized setter setB:,Executing synthesized setter setC:,Executing synthesized setter setA:] -codetoanalyze/objc/errors/npe/Fraction.m, test_virtual_call, 7, NULL_DEREFERENCE, B1, ERROR, [start of procedure test_virtual_call(),start of procedure setNumerator:,return from a call to Fraction::setNumerator:,start of procedure getNumerator,return from a call to Fraction::getNumerator,Taking true branch] -codetoanalyze/objc/errors/npe/Npe_with_equal_names.m, EqualNamesTest, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure EqualNamesTest(),start of procedure meth,return from a call to EqualNamesA::meth] -codetoanalyze/objc/errors/npe/Nsstring_nil_args.m, initWithFormatBad, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure initWithFormatBad()] -codetoanalyze/objc/errors/npe/Nsstring_nil_args.m, stringByAppendingStringBad, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure stringByAppendingStringBad()] -codetoanalyze/objc/errors/npe/Nsstring_nil_args.m, stringWithStringBad, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure stringWithStringBad(),start of procedure nullableMethod(),return from a call to nullableMethod] -codetoanalyze/objc/errors/npe/Nsstring_nil_args.m, stringWithUTF8StringBad, 1, NULL_DEREFERENCE, B5, ERROR, [start of procedure stringWithUTF8StringBad(),start of procedure nullableMethod(),return from a call to nullableMethod] -codetoanalyze/objc/errors/npe/block.m, BlockA::doSomethingThenCallback:, 2, PARAMETER_NOT_NULL_CHECKED, B1, WARNING, [start of procedure doSomethingThenCallback:] -codetoanalyze/objc/errors/npe/block.m, BlockA::foo, 5, NULL_DEREFERENCE, B1, ERROR, [start of procedure foo] -codetoanalyze/objc/errors/npe/block.m, BlockA::foo3:, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure foo3:] -codetoanalyze/objc/errors/npe/block.m, BlockA::foo4:, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure foo4:] -codetoanalyze/objc/errors/npe/block.m, BlockA::foo7, 2, IVAR_NOT_NULL_CHECKED, B1, WARNING, [start of procedure foo7] -codetoanalyze/objc/errors/npe/dynamic_dispatch.m, DynamicDispatchMain::npe_bad, 2, NULL_DEREFERENCE, B5, ERROR, [start of procedure npe_bad,start of procedure get_ddclass_from:,start of procedure get_ddclass,return from a call to PInstance::get_ddclass,return from a call to DynamicDispatchMain::get_ddclass_from:] -codetoanalyze/objc/errors/npe/dynamic_dispatch.m, objc_blockDynamicDispatchMain::dispatch_async_block_npe_bad_1, 3, NULL_DEREFERENCE, B5, ERROR, [start of procedure block,start of procedure get_ddclass_from:,start of procedure get_ddclass,return from a call to PInstance::get_ddclass,return from a call to DynamicDispatchMain::get_ddclass_from:] -codetoanalyze/objc/errors/npe/ivar_blocks.m, MyClass::ivar_npe, 1, IVAR_NOT_NULL_CHECKED, B1, WARNING, [start of procedure ivar_npe] -codetoanalyze/objc/errors/npe/skip_method_with_nil_object.m, SkipMethodNilA::testBug:, 6, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure testBug:,Message get_a with receiver nil returns nil.,Message skip_method with receiver nil returns nil.,Taking false branch] -codetoanalyze/objc/errors/property/main.c, property_main, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure property_main(),Skipping aProperty: method has no implementation] -codetoanalyze/objc/errors/resource_leaks/Dispatch_sources.m, ProcessContentsOfFile, 35, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure ProcessContentsOfFile(),Taking false branch,Skipping dispatch_get_global_queue(): method has no implementation,Skipping dispatch_source_create(): method has no implementation,Taking false branch,Skipping dispatch_source_set_event_handler(): method has no implementation,Skipping dispatch_source_set_cancel_handler(): method has no implementation] -codetoanalyze/objc/errors/resource_leaks/Dispatch_sources.m, objc_blockProcessContentsOfFile_2, 6, MEMORY_LEAK, no_bucket, ERROR, [start of procedure block,Skipping dispatch_source_get_data(): method has no implementation,Taking true branch,Skipping MyProcessFileData(): method has no implementation] -codetoanalyze/objc/errors/resource_leaks/ResourceLeakExample.m, NSFileHandle::fileHandleForLoggingAtPath:mode:, 9, RESOURCE_LEAK, no_bucket, ERROR, [start of procedure fileHandleForLoggingAtPath:mode:,Taking true branch,Skipping fileSystemRepresentation: method has no implementation,Taking false branch,Taking true branch,Skipping autorelease: no implementation found for method declared in Objective-C protocol] -codetoanalyze/objc/shared/annotations/nonnull_annotations.m, A::test1:, 2, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure test1:,Message child with receiver nil returns nil.] -codetoanalyze/objc/shared/annotations/nonnull_annotations.m, A::test3:, 1, PARAMETER_NOT_NULL_CHECKED, B1, WARNING, [start of procedure test3:] -codetoanalyze/objc/shared/annotations/nullable_annotations.m, User::otherUserName, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure otherUserName,Skipping otherUser: method has no implementation] -codetoanalyze/objc/shared/annotations/nullable_annotations.m, npe_property_nullable, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure npe_property_nullable(),Skipping child: method has no implementation] -codetoanalyze/objc/shared/annotations/nullable_annotations_fields.m, A::nullable_field, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure nullable_field,Skipping getA(): method has no implementation] -codetoanalyze/objc/shared/block/dispatch.m, DispatchA::dispatch_a_block_variable_from_macro_delivers_initialised_object, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure dispatch_a_block_variable_from_macro_delivers_initialised_object,start of procedure dispatch_a_block_variable_from_macro,return from a call to DispatchA::dispatch_a_block_variable_from_macro] -codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::blockCapturedVarLeak, 6, MEMORY_LEAK, no_bucket, ERROR, [start of procedure blockCapturedVarLeak,start of procedure block,return from a call to objc_blockMemoryLeakExample::blockCapturedVarLeak_1] -codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::createCloseCrossGlyph:, 2, MEMORY_LEAK, no_bucket, ERROR, [start of procedure createCloseCrossGlyph:,Skipping CGRectGetHeight(): method has no implementation] -codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::measureFrameSizeForText, 1, MEMORY_LEAK, no_bucket, ERROR, [start of procedure measureFrameSizeForText] -codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::regularLeak, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure regularLeak] -codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::test, 3, MEMORY_LEAK, no_bucket, ERROR, [start of procedure test,Skipping bounds: method has no implementation,Skipping setShadowPath:: method has no implementation] -codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::test1:, 1, MEMORY_LEAK, no_bucket, ERROR, [start of procedure test1:] -codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample::test2:, 1, MEMORY_LEAK, no_bucket, ERROR, [start of procedure test2:] -codetoanalyze/objc/shared/npe/Available_expr.m, Available_expr::test_no_bug, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure test_no_bug,Taking true branch] diff --git a/infer/tests/codetoanalyze/objc/performance/Makefile b/infer/tests/codetoanalyze/objc/performance/Makefile index ac41251ec..025cadf00 100644 --- a/infer/tests/codetoanalyze/objc/performance/Makefile +++ b/infer/tests/codetoanalyze/objc/performance/Makefile @@ -5,7 +5,6 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem CLANG_OPTIONS = -c $(OBJC_CLANG_OPTIONS) INFER_OPTIONS = --cost-only --bufferoverrun --debug-exceptions --project-root $(TESTS_DIR) \ --use-cost-threshold diff --git a/infer/tests/codetoanalyze/objc/uninit/Makefile b/infer/tests/codetoanalyze/objc/uninit/Makefile index cf8e5c7c9..615ed5297 100644 --- a/infer/tests/codetoanalyze/objc/uninit/Makefile +++ b/infer/tests/codetoanalyze/objc/uninit/Makefile @@ -5,7 +5,6 @@ TESTS_DIR = ../../.. -# see explanations in cpp/errors/Makefile for the custom isystem CLANG_OPTIONS = -c $(OBJC_CLANG_OPTIONS) INFER_OPTIONS = --uninit-only --debug-exceptions --project-root $(TESTS_DIR) INFERPRINT_OPTIONS = --issues-tests diff --git a/infer/tests/codetoanalyze/objcpp/errors/BlockLfield.mm b/infer/tests/codetoanalyze/objcpp/biabduction/BlockLfield.mm similarity index 100% rename from infer/tests/codetoanalyze/objcpp/errors/BlockLfield.mm rename to infer/tests/codetoanalyze/objcpp/biabduction/BlockLfield.mm diff --git a/infer/tests/codetoanalyze/objcpp/errors/Makefile b/infer/tests/codetoanalyze/objcpp/biabduction/Makefile similarity index 100% rename from infer/tests/codetoanalyze/objcpp/errors/Makefile rename to infer/tests/codetoanalyze/objcpp/biabduction/Makefile diff --git a/infer/tests/codetoanalyze/objcpp/errors/c_functions.mm b/infer/tests/codetoanalyze/objcpp/biabduction/c_functions.mm similarity index 100% rename from infer/tests/codetoanalyze/objcpp/errors/c_functions.mm rename to infer/tests/codetoanalyze/objcpp/biabduction/c_functions.mm diff --git a/infer/tests/codetoanalyze/objcpp/biabduction/issues.exp b/infer/tests/codetoanalyze/objcpp/biabduction/issues.exp new file mode 100644 index 000000000..242fb0b58 --- /dev/null +++ b/infer/tests/codetoanalyze/objcpp/biabduction/issues.exp @@ -0,0 +1,5 @@ +codetoanalyze/objcpp/biabduction/BlockLfield.mm, A::mOk, 1, PRECONDITION_NOT_FOUND, no_bucket, ERROR, [start of procedure mOk] +codetoanalyze/objcpp/biabduction/BlockLfield.mm, CFunWithBlockOk, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure CFunWithBlockOk()] +codetoanalyze/objcpp/biabduction/BlockLfield.mm, CFunWithBlockOk_objc_blockA::mOk_1, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure CFunWithBlockOk()] +codetoanalyze/objcpp/biabduction/c_functions.mm, main, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure main(),start of procedure autoUpdating,return from a call to A::autoUpdating,start of procedure autoUpdating2,Skipping dispatch_once2(): method has no implementation,return from a call to A::autoUpdating2,Executing synthesized getter block,start of procedure block,return from a call to objc_blockobjc_blockA::autoUpdating_1_2,Message block with receiver nil returns nil.] +codetoanalyze/objcpp/biabduction/retain_cycles/RetainCycleWithStruct.mm, Animation::tracer, 2, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure tracer,start of procedure _State,return from a call to _State::_State,start of procedure initWithAnimation:,Taking true branch,return from a call to Tracer::initWithAnimation:] diff --git a/infer/tests/codetoanalyze/objcpp/errors/retain_cycles/RetainCycleWithStruct.mm b/infer/tests/codetoanalyze/objcpp/biabduction/retain_cycles/RetainCycleWithStruct.mm similarity index 100% rename from infer/tests/codetoanalyze/objcpp/errors/retain_cycles/RetainCycleWithStruct.mm rename to infer/tests/codetoanalyze/objcpp/biabduction/retain_cycles/RetainCycleWithStruct.mm diff --git a/infer/tests/codetoanalyze/objcpp/errors/issues.exp b/infer/tests/codetoanalyze/objcpp/errors/issues.exp deleted file mode 100644 index 5746babac..000000000 --- a/infer/tests/codetoanalyze/objcpp/errors/issues.exp +++ /dev/null @@ -1,5 +0,0 @@ -codetoanalyze/objcpp/errors/BlockLfield.mm, A::mOk, 1, PRECONDITION_NOT_FOUND, no_bucket, ERROR, [start of procedure mOk] -codetoanalyze/objcpp/errors/BlockLfield.mm, CFunWithBlockOk, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure CFunWithBlockOk()] -codetoanalyze/objcpp/errors/BlockLfield.mm, CFunWithBlockOk_objc_blockA::mOk_1, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure CFunWithBlockOk()] -codetoanalyze/objcpp/errors/c_functions.mm, main, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure main(),start of procedure autoUpdating,return from a call to A::autoUpdating,start of procedure autoUpdating2,Skipping dispatch_once2(): method has no implementation,return from a call to A::autoUpdating2,Executing synthesized getter block,start of procedure block,return from a call to objc_blockobjc_blockA::autoUpdating_1_2,Message block with receiver nil returns nil.] -codetoanalyze/objcpp/errors/retain_cycles/RetainCycleWithStruct.mm, Animation::tracer, 2, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure tracer,start of procedure _State,return from a call to _State::_State,start of procedure initWithAnimation:,Taking true branch,return from a call to Tracer::initWithAnimation:]