From d5e7ee0d82426dad6f6e5f3de0342d517d09bdd6 Mon Sep 17 00:00:00 2001 From: Jules Villard Date: Mon, 7 Nov 2016 08:47:04 -0800 Subject: [PATCH] [tests] run tests using report.json and record all bugs + exceptions Summary: Instead of the custom filtering done by `InferPrint --issues-tests`, use the filtering done by `infer` and run without filtering for our e2e tests. We still test the filtering for our build systems integration tests, and this diff restores that behaviour for the ant test (hence the bugs removed from ant/issues.exp). Also add internal exceptions to most tests to get more signal out of them (eg, knowing when we add assertion failures and the like). Retire the old `--issues-tests` to limit the number of ways we do filtering. Reviewed By: jeremydubreil Differential Revision: D4131308 fbshipit-source-id: 35805cc --- .gitignore | 1 + infer/src/backend/InferPrint.re | 55 +-------- infer/tests/build_systems/ant/Makefile | 8 +- infer/tests/build_systems/ant/issues.exp | 84 -------------- infer/tests/clang.make | 6 +- infer/tests/codetoanalyze/c/errors/Makefile | 2 +- infer/tests/codetoanalyze/c/errors/issues.exp | 25 +++++ .../tests/codetoanalyze/cpp/checkers/Makefile | 2 +- infer/tests/codetoanalyze/cpp/errors/Makefile | 2 +- .../tests/codetoanalyze/cpp/errors/issues.exp | 81 +++++++++++++ .../tests/codetoanalyze/cpp/quandary/Makefile | 3 +- .../codetoanalyze/java/checkers/Makefile | 2 +- .../codetoanalyze/java/eradicate/Makefile | 2 +- .../tests/codetoanalyze/java/harness/Makefile | 2 +- .../codetoanalyze/java/harness/issues.exp | 1 + infer/tests/codetoanalyze/java/infer/Makefile | 1 + .../tests/codetoanalyze/java/infer/issues.exp | 106 ++++++++++++++++++ infer/tests/codetoanalyze/java/java.make | 7 +- .../codetoanalyze/java/quandary/Makefile | 2 +- .../tests/codetoanalyze/java/tracing/Makefile | 1 + .../codetoanalyze/java/tracing/issues.exp | 2 + .../tests/codetoanalyze/objc/errors/Makefile | 27 +++-- .../codetoanalyze/objc/errors/issues.exp | 68 +++++++++++ .../tests/codetoanalyze/objc/linters/Makefile | 1 + .../codetoanalyze/objcpp/linters/Makefile | 1 + 25 files changed, 325 insertions(+), 167 deletions(-) diff --git a/.gitignore b/.gitignore index 78492413c..77ae0baea 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ *.rej *.start *.exp.test +*.exp.test.* duplicates.txt infer/tests/codetoanalyze/java/*/codetoanalyze diff --git a/infer/src/backend/InferPrint.re b/infer/src/backend/InferPrint.re index 4d382f859..684875702 100644 --- a/infer/src/backend/InferPrint.re +++ b/infer/src/backend/InferPrint.re @@ -527,7 +527,7 @@ let module IssuesJson = { let (source_file, procedure_start_line) = switch proc_loc_opt { | Some proc_loc => (proc_loc.Location.file, proc_loc.Location.line) - | None => (loc.Location.file, loc.Location.line) + | None => (loc.Location.file, 0) }; let file_opt = make_cpp_models_path_relative source_file; if ( @@ -578,57 +578,6 @@ let module IssuesJson = { }; }; -let module IssuesTests = { - - /** Write bug report in a format suitable for tests on analysis results. */ - let pp_issues_of_error_log fmt error_filter _ proc_loc_opt proc_name err_log => { - let pp_row _ loc _ ekind in_footprint error_name error_desc _ _ _ _ => { - let (source_file, line_offset) = - switch proc_loc_opt { - | Some proc_loc => - let line_offset = loc.Location.line - proc_loc.Location.line; - (proc_loc.Location.file, line_offset) - | None => (loc.Location.file, loc.Location.line) - }; - let should_report = - ekind == Exceptions.Kerror || - IList.exists - (Localise.equal error_name) - Localise.[ - assign_pointer_warning, - bad_pointer_comparison, - component_factory_function, - component_initializer_with_side_effects, - component_with_multiple_factory_methods, - component_with_unconventional_superclass, - cxx_reference_captured_in_objc_block, - direct_atomic_property_access, - field_not_null_checked, - global_variable_initialized_with_function_or_method_call, - mutable_local_variable_in_component_file, - parameter_not_null_checked, - quandary_taint_error, - registered_observer_being_deallocated, - return_value_ignored, - static_initialization_order_fiasco, - strong_delegate_warning - ]; - if (in_footprint && should_report && error_filter source_file error_desc error_name) { - F.fprintf - fmt - "%s, %a, %d, %a@." - (DB.source_file_to_string source_file) - Procname.pp - proc_name - line_offset - Localise.pp - error_name - } - }; - Errlog.iter pp_row err_log - }; -}; - let pp_tests_of_report fmt report => { let pp_row jsonbug => Jsonbug_t.( @@ -1102,7 +1051,7 @@ let pp_issues_in_format (format_kind, outf) => switch format_kind { | Json => IssuesJson.pp_issues_of_error_log outf.fmt | Csv => IssuesCsv.pp_issues_of_error_log outf.fmt - | Tests => IssuesTests.pp_issues_of_error_log outf.fmt + | Tests => failwith "Print issues as tests is not implemented" | Text => IssuesTxt.pp_issues_of_error_log outf.fmt | Xml => IssuesXml.pp_issues_of_error_log outf.fmt | Latex => failwith "Printing issues in latex is not implemented" diff --git a/infer/tests/build_systems/ant/Makefile b/infer/tests/build_systems/ant/Makefile index 53c380a96..0434d3688 100644 --- a/infer/tests/build_systems/ant/Makefile +++ b/infer/tests/build_systems/ant/Makefile @@ -15,8 +15,6 @@ default: compile JAVA_SOURCE_FILES = $(wildcard src/infer/*.java) JAVA_CLASS_FILES = $(patsubst %.java,ant_out/%.class,$(JAVA_SOURCE_FILES)) -INFERPRINT_OPTIONS = --issues-tests - $(JAVA_CLASS_FILES): $(JAVA_SOURCE_FILES) ant @@ -24,9 +22,9 @@ infer-out/report.json: $(INFER_BIN) $(JAVA_SOURCE_FILES) $(call silent_on_success,\ $(INFER_BIN) -a $(ANALYZER) -- ant) -issues.exp.test: $(INFERPRINT_BIN) infer-out/report.json - $(INFERPRINT_BIN) -q -a $(ANALYZER) $(INFERPRINT_OPTIONS) issues.exp.test - LC_ALL=C sort -t: -k1,1 -k2n,2 -o issues.exp.test issues.exp.test +issues.exp.test: infer-out/report.json $(INFERPRINT_BIN) + $(INFERPRINT_BIN) -q -a $(ANALYZER) --issues-tests $@ --from-json-report $< + LC_ALL=C sort -t: -k1,1 -k2n,2 -o $@ $@ .PHONY: compile compile: $(JAVA_CLASS_FILES) diff --git a/infer/tests/build_systems/ant/issues.exp b/infer/tests/build_systems/ant/issues.exp index 5faf3c7b1..8ab10273d 100644 --- a/infer/tests/build_systems/ant/issues.exp +++ b/infer/tests/build_systems/ant/issues.exp @@ -1,31 +1,8 @@ -src/infer/AnalysisStops.java, void AnalysisStops.accessPathInCalleeMayCauseFalseNegative(), 3, NULL_DEREFERENCE -src/infer/AnalysisStops.java, void AnalysisStops.callOnCastUndefinedObjMayCauseFalseNegative(), 3, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.callOnUndefinedObjMayCauseFalseNegative(), 2, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.castFailureOnUndefinedObjMayCauseFalseNegative(), 1, RETURN_VALUE_IGNORED -src/infer/AnalysisStops.java, void AnalysisStops.castFailureOnUndefinedObjMayCauseFalseNegative(), 2, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.fieldReadAferCastMayCauseFalseNegative(Iterator), 6, DIVIDE_BY_ZERO src/infer/AnalysisStops.java, void AnalysisStops.fieldReadInCalleeMayCauseFalseNegative(), 3, NULL_DEREFERENCE src/infer/AnalysisStops.java, void AnalysisStops.fieldReadInCalleeWithAngelicObjFieldMayCauseFalseNegative(), 3, NULL_DEREFERENCE -src/infer/AnalysisStops.java, void AnalysisStops.fieldReadOnUndefinedObjMayCauseFalseNegative(), 3, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.fieldWriteOnUndefinedObjMayCauseFalseNegative(), 3, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.heapFieldOfAngelicObjMayCauseFalseNegative(), 4, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.infiniteMaterializationMayCauseFalseNegative(boolean), 5, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalseNegative(), 3, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalseNegative(), 5, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.recursiveAngelicTypesMayCauseFalseNegative(), 4, DIVIDE_BY_ZERO src/infer/AnalysisStops.java, void AnalysisStops.skipFunctionInLoopMayCauseFalseNegative(), 5, NULL_DEREFERENCE -src/infer/AnalysisStops.java, void AnalysisStops.skipPointerDerefMayCauseCalleeFalseNegative(), 2, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.skipPointerDerefMayCauseInterprocFalseNegative(), 2, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.skipPointerDerefMayCauseLocalFalseNegative(), 3, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.specInferenceMayFailAndCauseFalseNegative(boolean,Iterator), 2, RETURN_VALUE_IGNORED -src/infer/AnalysisStops.java, void AnalysisStops.specInferenceMayFailAndCauseFalseNegative(boolean,Iterator), 26, DIVIDE_BY_ZERO -src/infer/AnalysisStops.java, void AnalysisStops.specInferenceMayFailAndCauseFalseNegative(boolean,Iterator), 3, RETURN_VALUE_IGNORED -src/infer/ArrayOutOfBounds.java, int ArrayOutOfBounds.arrayOutOfBounds(), 2, ARRAY_OUT_OF_BOUNDS_L1 src/infer/AutoGenerated.java, void AutoGenerated.npe(), 2, NULL_DEREFERENCE -src/infer/Builtins.java, void Builtins.causeError(Object), 2, NULL_DEREFERENCE src/infer/Builtins.java, void Builtins.doNotBlockError(Object), 3, NULL_DEREFERENCE -src/infer/ClassCastExceptions.java, int ClassCastExceptions.classCastExceptionImplementsInterface(), 0, CLASS_CAST_EXCEPTION -src/infer/ClassCastExceptions.java, void ClassCastExceptions.classCastException(), 2, CLASS_CAST_EXCEPTION src/infer/CloseableAsResourceExample.java, T CloseableAsResourceExample.sourceOfNullWithResourceLeak(), 1, RESOURCE_LEAK src/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.failToCloseWithCloseQuietly(), 5, RESOURCE_LEAK src/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.leakFoundWhenIndirectlyImplementingCloseable(), 1, RESOURCE_LEAK @@ -45,37 +22,18 @@ src/infer/CursorLeaks.java, int CursorLeaks.getBucketCountNotClosed(), 10, RESOU src/infer/CursorLeaks.java, int CursorLeaks.getImageCountHelperNotClosed(String), 13, RESOURCE_LEAK src/infer/CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderNotClosed(), 11, RESOURCE_LEAK src/infer/CursorLeaks.java, void CursorLeaks.queryUVMLegacyDbNotClosed(), 4, RESOURCE_LEAK -src/infer/CursorLeaks.java, void CursorLeaks.queryUVMLegacyDbNotClosed(), 4, RETURN_VALUE_IGNORED -src/infer/DivideByZero.java, int DivideByZero.callDivideByZeroInterProc(), 1, DIVIDE_BY_ZERO -src/infer/DivideByZero.java, int DivideByZero.divByZeroLocal(String), 3, DIVIDE_BY_ZERO -src/infer/DivideByZero.java, int DivideByZero.divideByZeroWithStaticField(), 2, DIVIDE_BY_ZERO src/infer/DynamicDispatch.java, void DynamicDispatch.dynamicDispatchShouldNotCauseFalseNegativeEasy(), 3, NULL_DEREFERENCE src/infer/DynamicDispatch.java, void DynamicDispatch.interfaceShouldNotCauseFalseNegativeEasy(), 3, NULL_DEREFERENCE src/infer/DynamicDispatch.java, void DynamicDispatch.interfaceShouldNotCauseFalseNegativeHard(DynamicDispatch$Interface), 2, NULL_DEREFERENCE -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.bufferedInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.bufferedInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.checkedInputStreamClosedAfterSkip(), 6, RETURN_VALUE_IGNORED -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.checkedInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.checkedInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.cipherInputStreamClosedAfterRead(), 6, RETURN_VALUE_IGNORED -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.cipherInputStreamNotClosedAfterSkip(), 5, RETURN_VALUE_IGNORED src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.cipherInputStreamNotClosedAfterSkip(), 7, RESOURCE_LEAK -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.dataInputStreamClosedAfterReadBoolean(), 6, RETURN_VALUE_IGNORED -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.dataInputStreamNotClosedAfterRead(), 6, RETURN_VALUE_IGNORED src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.dataInputStreamNotClosedAfterRead(), 8, RESOURCE_LEAK -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.deflaterInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.deflaterInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.digestInputStreamClosedAfterRead(), 6, RETURN_VALUE_IGNORED -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.digestInputStreamNotClosedAfterRead(), 6, RETURN_VALUE_IGNORED src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.digestInputStreamNotClosedAfterRead(), 8, RESOURCE_LEAK -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamClosedAfterRead(), 6, RETURN_VALUE_IGNORED src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead(), 4, RESOURCE_LEAK -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.inflaterInputStreamClosedAfterAvailable(), 6, RETURN_VALUE_IGNORED -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.inflaterInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.inflaterInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.pushbackInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.pushbackInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.bufferedOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.checkedOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK @@ -88,18 +46,8 @@ src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.gzipOutputS src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush(), 7, RESOURCE_LEAK src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.inflaterOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.printStreamNotClosedAfterWrite(), 6, RESOURCE_LEAK -src/infer/HashMapExample.java, Integer HashMapExample.getOrCreateInteger(HashMap,int), 8, RETURN_VALUE_IGNORED src/infer/HashMapExample.java, int HashMapExample.getOneIntegerWithoutCheck(), 6, NULL_DEREFERENCE -src/infer/HashMapExample.java, void HashMapExample.containsIntegerTwiceThenGetTwice(HashMap), 10, RETURN_VALUE_IGNORED -src/infer/HashMapExample.java, void HashMapExample.containsIntegerTwiceThenGetTwice(HashMap), 9, RETURN_VALUE_IGNORED -src/infer/HashMapExample.java, void HashMapExample.getTwoIntegersWithOneCheck(Integer,Integer), 10, RETURN_VALUE_IGNORED src/infer/HashMapExample.java, void HashMapExample.getTwoIntegersWithOneCheck(Integer,Integer), 11, NULL_DEREFERENCE -src/infer/HashMapExample.java, void HashMapExample.getTwoIntegersWithOneCheck(Integer,Integer), 11, RETURN_VALUE_IGNORED -src/infer/HashMapExample.java, void HashMapExample.putIntegerTwiceThenGetTwice(HashMap), 12, RETURN_VALUE_IGNORED -src/infer/HashMapExample.java, void HashMapExample.putIntegerTwiceThenGetTwice(HashMap), 13, RETURN_VALUE_IGNORED -src/infer/HashMapExample.java, void HashMapExample.putIntegerTwiceThenGetTwice(HashMap), 6, RETURN_VALUE_IGNORED -src/infer/HashMapExample.java, void HashMapExample.putIntegerTwiceThenGetTwice(HashMap), 7, RETURN_VALUE_IGNORED -src/infer/JunitAssertion.java, void JunitAssertion.inconsistentAssertion(JunitAssertion$A), 2, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, String NullPointerExceptions.hashmapNPE(HashMap,Object), 1, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, String NullPointerExceptions.nullTryLock(FileChannel), 2, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, String NullPointerExceptions.testSystemGetPropertyArgument(), 1, NULL_DEREFERENCE @@ -108,8 +56,6 @@ src/infer/NullPointerExceptions.java, int NullPointerExceptions.NPEvalueOfFromHa src/infer/NullPointerExceptions.java, int NullPointerExceptions.nullListFiles(String), 3, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerException(), 2, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionInterProc(), 2, NULL_DEREFERENCE -src/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C), 2, NULL_DEREFERENCE -src/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithArray(), 3, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean), 5, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars(), 2, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions.badCheckShouldCauseNPE(), 1, NULL_DEREFERENCE @@ -122,7 +68,6 @@ src/infer/NullPointerExceptions.java, void NullPointerExceptions.derefUndefNulla src/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L), 2, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock1(Lock), 4, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock2(Lock), 6, NULL_DEREFERENCE -src/infer/NullPointerExceptions.java, void NullPointerExceptions.noNullPointerExceptionAfterSkipFunction(), 4, RETURN_VALUE_IGNORED src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionArrayLength(), 2, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod(), 2, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFailingFileOutputStreamConstructor(), 7, NULL_DEREFERENCE @@ -132,7 +77,6 @@ src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExce src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullArrayParameter(), 1, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullObjectParameter(), 1, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullableFieldNPE(), 1, NULL_DEREFERENCE -src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullableNonNullStringAfterTextUtilsIsEmptyCheckShouldNotCauseNPE(String), 2, RETURN_VALUE_IGNORED src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullableParamNPE(Object), 1, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions.optionalNPE(Optional), 1, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions.otherSinkWithNeverNullSource(), 3, NULL_DEREFERENCE @@ -141,28 +85,13 @@ src/infer/NullPointerExceptions.java, void NullPointerExceptions.someNPEAfterRes src/infer/NullPointerExceptions.java, void NullPointerExceptions.stringConstantEqualsFalseNotNPE_FP(), 10, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions.stringVarEqualsFalseNPE(), 5, NULL_DEREFERENCE src/infer/NullPointerExceptions.java, void NullPointerExceptions.testSystemGetPropertyReturn(), 2, NULL_DEREFERENCE -src/infer/NullPointerExceptions.java, void NullPointerExceptions.testSystemGetPropertyReturn(), 2, RETURN_VALUE_IGNORED -src/infer/ReaderLeaks.java, void ReaderLeaks.bufferedReaderClosed(), 4, RETURN_VALUE_IGNORED -src/infer/ReaderLeaks.java, void ReaderLeaks.bufferedReaderNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED src/infer/ReaderLeaks.java, void ReaderLeaks.bufferedReaderNotClosedAfterRead(), 6, RESOURCE_LEAK -src/infer/ReaderLeaks.java, void ReaderLeaks.fileReaderClosed(), 4, RETURN_VALUE_IGNORED -src/infer/ReaderLeaks.java, void ReaderLeaks.fileReaderNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED src/infer/ReaderLeaks.java, void ReaderLeaks.fileReaderNotClosedAfterRead(), 6, RESOURCE_LEAK -src/infer/ReaderLeaks.java, void ReaderLeaks.inputStreamReaderClosed(), 4, RETURN_VALUE_IGNORED -src/infer/ReaderLeaks.java, void ReaderLeaks.inputStreamReaderNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED src/infer/ReaderLeaks.java, void ReaderLeaks.inputStreamReaderNotClosedAfterRead(), 6, RESOURCE_LEAK -src/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderClosed(PipedWriter), 5, RETURN_VALUE_IGNORED src/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderFalsePositive(), 5, RESOURCE_LEAK -src/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderFalsePositive(), 5, RETURN_VALUE_IGNORED -src/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderNotClosedAfterConnect(PipedWriter), 5, RETURN_VALUE_IGNORED src/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderNotClosedAfterConnect(PipedWriter), 7, RESOURCE_LEAK -src/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderNotClosedAfterConstructedWithWriter(), 6, RETURN_VALUE_IGNORED src/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderNotClosedAfterConstructedWithWriter(), 8, RESOURCE_LEAK -src/infer/ReaderLeaks.java, void ReaderLeaks.pushbackReaderClosed(), 4, RETURN_VALUE_IGNORED -src/infer/ReaderLeaks.java, void ReaderLeaks.pushbackReaderNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED src/infer/ReaderLeaks.java, void ReaderLeaks.pushbackReaderNotClosedAfterRead(), 6, RESOURCE_LEAK -src/infer/ReaderLeaks.java, void ReaderLeaks.readerClosed(), 4, RETURN_VALUE_IGNORED -src/infer/ReaderLeaks.java, void ReaderLeaks.readerNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED src/infer/ReaderLeaks.java, void ReaderLeaks.readerNotClosedAfterRead(), 6, RESOURCE_LEAK src/infer/ResourceLeaks.java, String ResourceLeaks.readInstallationFileBad(File), 6, RESOURCE_LEAK src/infer/ResourceLeaks.java, boolean ResourceLeaks.jarFileNotClosed(), 3, RESOURCE_LEAK @@ -170,15 +99,10 @@ src/infer/ResourceLeaks.java, int ResourceLeaks.fileOutputStreamTwoLeaks1(boolea src/infer/ResourceLeaks.java, int ResourceLeaks.fileOutputStreamTwoLeaks1(boolean), 6, RESOURCE_LEAK src/infer/ResourceLeaks.java, int ResourceLeaks.readConfigNotCloseStream(String), 5, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.activityObtainTypedArrayAndLeak(Activity), 2, RESOURCE_LEAK -src/infer/ResourceLeaks.java, void ResourceLeaks.closedQuietlyWithCloseables(), 3, RETURN_VALUE_IGNORED -src/infer/ResourceLeaks.java, void ResourceLeaks.closedWithCloseables(), 3, RETURN_VALUE_IGNORED src/infer/ResourceLeaks.java, void ResourceLeaks.contextObtainTypedArrayAndLeak(Context), 2, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 11, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 11, RESOURCE_LEAK -src/infer/ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 4, RETURN_VALUE_IGNORED src/infer/ResourceLeaks.java, void ResourceLeaks.deflaterLeak(), 1, RESOURCE_LEAK -src/infer/ResourceLeaks.java, void ResourceLeaks.fileInputStreamClosed(), 4, RETURN_VALUE_IGNORED -src/infer/ResourceLeaks.java, void ResourceLeaks.fileInputStreamNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED src/infer/ResourceLeaks.java, void ResourceLeaks.fileInputStreamNotClosedAfterRead(), 6, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamNotClosed(), 1, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamNotClosedAfterWrite(), 7, RESOURCE_LEAK @@ -192,12 +116,8 @@ src/infer/ResourceLeaks.java, void ResourceLeaks.nestedBad1(), 1, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.nestedBad2(), 1, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.nestedBadJarInputStream(File), 1, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.nestedBadJarOutputStream(), 1, RESOURCE_LEAK -src/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosed(), 5, RETURN_VALUE_IGNORED -src/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosed2(), 5, RETURN_VALUE_IGNORED src/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosedNestedBad(), 3, RESOURCE_LEAK -src/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosedNestedBad(), 4, RETURN_VALUE_IGNORED src/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamNotClosedAfterRead(), 3, RESOURCE_LEAK -src/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED src/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamNotClosedAfterRead(), 6, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.objectOutputStreamClosedNestedBad(), 3, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.objectOutputStreamNotClosedAfterWrite(), 4, RESOURCE_LEAK @@ -205,8 +125,6 @@ src/infer/ResourceLeaks.java, void ResourceLeaks.objectOutputStreamNotClosedAfte src/infer/ResourceLeaks.java, void ResourceLeaks.openHttpURLConnectionNotDisconnected(), 7, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.openHttpsURLConnectionNotDisconnected(), 3, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.parseFromInputStreamAndLeak(JsonFactory), 5, RESOURCE_LEAK -src/infer/ResourceLeaks.java, void ResourceLeaks.pipedInputStreamClosed(PipedOutputStream), 4, RETURN_VALUE_IGNORED -src/infer/ResourceLeaks.java, void ResourceLeaks.pipedInputStreamNotClosedAfterRead(PipedOutputStream), 4, RETURN_VALUE_IGNORED src/infer/ResourceLeaks.java, void ResourceLeaks.pipedInputStreamNotClosedAfterRead(PipedOutputStream), 6, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.pipedOutputStreamNotClosedAfterWrite(), 7, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.scannerNotClosed(), 1, RESOURCE_LEAK @@ -217,10 +135,8 @@ src/infer/ResourceLeaks.java, void ResourceLeaks.twoResources(), 11, RESOURCE_LE src/infer/ResourceLeaks.java, void ResourceLeaks.twoResourcesRandomAccessFile(), 10, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.twoResourcesServerSocket(), 10, RESOURCE_LEAK src/infer/ResourceLeaks.java, void ResourceLeaks.zipFileLeakExceptionalBranch(), 5, RESOURCE_LEAK -src/infer/ReturnValueIgnored.java, void ReturnValueIgnored.returnValueIgnored(), 1, RETURN_VALUE_IGNORED src/infer/TaintExample.java, InputStream TaintExample.socketIgnoreExceptionNoVerify(SSLSocketFactory), 9, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION src/infer/TaintExample.java, InputStream TaintExample.socketNotVerifiedSimple(SSLSocketFactory), 3, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION -src/infer/TaintExample.java, InputStream TaintExample.socketVerifiedForgotToCheckRetval(SSLSocketFactory,HostnameVerifier,SSLSession), 6, RETURN_VALUE_IGNORED src/infer/TaintExample.java, InputStream TaintExample.socketVerifiedForgotToCheckRetval(SSLSocketFactory,HostnameVerifier,SSLSession), 7, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION src/infer/TaintExample.java, InputStream TaintExample.taintingShouldNotPreventInference1(SSLSocketFactory), 4, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION src/infer/TaintExample.java, InputStream TaintExample.taintingShouldNotPreventInference2(SSLSocketFactory), 3, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION diff --git a/infer/tests/clang.make b/infer/tests/clang.make index e67b14196..055fbe9dd 100644 --- a/infer/tests/clang.make +++ b/infer/tests/clang.make @@ -21,9 +21,9 @@ infer-out/report.json: $(CLANG_DEPS) $(SOURCES) $(INFER_BIN) --check-duplicate-symbols $(INFER_OPTIONS) -a $(ANALYZER) -- clang $(CLANG_OPTIONS) $(SOURCES) 2>duplicates.txt) grep "DUPLICATE_SYMBOLS" duplicates.txt; test $$? -ne 0 -issues.exp.test: $(INFERPRINT_BIN) infer-out/report.json - $(INFERPRINT_BIN) -q -a $(ANALYZER) $(INFERPRINT_OPTIONS) issues.exp.test - LC_ALL=C sort -t, -k1,1 -k2,2 -k3n,3 -o issues.exp.test issues.exp.test +issues.exp.test: infer-out/report.json $(INFERPRINT_BIN) + $(INFERPRINT_BIN) -q -a $(ANALYZER) $(INFERPRINT_OPTIONS) $@ --from-json-report $< + LC_ALL=C sort -t, -k1,1 -k2,2 -k3n,3 -o $@ $@ $(OBJECTS): $(SOURCES) clang $(CLANG_OPTIONS) $(SOURCES) diff --git a/infer/tests/codetoanalyze/c/errors/Makefile b/infer/tests/codetoanalyze/c/errors/Makefile index 4a53dd281..506c8257b 100644 --- a/infer/tests/codetoanalyze/c/errors/Makefile +++ b/infer/tests/codetoanalyze/c/errors/Makefile @@ -10,7 +10,7 @@ include $(TESTS_DIR)/clang.make ANALYZER = infer CLANG_OPTIONS = -c -INFER_OPTIONS = --report-custom-error --developer-mode +INFER_OPTIONS = --report-custom-error --developer-mode --no-filtering --debug-exceptions SOURCES = \ $(wildcard */*.c) \ diff --git a/infer/tests/codetoanalyze/c/errors/issues.exp b/infer/tests/codetoanalyze/c/errors/issues.exp index dbd553062..dc794bc2b 100644 --- a/infer/tests/codetoanalyze/c/errors/issues.exp +++ b/infer/tests/codetoanalyze/c/errors/issues.exp @@ -11,19 +11,26 @@ assertions/assertion_failure.c, assignemt_before_check, 3, ASSERTION_FAILURE assertions/assertion_failure.c, failure_on_both_branches, 6, ASSERTION_FAILURE assertions/assertion_failure.c, should_report_assertion_failure, 3, ASSERTION_FAILURE assertions/assertion_failure.c, simple_assertion_failure, 3, ASSERTION_FAILURE +attributes/sentinel.c, truncated_call, 5, ANALYSIS_STOPS attributes/sentinel.c, truncated_call, 5, PREMATURE_NIL_TERMINATION_ARGUMENT custom_error/custom.c, paf, 3, UNEXPECTED_NEGATIVE_EXPONENT custom_error/custom.c, pouf, 3, UNEXPECTED_NEGATIVE_EXPONENT +dangling_deref/dpd.c, dpd, 3, ANALYSIS_STOPS dangling_deref/dpd.c, dpd, 3, DANGLING_POINTER_DEREFERENCE dangling_deref/dpd.c, dpd, 3, RETURN_VALUE_IGNORED +dangling_deref/dpd.c, dpd, 3, UNINITIALIZED_VALUE +dangling_deref/dpd.c, intraprocdpd, 3, ANALYSIS_STOPS dangling_deref/dpd.c, intraprocdpd, 3, DANGLING_POINTER_DEREFERENCE +dangling_deref/dpd.c, intraprocdpd, 3, UNINITIALIZED_VALUE dangling_deref/dpd.c, nodpd, 2, RETURN_VALUE_IGNORED dangling_deref/dpd.c, nodpd1, 3, NULL_DEREFERENCE dangling_deref/dpd.c, nodpd1, 3, RETURN_VALUE_IGNORED enumeration/other_enum.c, other_enum_test, 4, DIVIDE_BY_ZERO initialization/compound_literal.c, divide_by_zero, 0, DIVIDE_BY_ZERO +initialization/initlistexpr.c, init_divide_by_zero, 2, ANALYSIS_STOPS initialization/initlistexpr.c, init_divide_by_zero, 2, Assert_failure initialization/initlistexpr.c, init_divide_by_zero, 2, DIVIDE_BY_ZERO +lists/lists.c, call_delete_all2, 5, PRECONDITION_NOT_MET lists/lists.c, lists_main, 2, DIVIDE_BY_ZERO local_vars/local_vars.c, m1, 6, DIVIDE_BY_ZERO local_vars/local_vars.c, m2, 9, DIVIDE_BY_ZERO @@ -33,12 +40,19 @@ memory_leaks/test.c, common_realloc_leak, 3, MEMORY_LEAK memory_leaks/test.c, conditional_last_instruction, 2, MEMORY_LEAK memory_leaks/test.c, simple_leak, 2, MEMORY_LEAK memory_leaks/test.c, uses_allocator, 3, MEMORY_LEAK +null_dereference/angelism.c, bake, 2, ANALYSIS_STOPS null_dereference/angelism.c, bake, 2, NULL_DEREFERENCE +null_dereference/angelism.c, call_by_ref_actual_already_in_footprint_bad, 1, ANALYSIS_STOPS null_dereference/angelism.c, call_by_ref_actual_already_in_footprint_bad, 1, NULL_DEREFERENCE +null_dereference/angelism.c, struct_value_by_ref_callee_write_no_skip, 3, ANALYSIS_STOPS null_dereference/angelism.c, struct_value_by_ref_callee_write_no_skip, 3, NULL_DEREFERENCE +null_dereference/angelism.c, struct_value_by_ref_callee_write_skip, 4, ANALYSIS_STOPS null_dereference/angelism.c, struct_value_by_ref_callee_write_skip, 4, NULL_DEREFERENCE +null_dereference/angelism.c, struct_value_by_ref_ptr_write, 4, ANALYSIS_STOPS null_dereference/angelism.c, struct_value_by_ref_ptr_write, 4, NULL_DEREFERENCE +null_dereference/angelism.c, struct_value_from_pointer_skip_bad, 3, ANALYSIS_STOPS null_dereference/angelism.c, struct_value_from_pointer_skip_bad, 3, NULL_DEREFERENCE +null_dereference/angelism.c, struct_value_skip_null_deref, 4, ANALYSIS_STOPS null_dereference/angelism.c, struct_value_skip_null_deref, 4, NULL_DEREFERENCE null_dereference/getc.c, crash_clearerr, 4, NULL_DEREFERENCE null_dereference/getc.c, crash_feof, 4, NULL_DEREFERENCE @@ -61,21 +75,32 @@ null_dereference/getc.c, crash_ungetc, 5, RETURN_VALUE_IGNORED null_dereference/getc.c, crash_vfprintf, 5, NULL_DEREFERENCE null_dereference/getc.c, nocrash_ungetc, 5, RETURN_VALUE_IGNORED null_dereference/malloc_no_null_check.c, test_malloc, 2, NULL_DEREFERENCE +null_dereference/memcpy-test.c, testError1, 3, ANALYSIS_STOPS null_dereference/memcpy-test.c, testError1, 3, NULL_DEREFERENCE +null_dereference/memcpy-test.c, testError2, 5, ANALYSIS_STOPS null_dereference/memcpy-test.c, testError2, 5, NULL_DEREFERENCE +null_dereference/memcpy-test.c, testError3, 4, ANALYSIS_STOPS null_dereference/memcpy-test.c, testError3, 4, NULL_DEREFERENCE +null_dereference/null_pointer_dereference.c, basic_null_dereference, 2, ANALYSIS_STOPS null_dereference/null_pointer_dereference.c, basic_null_dereference, 2, NULL_DEREFERENCE null_dereference/null_pointer_dereference.c, function_call_can_return_null_pointer, 3, NULL_DEREFERENCE null_dereference/null_pointer_dereference.c, no_check_for_null_after_malloc, 3, NULL_DEREFERENCE null_dereference/null_pointer_dereference.c, no_check_for_null_after_realloc, 9, NULL_DEREFERENCE +null_dereference/null_pointer_dereference.c, null_passed_as_argument, 1, ANALYSIS_STOPS null_dereference/null_pointer_dereference.c, null_passed_as_argument, 1, NULL_DEREFERENCE +null_dereference/null_pointer_dereference.c, null_pointer_interproc, 2, ANALYSIS_STOPS null_dereference/null_pointer_dereference.c, null_pointer_interproc, 2, NULL_DEREFERENCE +null_dereference/null_pointer_dereference.c, null_pointer_with_function_pointer, 4, ANALYSIS_STOPS null_dereference/null_pointer_dereference.c, null_pointer_with_function_pointer, 4, NULL_DEREFERENCE null_dereference/null_pointer_dereference.c, potentially_null_pointer_passed_as_argument, 3, NULL_DEREFERENCE +null_dereference/null_pointer_dereference.c, simple_null_pointer, 2, ANALYSIS_STOPS null_dereference/null_pointer_dereference.c, simple_null_pointer, 2, NULL_DEREFERENCE null_dereference/short.c, f_error, 2, NULL_DEREFERENCE +null_dereference/short.c, f_error, 2, NULL_TEST_AFTER_DEREFERENCE null_dereference/short.c, g_error, 2, NULL_DEREFERENCE +null_dereference/short.c, g_error, 2, NULL_TEST_AFTER_DEREFERENCE null_dereference/short.c, l_error, 2, NULL_DEREFERENCE +null_dereference/short.c, m, 2, NULL_TEST_AFTER_DEREFERENCE offsetof_expr/offsetof_expr.c, test_offsetof_expr, 3, DIVIDE_BY_ZERO offsetof_expr/offsetof_expr.c, test_offsetof_expr, 5, DIVIDE_BY_ZERO resource_leaks/leak.c, fileNotClosed, 5, RESOURCE_LEAK diff --git a/infer/tests/codetoanalyze/cpp/checkers/Makefile b/infer/tests/codetoanalyze/cpp/checkers/Makefile index ecfe43ddb..54267726c 100644 --- a/infer/tests/codetoanalyze/cpp/checkers/Makefile +++ b/infer/tests/codetoanalyze/cpp/checkers/Makefile @@ -10,7 +10,7 @@ include $(TESTS_DIR)/clang.make ANALYZER = checkers CLANG_OPTIONS = -x c++ -std=c++11 -isystem$(MODELS_DIR)/cpp/include -isystem$(CLANG_INCLUDES)/c++/v1/ -c -INFER_OPTIONS = --cxx --ml-buckets cpp +INFER_OPTIONS = --cxx --ml-buckets cpp --no-filtering --debug-exceptions INFERPRINT_OPTIONS = --issues-txt SOURCES = \ diff --git a/infer/tests/codetoanalyze/cpp/errors/Makefile b/infer/tests/codetoanalyze/cpp/errors/Makefile index 876d6e4cb..c4856d6ae 100644 --- a/infer/tests/codetoanalyze/cpp/errors/Makefile +++ b/infer/tests/codetoanalyze/cpp/errors/Makefile @@ -12,7 +12,7 @@ ANALYZER = infer CLANG_OPTIONS = -x c++ -std=c++11 -isystem$(ROOT_DIR) -isystem$(CLANG_INCLUDES)/c++/v1/ -c -INFER_OPTIONS = --cxx --ml-buckets cpp +INFER_OPTIONS = --cxx --ml-buckets cpp --no-filtering --debug-exceptions SOURCES = \ $(wildcard c_tests/*.cpp) \ diff --git a/infer/tests/codetoanalyze/cpp/errors/issues.exp b/infer/tests/codetoanalyze/cpp/errors/issues.exp index 4dcf411e0..696082316 100644 --- a/infer/tests/codetoanalyze/cpp/errors/issues.exp +++ b/infer/tests/codetoanalyze/cpp/errors/issues.exp @@ -4,6 +4,7 @@ c_tests/c_bugs.cpp, crash_getc, 4, NULL_DEREFERENCE c_tests/c_bugs.cpp, crash_getc, 4, RETURN_VALUE_IGNORED c_tests/c_bugs.cpp, malloc_fail_gets_reported, 2, NULL_DEREFERENCE c_tests/c_bugs.cpp, malloc_memory_leak_is_reported, 0, MEMORY_LEAK +c_tests/c_bugs.cpp, memcpy_spec_is_found, 3, ANALYSIS_STOPS c_tests/c_bugs.cpp, memcpy_spec_is_found, 3, NULL_DEREFERENCE c_tests/c_bugs.cpp, resource_leak_is_reported, 0, RESOURCE_LEAK c_tests/c_bugs.cpp, resource_leak_is_reported, 0, RETURN_VALUE_IGNORED @@ -18,13 +19,23 @@ memory_leaks/object_leak.cpp, object_leak, 0, MEMORY_LEAK memory_leaks/raii_malloc.cpp, memory_leak, 0, MEMORY_LEAK models/move.cpp, move::div0_moved_from, 3, DIVIDE_BY_ZERO models/move.cpp, move::div0_moved_to, 3, DIVIDE_BY_ZERO +npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_field_deref, 2, ANALYSIS_STOPS npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_field_deref, 2, NULL_DEREFERENCE +npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_method_deref, 2, ANALYSIS_STOPS npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_method_deref, 2, NULL_DEREFERENCE +npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_method_deref2, 2, ANALYSIS_STOPS npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_method_deref2, 2, NULL_DEREFERENCE +npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_ok_field_deref, 4, UNINITIALIZED_VALUE +npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_result_method_null_deref, 4, ANALYSIS_STOPS npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_result_method_null_deref, 4, NULL_DEREFERENCE +npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_result_method_ok_deref, 4, UNINITIALIZED_VALUE +npe/npe_added_to_b1.cpp, npe_added_to_b1::causes_npe, 2, ANALYSIS_STOPS npe/npe_added_to_b1.cpp, npe_added_to_b1::causes_npe, 2, NULL_DEREFERENCE +npe/npe_added_to_b1.cpp, npe_added_to_b1::causes_npe_person, 2, ANALYSIS_STOPS npe/npe_added_to_b1.cpp, npe_added_to_b1::causes_npe_person, 2, NULL_DEREFERENCE +npe/null_returned_by_method.cpp, testNullDeref, 3, ANALYSIS_STOPS npe/null_returned_by_method.cpp, testNullDeref, 3, NULL_DEREFERENCE +npe/object_deref.cpp, object_deref::derefNullField, 2, ANALYSIS_STOPS npe/object_deref.cpp, object_deref::derefNullField, 2, NULL_DEREFERENCE npe/skip_function_with_const_formals.cpp, const_skip2_then_split_case, 5, MEMORY_LEAK npe/skip_function_with_const_formals.cpp, const_skip_then_split_case, 6, MEMORY_LEAK @@ -38,15 +49,25 @@ numeric/min_max.cpp, min_X_div0, 2, DIVIDE_BY_ZERO numeric/min_max.cpp, min_int_div0, 0, DIVIDE_BY_ZERO overwrite_attribute/main.cpp, testSetIntValue, 3, DIVIDE_BY_ZERO resource_leaks/raii.cpp, resource_leak, 7, RESOURCE_LEAK +shared/attributes/deprecated_hack.cpp, derefFirstArg2_null_deref, 2, ANALYSIS_STOPS shared/attributes/deprecated_hack.cpp, derefFirstArg2_null_deref, 2, NULL_DEREFERENCE +shared/attributes/deprecated_hack.cpp, derefFirstArg3_null_deref, 2, ANALYSIS_STOPS shared/attributes/deprecated_hack.cpp, derefFirstArg3_null_deref, 2, NULL_DEREFERENCE +shared/attributes/deprecated_hack.cpp, derefFirstArg_null_deref, 2, ANALYSIS_STOPS shared/attributes/deprecated_hack.cpp, derefFirstArg_null_deref, 2, NULL_DEREFERENCE +shared/attributes/deprecated_hack.cpp, getPtr_null_deref1, 3, ANALYSIS_STOPS shared/attributes/deprecated_hack.cpp, getPtr_null_deref1, 3, NULL_DEREFERENCE +shared/attributes/deprecated_hack.cpp, getPtr_null_deref2, 3, ANALYSIS_STOPS shared/attributes/deprecated_hack.cpp, getPtr_null_deref2, 3, NULL_DEREFERENCE +shared/attributes/deprecated_hack.cpp, getRef_null_deref1, 3, ANALYSIS_STOPS shared/attributes/deprecated_hack.cpp, getRef_null_deref1, 3, NULL_DEREFERENCE +shared/attributes/deprecated_hack.cpp, getRef_null_deref2, 3, ANALYSIS_STOPS shared/attributes/deprecated_hack.cpp, getRef_null_deref2, 3, NULL_DEREFERENCE +shared/attributes/deprecated_hack.cpp, operator_star_null_deref1, 3, ANALYSIS_STOPS shared/attributes/deprecated_hack.cpp, operator_star_null_deref1, 3, NULL_DEREFERENCE +shared/attributes/deprecated_hack.cpp, operator_star_null_deref2, 3, ANALYSIS_STOPS shared/attributes/deprecated_hack.cpp, operator_star_null_deref2, 3, NULL_DEREFERENCE +shared/attributes/deprecated_hack.cpp, operator_star_ok_deref, 4, UNINITIALIZED_VALUE shared/conditional/lvalue_conditional.cpp, div0_assign_conditional, 0, DIVIDE_BY_ZERO shared/conditional/lvalue_conditional.cpp, div0_choose_lvalue, 0, DIVIDE_BY_ZERO shared/conditional/lvalue_conditional.cpp, div0_choose_rvalue, 0, DIVIDE_BY_ZERO @@ -94,6 +115,7 @@ shared/constructors/temp_object.cpp, temp_object::getX_method_div0, 0, DIVIDE_BY shared/constructors/temp_object.cpp, temp_object::temp_field2_div0, 0, DIVIDE_BY_ZERO shared/constructors/temp_object.cpp, temp_object::temp_field_div0, 0, DIVIDE_BY_ZERO shared/constructors/temp_object.cpp, temp_object::temp_method_div0, 0, DIVIDE_BY_ZERO +shared/exceptions/Exceptions.cpp, call_deref_with_null, 0, ANALYSIS_STOPS shared/exceptions/Exceptions.cpp, call_deref_with_null, 0, NULL_DEREFERENCE shared/lambda/lambda1.cpp, bar, 5, DIVIDE_BY_ZERO shared/lambda/lambda1.cpp, foo, 3, DIVIDE_BY_ZERO @@ -116,9 +138,13 @@ shared/nestedoperators/var_decl_inside_if.cpp, function_call_init_div0, 2, DIVID shared/nestedoperators/var_decl_inside_if.cpp, reference_init_div0, 5, DIVIDE_BY_ZERO shared/nestedoperators/var_decl_inside_if.cpp, simple_inif_elseif_div0, 6, DIVIDE_BY_ZERO shared/nestedoperators/var_decl_inside_if.cpp, simple_init_div0, 4, DIVIDE_BY_ZERO +shared/nestedoperators/var_decl_inside_if.cpp, simple_init_null_deref, 4, ANALYSIS_STOPS shared/nestedoperators/var_decl_inside_if.cpp, simple_init_null_deref, 4, NULL_DEREFERENCE +shared/npe/method_call.cpp, npe_call, 2, ANALYSIS_STOPS shared/npe/method_call.cpp, npe_call, 2, NULL_DEREFERENCE +shared/npe/method_call.cpp, npe_call_after_call, 0, ANALYSIS_STOPS shared/npe/method_call.cpp, npe_call_after_call, 0, NULL_DEREFERENCE +shared/npe/method_call.cpp, npe_call_with_forward_declaration, 1, ANALYSIS_STOPS shared/npe/method_call.cpp, npe_call_with_forward_declaration, 1, NULL_DEREFERENCE shared/reference/reference_field.cpp, reference_field::ptr_F_div0, 5, DIVIDE_BY_ZERO shared/reference/reference_field.cpp, reference_field::ptr_I_div0, 5, DIVIDE_BY_ZERO @@ -201,75 +227,130 @@ shared/types/typeid_expr.cpp, person_typeid_name, 8, DIVIDE_BY_ZERO shared/types/typeid_expr.cpp, template_type_id_person, 2, MEMORY_LEAK shared/types/typeid_expr.cpp, template_type_id_person, 5, DIVIDE_BY_ZERO shared/types/typeid_expr.cpp, template_typeid, 2, MEMORY_LEAK +smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_after_move_crash, 4, ANALYSIS_STOPS smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_after_move_crash, 4, NULL_DEREFERENCE smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_after_move_ok, 4, MEMORY_LEAK smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_ok, 3, MEMORY_LEAK +smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base1_null_f1_deref, 6, ANALYSIS_STOPS smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base1_null_f1_deref, 6, NULL_DEREFERENCE +smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base1_nullptr_deref, 0, ANALYSIS_STOPS smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base1_nullptr_deref, 0, NULL_DEREFERENCE +smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base2_null_f1_deref, 6, ANALYSIS_STOPS smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base2_null_f1_deref, 6, NULL_DEREFERENCE +smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base2_nullptr_deref, 0, ANALYSIS_STOPS smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base2_nullptr_deref, 0, NULL_DEREFERENCE +smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived1_null_f1_deref, 6, ANALYSIS_STOPS smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived1_null_f1_deref, 6, NULL_DEREFERENCE +smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived1_nullptr_deref, 0, ANALYSIS_STOPS smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived1_nullptr_deref, 0, NULL_DEREFERENCE +smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived2_null_f1_deref, 6, ANALYSIS_STOPS smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived2_null_f1_deref, 6, NULL_DEREFERENCE +smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived2_nullptr_deref, 0, ANALYSIS_STOPS smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived2_nullptr_deref, 0, NULL_DEREFERENCE +smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived3_null_f1_deref, 6, ANALYSIS_STOPS smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived3_null_f1_deref, 6, NULL_DEREFERENCE +smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived3_nullptr_deref, 0, ANALYSIS_STOPS smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived3_nullptr_deref, 0, NULL_DEREFERENCE +smart_ptr/shared_ptr_deref.cpp, shared_ptr::empty_ptr_deref, 2, ANALYSIS_STOPS smart_ptr/shared_ptr_deref.cpp, shared_ptr::empty_ptr_deref, 2, NULL_DEREFERENCE +smart_ptr/shared_ptr_deref.cpp, shared_ptr::empty_ptr_field_deref, 2, ANALYSIS_STOPS smart_ptr/shared_ptr_deref.cpp, shared_ptr::empty_ptr_field_deref, 2, NULL_DEREFERENCE +smart_ptr/shared_ptr_deref.cpp, shared_ptr::empty_ptr_field_deref2, 2, ANALYSIS_STOPS smart_ptr/shared_ptr_deref.cpp, shared_ptr::empty_ptr_field_deref2, 2, NULL_DEREFERENCE +smart_ptr/shared_ptr_deref.cpp, shared_ptr::empty_ptr_method_deref, 2, ANALYSIS_STOPS smart_ptr/shared_ptr_deref.cpp, shared_ptr::empty_ptr_method_deref, 2, NULL_DEREFERENCE +smart_ptr/shared_ptr_deref.cpp, shared_ptr::nullptr_ptr_deref, 2, ANALYSIS_STOPS smart_ptr/shared_ptr_deref.cpp, shared_ptr::nullptr_ptr_deref, 2, NULL_DEREFERENCE smart_ptr/shared_ptr_deref.cpp, shared_ptr::reset_ptr_null_deref, 2, MEMORY_LEAK +smart_ptr/shared_ptr_deref.cpp, shared_ptr::reset_ptr_null_deref, 3, ANALYSIS_STOPS smart_ptr/shared_ptr_deref.cpp, shared_ptr::reset_ptr_null_deref, 3, NULL_DEREFERENCE smart_ptr/shared_ptr_deref.cpp, shared_ptr::reset_ptr_null_deref2, 2, MEMORY_LEAK smart_ptr/shared_ptr_deref.cpp, shared_ptr::reset_ptr_null_deref2, 3, MEMORY_LEAK +smart_ptr/shared_ptr_deref.cpp, shared_ptr::reset_ptr_null_deref2, 4, ANALYSIS_STOPS smart_ptr/shared_ptr_deref.cpp, shared_ptr::reset_ptr_null_deref2, 4, NULL_DEREFERENCE +smart_ptr/shared_ptr_deref.cpp, shared_ptr::reset_ptr_ok_deref, 3, UNINITIALIZED_VALUE smart_ptr/shared_ptr_deref.cpp, shared_ptr::reset_ptr_ok_deref, 4, MEMORY_LEAK +smart_ptr/shared_ptr_deref.cpp, shared_ptr::reset_ptr_ok_deref2, 4, UNINITIALIZED_VALUE smart_ptr/shared_ptr_deref.cpp, shared_ptr::reset_ptr_ok_deref2, 5, MEMORY_LEAK smart_ptr/shared_ptr_deref.cpp, shared_ptr::shared_ptr_assign_null_deref, 3, MEMORY_LEAK +smart_ptr/shared_ptr_deref.cpp, shared_ptr::shared_ptr_assign_null_deref, 4, ANALYSIS_STOPS smart_ptr/shared_ptr_deref.cpp, shared_ptr::shared_ptr_assign_null_deref, 4, NULL_DEREFERENCE +smart_ptr/shared_ptr_deref.cpp, shared_ptr::shared_ptr_assign_ok_deref, 5, UNINITIALIZED_VALUE smart_ptr/shared_ptr_deref.cpp, shared_ptr::shared_ptr_assign_ok_deref, 6, MEMORY_LEAK +smart_ptr/shared_ptr_deref.cpp, shared_ptr::shared_ptr_copy_null_deref, 3, ANALYSIS_STOPS smart_ptr/shared_ptr_deref.cpp, shared_ptr::shared_ptr_copy_null_deref, 3, NULL_DEREFERENCE +smart_ptr/shared_ptr_deref.cpp, shared_ptr::shared_ptr_copy_ok_deref, 3, UNINITIALIZED_VALUE smart_ptr/shared_ptr_deref.cpp, shared_ptr::shared_ptr_copy_ok_deref, 4, MEMORY_LEAK +smart_ptr/shared_ptr_deref.cpp, shared_ptr::shared_ptr_move_null_deref, 3, ANALYSIS_STOPS smart_ptr/shared_ptr_deref.cpp, shared_ptr::shared_ptr_move_null_deref, 3, NULL_DEREFERENCE +smart_ptr/unique_ptr_deref.cpp, unique_ptr::empty_array_ptr_deref, 2, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::empty_array_ptr_deref, 2, NULL_DEREFERENCE +smart_ptr/unique_ptr_deref.cpp, unique_ptr::empty_ptr_deref, 2, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::empty_ptr_deref, 2, NULL_DEREFERENCE +smart_ptr/unique_ptr_deref.cpp, unique_ptr::empty_ptr_field_deref, 2, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::empty_ptr_field_deref, 2, NULL_DEREFERENCE +smart_ptr/unique_ptr_deref.cpp, unique_ptr::empty_ptr_field_deref2, 2, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::empty_ptr_field_deref2, 2, NULL_DEREFERENCE +smart_ptr/unique_ptr_deref.cpp, unique_ptr::empty_ptr_method_deref, 2, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::empty_ptr_method_deref, 2, NULL_DEREFERENCE +smart_ptr/unique_ptr_deref.cpp, unique_ptr::nullptr_array_ptr_deref, 2, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::nullptr_array_ptr_deref, 2, NULL_DEREFERENCE +smart_ptr/unique_ptr_deref.cpp, unique_ptr::nullptr_ptr_deref, 2, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::nullptr_ptr_deref, 2, NULL_DEREFERENCE smart_ptr/unique_ptr_deref.cpp, unique_ptr::reset_ptr_null_deref, 2, MEMORY_LEAK +smart_ptr/unique_ptr_deref.cpp, unique_ptr::reset_ptr_null_deref, 3, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::reset_ptr_null_deref, 3, NULL_DEREFERENCE smart_ptr/unique_ptr_deref.cpp, unique_ptr::reset_ptr_null_deref2, 2, MEMORY_LEAK smart_ptr/unique_ptr_deref.cpp, unique_ptr::reset_ptr_null_deref2, 3, MEMORY_LEAK +smart_ptr/unique_ptr_deref.cpp, unique_ptr::reset_ptr_null_deref2, 4, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::reset_ptr_null_deref2, 4, NULL_DEREFERENCE +smart_ptr/unique_ptr_deref.cpp, unique_ptr::reset_ptr_ok_deref, 3, UNINITIALIZED_VALUE smart_ptr/unique_ptr_deref.cpp, unique_ptr::reset_ptr_ok_deref, 4, MEMORY_LEAK +smart_ptr/unique_ptr_deref.cpp, unique_ptr::reset_ptr_ok_deref2, 4, UNINITIALIZED_VALUE smart_ptr/unique_ptr_deref.cpp, unique_ptr::reset_ptr_ok_deref2, 5, MEMORY_LEAK smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_assign_null_deref, 3, MEMORY_LEAK +smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_assign_null_deref, 4, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_assign_null_deref, 4, NULL_DEREFERENCE +smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_assign_ok_deref, 5, UNINITIALIZED_VALUE smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_assign_ok_deref, 6, MEMORY_LEAK +smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_copy_null_deref, 3, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_copy_null_deref, 3, NULL_DEREFERENCE +smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_move_null_deref, 3, ANALYSIS_STOPS smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_move_null_deref, 3, NULL_DEREFERENCE +smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_move_ok_deref, 3, UNINITIALIZED_VALUE smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_move_ok_deref, 4, MEMORY_LEAK +subtyping/cast_with_enforce.cpp, cast_with_enforce::cast_with_npe, 3, ANALYSIS_STOPS subtyping/cast_with_enforce.cpp, cast_with_enforce::cast_with_npe, 3, NULL_DEREFERENCE subtyping/dynamic_cast.cpp, dynamic__cast::rightPointerCast, 4, DIVIDE_BY_ZERO subtyping/dynamic_cast.cpp, dynamic__cast::rightPointerCast, 4, MEMORY_LEAK subtyping/dynamic_cast.cpp, dynamic__cast::rightReferenceCast, 2, MEMORY_LEAK subtyping/dynamic_cast.cpp, dynamic__cast::wrongCastOfArgumentPointer, 2, DIVIDE_BY_ZERO +subtyping/dynamic_cast.cpp, dynamic__cast::wrongCastOfArgumentReference, 2, ANALYSIS_STOPS subtyping/dynamic_cast.cpp, dynamic__cast::wrongCastOfArgumentReference, 2, CLASS_CAST_EXCEPTION subtyping/dynamic_cast.cpp, dynamic__cast::wrongPointerCast, 2, MEMORY_LEAK subtyping/dynamic_cast.cpp, dynamic__cast::wrongPointerCast, 6, DIVIDE_BY_ZERO +subtyping/dynamic_cast.cpp, dynamic__cast::wrongReferenceCast, 3, ANALYSIS_STOPS subtyping/dynamic_cast.cpp, dynamic__cast::wrongReferenceCast, 3, CLASS_CAST_EXCEPTION +subtyping/dynamic_cast.cpp, dynamic__cast::wrongReferenceCastNotAssigned, 3, ANALYSIS_STOPS subtyping/dynamic_cast.cpp, dynamic__cast::wrongReferenceCastNotAssigned, 3, CLASS_CAST_EXCEPTION subtyping/subtyping_check.cpp, B_setFG, 4, DIVIDE_BY_ZERO +vector/empty_access.cpp, access_empty, 2, ANALYSIS_STOPS vector/empty_access.cpp, access_empty, 2, EMPTY_VECTOR_ACCESS +vector/empty_access.cpp, assign_empty, 4, ANALYSIS_STOPS vector/empty_access.cpp, assign_empty, 4, EMPTY_VECTOR_ACCESS +vector/empty_access.cpp, clear_empty, 3, ANALYSIS_STOPS vector/empty_access.cpp, clear_empty, 3, EMPTY_VECTOR_ACCESS +vector/empty_access.cpp, copy_empty, 3, ANALYSIS_STOPS vector/empty_access.cpp, copy_empty, 3, EMPTY_VECTOR_ACCESS +vector/empty_access.cpp, empty_check_access_empty, 2, ANALYSIS_STOPS vector/empty_access.cpp, empty_check_access_empty, 2, EMPTY_VECTOR_ACCESS +vector/empty_access.cpp, getter_empty, 0, ANALYSIS_STOPS vector/empty_access.cpp, getter_empty, 0, EMPTY_VECTOR_ACCESS +vector/empty_access.cpp, size_check0_empty, 2, ANALYSIS_STOPS vector/empty_access.cpp, size_check0_empty, 2, EMPTY_VECTOR_ACCESS +vector/empty_access.cpp, vector_as_param_by_value_empty, 2, ANALYSIS_STOPS vector/empty_access.cpp, vector_as_param_by_value_empty, 2, EMPTY_VECTOR_ACCESS +vector/empty_access.cpp, vector_as_param_clear, 3, ANALYSIS_STOPS vector/empty_access.cpp, vector_as_param_clear, 3, EMPTY_VECTOR_ACCESS +vector/empty_access.cpp, vector_as_param_empty, 2, ANALYSIS_STOPS vector/empty_access.cpp, vector_as_param_empty, 2, EMPTY_VECTOR_ACCESS diff --git a/infer/tests/codetoanalyze/cpp/quandary/Makefile b/infer/tests/codetoanalyze/cpp/quandary/Makefile index b6d2d79f6..c2b616abd 100644 --- a/infer/tests/codetoanalyze/cpp/quandary/Makefile +++ b/infer/tests/codetoanalyze/cpp/quandary/Makefile @@ -10,7 +10,8 @@ include $(TESTS_DIR)/clang.make ANALYZER = quandary CLANG_OPTIONS = -x c++ -std=c++11 -isystem$(ROOT_DIR) -isystem$(CLANG_INCLUDES)/c++/v1/ -c -INFER_OPTIONS = --cxx --ml-buckets cpp +INFER_OPTIONS = --cxx --ml-buckets cpp --no-filtering --debug-exceptions + INFERPRINT_OPTIONS = --issues-txt SOURCES = \ diff --git a/infer/tests/codetoanalyze/java/checkers/Makefile b/infer/tests/codetoanalyze/java/checkers/Makefile index 9b449fe6a..c552893fa 100644 --- a/infer/tests/codetoanalyze/java/checkers/Makefile +++ b/infer/tests/codetoanalyze/java/checkers/Makefile @@ -10,6 +10,6 @@ include $(JAVA_TEST_DIR)/java.make ANALYZER = checkers -INFER_OPTIONS = --thread-safety +INFER_OPTIONS = --thread-safety --no-filtering --debug-exceptions JAVA_SOURCE_FILES = $(wildcard *.java) diff --git a/infer/tests/codetoanalyze/java/eradicate/Makefile b/infer/tests/codetoanalyze/java/eradicate/Makefile index 5c758dc5b..c6b0d4f07 100644 --- a/infer/tests/codetoanalyze/java/eradicate/Makefile +++ b/infer/tests/codetoanalyze/java/eradicate/Makefile @@ -10,6 +10,6 @@ include $(JAVA_TEST_DIR)/java.make ANALYZER = eradicate -INFER_OPTIONS = --eradicate-return-over-annotated +INFER_OPTIONS = --eradicate-return-over-annotated --no-filtering --debug-exceptions JAVA_SOURCE_FILES = $(wildcard *.java) diff --git a/infer/tests/codetoanalyze/java/harness/Makefile b/infer/tests/codetoanalyze/java/harness/Makefile index 4d8be7536..9e7f6ae2b 100644 --- a/infer/tests/codetoanalyze/java/harness/Makefile +++ b/infer/tests/codetoanalyze/java/harness/Makefile @@ -10,7 +10,7 @@ include $(JAVA_TEST_DIR)/java.make ANALYZER = infer -INFER_OPTIONS = --android-harness +INFER_OPTIONS = --android-harness --no-filtering --debug-exceptions JAVA_SOURCE_FILES = \ BasicHarnessActivity.java \ diff --git a/infer/tests/codetoanalyze/java/harness/issues.exp b/infer/tests/codetoanalyze/java/harness/issues.exp index 725207760..c66ed1ffb 100644 --- a/infer/tests/codetoanalyze/java/harness/issues.exp +++ b/infer/tests/codetoanalyze/java/harness/issues.exp @@ -1 +1,2 @@ +BasicHarnessActivity.java, codetoanalyze.java.harness.BasicHarnessActivity.InferGeneratedHarness(), -1, ANALYSIS_STOPS BasicHarnessActivity.java, codetoanalyze.java.harness.BasicHarnessActivity.InferGeneratedHarness(), -1, NULL_DEREFERENCE diff --git a/infer/tests/codetoanalyze/java/infer/Makefile b/infer/tests/codetoanalyze/java/infer/Makefile index d14ba49db..33c42b019 100644 --- a/infer/tests/codetoanalyze/java/infer/Makefile +++ b/infer/tests/codetoanalyze/java/infer/Makefile @@ -9,5 +9,6 @@ JAVA_TEST_DIR = .. include $(JAVA_TEST_DIR)/java.make ANALYZER = infer +INFER_OPTIONS = --no-filtering --debug-exceptions JAVA_SOURCE_FILES = $(wildcard *.java) diff --git a/infer/tests/codetoanalyze/java/infer/issues.exp b/infer/tests/codetoanalyze/java/infer/issues.exp index d22c95952..78d169d33 100644 --- a/infer/tests/codetoanalyze/java/infer/issues.exp +++ b/infer/tests/codetoanalyze/java/infer/issues.exp @@ -1,10 +1,13 @@ +AnalysisStops.java, void AnalysisStops.accessPathInCalleeMayCauseFalseNegative(), 3, ANALYSIS_STOPS AnalysisStops.java, void AnalysisStops.accessPathInCalleeMayCauseFalseNegative(), 3, NULL_DEREFERENCE AnalysisStops.java, void AnalysisStops.callOnCastUndefinedObjMayCauseFalseNegative(), 3, DIVIDE_BY_ZERO AnalysisStops.java, void AnalysisStops.callOnUndefinedObjMayCauseFalseNegative(), 2, DIVIDE_BY_ZERO AnalysisStops.java, void AnalysisStops.castFailureOnUndefinedObjMayCauseFalseNegative(), 1, RETURN_VALUE_IGNORED AnalysisStops.java, void AnalysisStops.castFailureOnUndefinedObjMayCauseFalseNegative(), 2, DIVIDE_BY_ZERO AnalysisStops.java, void AnalysisStops.fieldReadAferCastMayCauseFalseNegative(Iterator), 6, DIVIDE_BY_ZERO +AnalysisStops.java, void AnalysisStops.fieldReadInCalleeMayCauseFalseNegative(), 3, ANALYSIS_STOPS AnalysisStops.java, void AnalysisStops.fieldReadInCalleeMayCauseFalseNegative(), 3, NULL_DEREFERENCE +AnalysisStops.java, void AnalysisStops.fieldReadInCalleeWithAngelicObjFieldMayCauseFalseNegative(), 3, ANALYSIS_STOPS AnalysisStops.java, void AnalysisStops.fieldReadInCalleeWithAngelicObjFieldMayCauseFalseNegative(), 3, NULL_DEREFERENCE AnalysisStops.java, void AnalysisStops.fieldReadOnUndefinedObjMayCauseFalseNegative(), 3, DIVIDE_BY_ZERO AnalysisStops.java, void AnalysisStops.fieldWriteOnUndefinedObjMayCauseFalseNegative(), 3, DIVIDE_BY_ZERO @@ -13,6 +16,7 @@ AnalysisStops.java, void AnalysisStops.infiniteMaterializationMayCauseFalseNegat AnalysisStops.java, void AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalseNegative(), 3, DIVIDE_BY_ZERO AnalysisStops.java, void AnalysisStops.primitiveFieldOfAngelicObjMayCauseFalseNegative(), 5, DIVIDE_BY_ZERO AnalysisStops.java, void AnalysisStops.recursiveAngelicTypesMayCauseFalseNegative(), 4, DIVIDE_BY_ZERO +AnalysisStops.java, void AnalysisStops.skipFunctionInLoopMayCauseFalseNegative(), 5, ANALYSIS_STOPS AnalysisStops.java, void AnalysisStops.skipFunctionInLoopMayCauseFalseNegative(), 5, NULL_DEREFERENCE AnalysisStops.java, void AnalysisStops.skipPointerDerefMayCauseCalleeFalseNegative(), 2, DIVIDE_BY_ZERO AnalysisStops.java, void AnalysisStops.skipPointerDerefMayCauseInterprocFalseNegative(), 2, DIVIDE_BY_ZERO @@ -21,13 +25,23 @@ AnalysisStops.java, void AnalysisStops.specInferenceMayFailAndCauseFalseNegative AnalysisStops.java, void AnalysisStops.specInferenceMayFailAndCauseFalseNegative(boolean,Iterator), 26, DIVIDE_BY_ZERO AnalysisStops.java, void AnalysisStops.specInferenceMayFailAndCauseFalseNegative(boolean,Iterator), 3, RETURN_VALUE_IGNORED ArrayOutOfBounds.java, int ArrayOutOfBounds.arrayOutOfBounds(), 2, ARRAY_OUT_OF_BOUNDS_L1 +Builtins.java, void Builtins.causeError(Object), 2, ANALYSIS_STOPS Builtins.java, void Builtins.causeError(Object), 2, NULL_DEREFERENCE +Builtins.java, void Builtins.doNotBlockError(Object), 3, ANALYSIS_STOPS Builtins.java, void Builtins.doNotBlockError(Object), 3, NULL_DEREFERENCE +ClassCastExceptions.java, int ClassCastExceptions.classCastExceptionImplementsInterface(), 0, ANALYSIS_STOPS ClassCastExceptions.java, int ClassCastExceptions.classCastExceptionImplementsInterface(), 0, CLASS_CAST_EXCEPTION +ClassCastExceptions.java, void ClassCastExceptions.classCastException(), 2, ANALYSIS_STOPS ClassCastExceptions.java, void ClassCastExceptions.classCastException(), 2, CLASS_CAST_EXCEPTION CloseableAsResourceExample.java, T CloseableAsResourceExample.sourceOfNullWithResourceLeak(), 1, RESOURCE_LEAK +CloseableAsResourceExample.java, void CloseableAsResourceExample.closingWithCloseQuietly(), 7, ANALYSIS_STOPS +CloseableAsResourceExample.java, void CloseableAsResourceExample.closingWithCloseQuietly(), 7, CLASS_CAST_EXCEPTION +CloseableAsResourceExample.java, void CloseableAsResourceExample.failToCloseWithCloseQuietly(), 4, ANALYSIS_STOPS +CloseableAsResourceExample.java, void CloseableAsResourceExample.failToCloseWithCloseQuietly(), 4, CLASS_CAST_EXCEPTION CloseableAsResourceExample.java, void CloseableAsResourceExample.failToCloseWithCloseQuietly(), 5, RESOURCE_LEAK CloseableAsResourceExample.java, void CloseableAsResourceExample.leakFoundWhenIndirectlyImplementingCloseable(), 1, RESOURCE_LEAK +CloseableAsResourceExample.java, void CloseableAsResourceExample.noLeakWithCloseQuietlyAndExceptionOnClose(), 2, ANALYSIS_STOPS +CloseableAsResourceExample.java, void CloseableAsResourceExample.noLeakWithCloseQuietlyAndExceptionOnClose(), 2, CLASS_CAST_EXCEPTION CloseableAsResourceExample.java, void CloseableAsResourceExample.notClosingCloseable(), 1, RESOURCE_LEAK CloseableAsResourceExample.java, void CloseableAsResourceExample.notClosingWrapper(), 2, RESOURCE_LEAK CloseableAsResourceExample.java, void CloseableAsResourceExample.skippedVritualCallDoesNotCloseResourceOnReceiver(), 2, RESOURCE_LEAK @@ -39,53 +53,87 @@ ContextLeaks.java, void ContextLeaks.indirectLeak(), 4, CONTEXT_LEAK ContextLeaks.java, void ContextLeaks.leakAfterInstanceFieldWrite(), 3, CONTEXT_LEAK ContextLeaks.java, void ContextLeaks.nonStaticInnerClassLeak(), 2, CONTEXT_LEAK CursorLeaks.java, int CursorLeaks.completeDownloadNotClosed(DownloadManager), 8, RESOURCE_LEAK +CursorLeaks.java, int CursorLeaks.cursorClosed(SQLiteDatabase), 7, ANALYSIS_STOPS +CursorLeaks.java, int CursorLeaks.cursorClosed(SQLiteDatabase), 7, CLASS_CAST_EXCEPTION CursorLeaks.java, int CursorLeaks.cursorNotClosed(SQLiteDatabase), 4, RESOURCE_LEAK +CursorLeaks.java, int CursorLeaks.getBucketCountClosed(), 13, ANALYSIS_STOPS +CursorLeaks.java, int CursorLeaks.getBucketCountClosed(), 13, CLASS_CAST_EXCEPTION CursorLeaks.java, int CursorLeaks.getBucketCountNotClosed(), 10, RESOURCE_LEAK +CursorLeaks.java, int CursorLeaks.getImageCountHelperClosed(String), 14, ANALYSIS_STOPS +CursorLeaks.java, int CursorLeaks.getImageCountHelperClosed(String), 14, CLASS_CAST_EXCEPTION CursorLeaks.java, int CursorLeaks.getImageCountHelperNotClosed(String), 13, RESOURCE_LEAK +CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderClosed(), 12, ANALYSIS_STOPS +CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderClosed(), 12, CLASS_CAST_EXCEPTION +CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderClosed(), 3, NULL_TEST_AFTER_DEREFERENCE CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderNotClosed(), 11, RESOURCE_LEAK +CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderNotClosed(), 3, NULL_TEST_AFTER_DEREFERENCE +CursorLeaks.java, void CursorLeaks.queryUVMLegacyDbClosed(), 4, ANALYSIS_STOPS +CursorLeaks.java, void CursorLeaks.queryUVMLegacyDbClosed(), 4, CLASS_CAST_EXCEPTION CursorLeaks.java, void CursorLeaks.queryUVMLegacyDbNotClosed(), 4, RESOURCE_LEAK CursorLeaks.java, void CursorLeaks.queryUVMLegacyDbNotClosed(), 4, RETURN_VALUE_IGNORED DivideByZero.java, int DivideByZero.callDivideByZeroInterProc(), 1, DIVIDE_BY_ZERO DivideByZero.java, int DivideByZero.divByZeroLocal(String), 3, DIVIDE_BY_ZERO DivideByZero.java, int DivideByZero.divideByZeroWithStaticField(), 2, DIVIDE_BY_ZERO +DynamicDispatch.java, void DynamicDispatch.dynamicDispatchShouldNotCauseFalseNegativeEasy(), 3, ANALYSIS_STOPS DynamicDispatch.java, void DynamicDispatch.dynamicDispatchShouldNotCauseFalseNegativeEasy(), 3, NULL_DEREFERENCE +DynamicDispatch.java, void DynamicDispatch.interfaceShouldNotCauseFalseNegativeEasy(), 3, ANALYSIS_STOPS DynamicDispatch.java, void DynamicDispatch.interfaceShouldNotCauseFalseNegativeEasy(), 3, NULL_DEREFERENCE +DynamicDispatch.java, void DynamicDispatch.interfaceShouldNotCauseFalseNegativeHard(DynamicDispatch$Interface), 2, ANALYSIS_STOPS DynamicDispatch.java, void DynamicDispatch.interfaceShouldNotCauseFalseNegativeHard(DynamicDispatch$Interface), 2, NULL_DEREFERENCE +FilterInputStreamLeaks.java, void FilterInputStreamLeaks.bufferedInputStreamClosedAfterReset(), 9, NULL_TEST_AFTER_DEREFERENCE FilterInputStreamLeaks.java, void FilterInputStreamLeaks.bufferedInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED FilterInputStreamLeaks.java, void FilterInputStreamLeaks.bufferedInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK FilterInputStreamLeaks.java, void FilterInputStreamLeaks.checkedInputStreamClosedAfterSkip(), 6, RETURN_VALUE_IGNORED +FilterInputStreamLeaks.java, void FilterInputStreamLeaks.checkedInputStreamClosedAfterSkip(), 9, NULL_TEST_AFTER_DEREFERENCE FilterInputStreamLeaks.java, void FilterInputStreamLeaks.checkedInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED FilterInputStreamLeaks.java, void FilterInputStreamLeaks.checkedInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK FilterInputStreamLeaks.java, void FilterInputStreamLeaks.cipherInputStreamClosedAfterRead(), 6, RETURN_VALUE_IGNORED +FilterInputStreamLeaks.java, void FilterInputStreamLeaks.cipherInputStreamClosedAfterRead(), 9, NULL_TEST_AFTER_DEREFERENCE FilterInputStreamLeaks.java, void FilterInputStreamLeaks.cipherInputStreamNotClosedAfterSkip(), 5, RETURN_VALUE_IGNORED FilterInputStreamLeaks.java, void FilterInputStreamLeaks.cipherInputStreamNotClosedAfterSkip(), 7, RESOURCE_LEAK FilterInputStreamLeaks.java, void FilterInputStreamLeaks.dataInputStreamClosedAfterReadBoolean(), 6, RETURN_VALUE_IGNORED +FilterInputStreamLeaks.java, void FilterInputStreamLeaks.dataInputStreamClosedAfterReadBoolean(), 9, NULL_TEST_AFTER_DEREFERENCE FilterInputStreamLeaks.java, void FilterInputStreamLeaks.dataInputStreamNotClosedAfterRead(), 6, RETURN_VALUE_IGNORED FilterInputStreamLeaks.java, void FilterInputStreamLeaks.dataInputStreamNotClosedAfterRead(), 8, RESOURCE_LEAK +FilterInputStreamLeaks.java, void FilterInputStreamLeaks.deflaterInputStreamClosedAfterReset(), 9, NULL_TEST_AFTER_DEREFERENCE FilterInputStreamLeaks.java, void FilterInputStreamLeaks.deflaterInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED FilterInputStreamLeaks.java, void FilterInputStreamLeaks.deflaterInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK FilterInputStreamLeaks.java, void FilterInputStreamLeaks.digestInputStreamClosedAfterRead(), 6, RETURN_VALUE_IGNORED +FilterInputStreamLeaks.java, void FilterInputStreamLeaks.digestInputStreamClosedAfterRead(), 9, NULL_TEST_AFTER_DEREFERENCE FilterInputStreamLeaks.java, void FilterInputStreamLeaks.digestInputStreamNotClosedAfterRead(), 6, RETURN_VALUE_IGNORED FilterInputStreamLeaks.java, void FilterInputStreamLeaks.digestInputStreamNotClosedAfterRead(), 8, RESOURCE_LEAK FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamClosedAfterRead(), 6, RETURN_VALUE_IGNORED +FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamClosedAfterRead(), 9, NULL_TEST_AFTER_DEREFERENCE FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead(), 4, RESOURCE_LEAK FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK FilterInputStreamLeaks.java, void FilterInputStreamLeaks.inflaterInputStreamClosedAfterAvailable(), 6, RETURN_VALUE_IGNORED +FilterInputStreamLeaks.java, void FilterInputStreamLeaks.inflaterInputStreamClosedAfterAvailable(), 9, NULL_TEST_AFTER_DEREFERENCE FilterInputStreamLeaks.java, void FilterInputStreamLeaks.inflaterInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED FilterInputStreamLeaks.java, void FilterInputStreamLeaks.inflaterInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK +FilterInputStreamLeaks.java, void FilterInputStreamLeaks.pushbackInputStreamClosedAfterReset(), 9, NULL_TEST_AFTER_DEREFERENCE FilterInputStreamLeaks.java, void FilterInputStreamLeaks.pushbackInputStreamNotClosedAfterRead(), 5, RETURN_VALUE_IGNORED FilterInputStreamLeaks.java, void FilterInputStreamLeaks.pushbackInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK +FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.bufferedOutputStreamClosedAfterWrite(), 10, NULL_TEST_AFTER_DEREFERENCE FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.bufferedOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK +FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.checkedOutputStreamClosedAfterWrite(), 10, NULL_TEST_AFTER_DEREFERENCE FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.checkedOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK +FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.cipherOutputStreamClosedAfterWrite(), 10, NULL_TEST_AFTER_DEREFERENCE FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.cipherOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK +FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.dataOutputStreamClosedAfterWrite(), 10, NULL_TEST_AFTER_DEREFERENCE FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.dataOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK +FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.deflaterOutputStreamClosedAfterWrite(), 10, NULL_TEST_AFTER_DEREFERENCE FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.deflaterOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK +FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.digestOutputStreamClosedAfterWrite(), 10, NULL_TEST_AFTER_DEREFERENCE FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.digestOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK +FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.filterOutputStreamClosedAfterWrite(), 10, NULL_TEST_AFTER_DEREFERENCE FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.filterOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK +FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.gzipOutputStreamClosedAfterWrite(), 10, NULL_TEST_AFTER_DEREFERENCE FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush(), 4, RESOURCE_LEAK FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush(), 7, RESOURCE_LEAK +FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.inflaterOutputStreamClosedAfterWrite(), 10, NULL_TEST_AFTER_DEREFERENCE FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.inflaterOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK +FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.printStreamClosedAfterWrite(), 10, NULL_TEST_AFTER_DEREFERENCE FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.printStreamNotClosedAfterWrite(), 6, RESOURCE_LEAK GuardedByExample.java, Object GuardedByExample.byRefTrickyBad(), 5, UNSAFE_GUARDED_BY_ACCESS GuardedByExample.java, String GuardedByExample$3.readFromInnerClassBad1(), 2, UNSAFE_GUARDED_BY_ACCESS @@ -110,58 +158,97 @@ HashMapExample.java, void HashMapExample.containsIntegerTwiceThenGetTwice(HashMa HashMapExample.java, void HashMapExample.getTwoIntegersWithOneCheck(Integer,Integer), 10, RETURN_VALUE_IGNORED HashMapExample.java, void HashMapExample.getTwoIntegersWithOneCheck(Integer,Integer), 11, NULL_DEREFERENCE HashMapExample.java, void HashMapExample.getTwoIntegersWithOneCheck(Integer,Integer), 11, RETURN_VALUE_IGNORED +HashMapExample.java, void HashMapExample.getTwoIntegersWithOneCheck(Integer,Integer), 7, Cannot_star HashMapExample.java, void HashMapExample.putIntegerTwiceThenGetTwice(HashMap), 12, RETURN_VALUE_IGNORED HashMapExample.java, void HashMapExample.putIntegerTwiceThenGetTwice(HashMap), 13, RETURN_VALUE_IGNORED HashMapExample.java, void HashMapExample.putIntegerTwiceThenGetTwice(HashMap), 6, RETURN_VALUE_IGNORED HashMapExample.java, void HashMapExample.putIntegerTwiceThenGetTwice(HashMap), 7, RETURN_VALUE_IGNORED +JunitAssertion.java, void JunitAssertion.consistentAssertion(JunitAssertion$A), 1, PRECONDITION_NOT_MET +JunitAssertion.java, void JunitAssertion.inconsistentAssertion(JunitAssertion$A), 2, ANALYSIS_STOPS JunitAssertion.java, void JunitAssertion.inconsistentAssertion(JunitAssertion$A), 2, NULL_DEREFERENCE NullPointerExceptions.java, String NullPointerExceptions.hashmapNPE(HashMap,Object), 1, NULL_DEREFERENCE NullPointerExceptions.java, String NullPointerExceptions.nullTryLock(FileChannel), 2, NULL_DEREFERENCE +NullPointerExceptions.java, String NullPointerExceptions.testSystemGetPropertyArgument(), 1, ANALYSIS_STOPS NullPointerExceptions.java, String NullPointerExceptions.testSystemGetPropertyArgument(), 1, NULL_DEREFERENCE +NullPointerExceptions.java, String NullPointerExceptions.tryLockThrows(FileChannel), 6, ANALYSIS_STOPS NullPointerExceptions.java, String NullPointerExceptions.tryLockThrows(FileChannel), 6, NULL_DEREFERENCE NullPointerExceptions.java, int NullPointerExceptions.NPEvalueOfFromHashmapBad(HashMap,int), 1, NULL_DEREFERENCE +NullPointerExceptions.java, int NullPointerExceptions.cursorQueryShouldNotReturnNull(SQLiteDatabase), 6, ANALYSIS_STOPS +NullPointerExceptions.java, int NullPointerExceptions.cursorQueryShouldNotReturnNull(SQLiteDatabase), 6, CLASS_CAST_EXCEPTION NullPointerExceptions.java, int NullPointerExceptions.nullListFiles(String), 3, NULL_DEREFERENCE +NullPointerExceptions.java, int NullPointerExceptions.nullPointerException(), 2, ANALYSIS_STOPS NullPointerExceptions.java, int NullPointerExceptions.nullPointerException(), 2, NULL_DEREFERENCE +NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionInterProc(), 2, ANALYSIS_STOPS NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionInterProc(), 2, NULL_DEREFERENCE +NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C), 2, ANALYSIS_STOPS NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C), 2, NULL_DEREFERENCE +NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithArray(), 3, ANALYSIS_STOPS NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithArray(), 3, NULL_DEREFERENCE +NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean), 5, ANALYSIS_STOPS NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean), 5, NULL_DEREFERENCE +NullPointerExceptions.java, int NullPointerExceptions.preconditionCheckStateTest(NullPointerExceptions$D), 1, PRECONDITION_NOT_MET +NullPointerExceptions.java, void NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars(), 2, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars(), 2, NULL_DEREFERENCE NullPointerExceptions.java, void NullPointerExceptions.badCheckShouldCauseNPE(), 1, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.cursorFromContentResolverNPE(String), 9, ANALYSIS_STOPS +NullPointerExceptions.java, void NullPointerExceptions.cursorFromContentResolverNPE(String), 9, CLASS_CAST_EXCEPTION NullPointerExceptions.java, void NullPointerExceptions.cursorFromContentResolverNPE(String), 9, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.derefNull(), 2, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.derefNull(), 2, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.derefNullableGetter(), 2, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.derefNullableGetter(), 2, NULL_DEREFERENCE NullPointerExceptions.java, void NullPointerExceptions.derefNullableRet(boolean), 2, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.derefUndefNullableRet(), 2, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.derefUndefNullableRet(), 2, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.derefUndefNullableRetWrapper(), 1, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.derefUndefNullableRetWrapper(), 1, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L), 2, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L), 2, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock1(Lock), 4, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock1(Lock), 4, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock2(Lock), 6, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock2(Lock), 6, NULL_DEREFERENCE NullPointerExceptions.java, void NullPointerExceptions.noNullPointerExceptionAfterSkipFunction(), 4, RETURN_VALUE_IGNORED +NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionArrayLength(), 2, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionArrayLength(), 2, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod(), 2, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod(), 2, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFailingFileOutputStreamConstructor(), 7, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFailingFileOutputStreamConstructor(), 7, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFaillingResourceConstructor(), 6, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFaillingResourceConstructor(), 6, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionInArrayLengthLoop(java.lang.Object[]), 3, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionInArrayLengthLoop(java.lang.Object[]), 3, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionUnlessFrameFails(), 4, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionUnlessFrameFails(), 4, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullArrayParameter(), 1, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullArrayParameter(), 1, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullObjectParameter(), 1, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullObjectParameter(), 1, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.nullableFieldNPE(), 1, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.nullableFieldNPE(), 1, NULL_DEREFERENCE NullPointerExceptions.java, void NullPointerExceptions.nullableNonNullStringAfterTextUtilsIsEmptyCheckShouldNotCauseNPE(String), 2, RETURN_VALUE_IGNORED +NullPointerExceptions.java, void NullPointerExceptions.nullableParamNPE(Object), 1, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.nullableParamNPE(Object), 1, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.optionalNPE(Optional), 1, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.optionalNPE(Optional), 1, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.someNPEAfterResourceLeak(), 2, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.someNPEAfterResourceLeak(), 2, NULL_DEREFERENCE NullPointerExceptions.java, void NullPointerExceptions.stringConstantEqualsFalseNotNPE_FP(), 10, NULL_DEREFERENCE +NullPointerExceptions.java, void NullPointerExceptions.stringVarEqualsFalseNPE(), 5, ANALYSIS_STOPS NullPointerExceptions.java, void NullPointerExceptions.stringVarEqualsFalseNPE(), 5, NULL_DEREFERENCE NullPointerExceptions.java, void NullPointerExceptions.testSystemGetPropertyReturn(), 2, NULL_DEREFERENCE NullPointerExceptions.java, void NullPointerExceptions.testSystemGetPropertyReturn(), 2, RETURN_VALUE_IGNORED ReaderLeaks.java, void ReaderLeaks.bufferedReaderClosed(), 4, RETURN_VALUE_IGNORED +ReaderLeaks.java, void ReaderLeaks.bufferedReaderClosed(), 7, NULL_TEST_AFTER_DEREFERENCE ReaderLeaks.java, void ReaderLeaks.bufferedReaderNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED ReaderLeaks.java, void ReaderLeaks.bufferedReaderNotClosedAfterRead(), 6, RESOURCE_LEAK ReaderLeaks.java, void ReaderLeaks.fileReaderClosed(), 4, RETURN_VALUE_IGNORED +ReaderLeaks.java, void ReaderLeaks.fileReaderClosed(), 7, NULL_TEST_AFTER_DEREFERENCE ReaderLeaks.java, void ReaderLeaks.fileReaderNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED ReaderLeaks.java, void ReaderLeaks.fileReaderNotClosedAfterRead(), 6, RESOURCE_LEAK ReaderLeaks.java, void ReaderLeaks.inputStreamReaderClosed(), 4, RETURN_VALUE_IGNORED +ReaderLeaks.java, void ReaderLeaks.inputStreamReaderClosed(), 7, NULL_TEST_AFTER_DEREFERENCE ReaderLeaks.java, void ReaderLeaks.inputStreamReaderNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED ReaderLeaks.java, void ReaderLeaks.inputStreamReaderNotClosedAfterRead(), 6, RESOURCE_LEAK ReaderLeaks.java, void ReaderLeaks.pipedReaderClosed(PipedWriter), 5, RETURN_VALUE_IGNORED @@ -172,23 +259,31 @@ ReaderLeaks.java, void ReaderLeaks.pipedReaderNotClosedAfterConnect(PipedWriter) ReaderLeaks.java, void ReaderLeaks.pipedReaderNotClosedAfterConstructedWithWriter(), 6, RETURN_VALUE_IGNORED ReaderLeaks.java, void ReaderLeaks.pipedReaderNotClosedAfterConstructedWithWriter(), 8, RESOURCE_LEAK ReaderLeaks.java, void ReaderLeaks.pushbackReaderClosed(), 4, RETURN_VALUE_IGNORED +ReaderLeaks.java, void ReaderLeaks.pushbackReaderClosed(), 7, NULL_TEST_AFTER_DEREFERENCE ReaderLeaks.java, void ReaderLeaks.pushbackReaderNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED ReaderLeaks.java, void ReaderLeaks.pushbackReaderNotClosedAfterRead(), 6, RESOURCE_LEAK ReaderLeaks.java, void ReaderLeaks.readerClosed(), 4, RETURN_VALUE_IGNORED +ReaderLeaks.java, void ReaderLeaks.readerClosed(), 8, NULL_TEST_AFTER_DEREFERENCE ReaderLeaks.java, void ReaderLeaks.readerNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED ReaderLeaks.java, void ReaderLeaks.readerNotClosedAfterRead(), 6, RESOURCE_LEAK +ResourceLeaks.java, InputStreamReader ResourceLeaks.withCharset(URLConnection), 9, NULL_TEST_AFTER_DEREFERENCE ResourceLeaks.java, String ResourceLeaks.readInstallationFileBad(File), 6, RESOURCE_LEAK ResourceLeaks.java, boolean ResourceLeaks.jarFileNotClosed(), 3, RESOURCE_LEAK ResourceLeaks.java, int ResourceLeaks.fileOutputStreamTwoLeaks1(boolean), 3, RESOURCE_LEAK ResourceLeaks.java, int ResourceLeaks.fileOutputStreamTwoLeaks1(boolean), 6, RESOURCE_LEAK ResourceLeaks.java, int ResourceLeaks.readConfigNotCloseStream(String), 5, RESOURCE_LEAK +ResourceLeaks.java, void ResourceLeaks.NoResourceLeakWarningAfterCheckState(File,int), 2, PRECONDITION_NOT_MET ResourceLeaks.java, void ResourceLeaks.activityObtainTypedArrayAndLeak(Activity), 2, RESOURCE_LEAK +ResourceLeaks.java, void ResourceLeaks.closeWithCloseablesNestedAlloc(), 5, ANALYSIS_STOPS +ResourceLeaks.java, void ResourceLeaks.closeWithCloseablesNestedAlloc(), 5, CLASS_CAST_EXCEPTION ResourceLeaks.java, void ResourceLeaks.closedQuietlyWithCloseables(), 3, RETURN_VALUE_IGNORED ResourceLeaks.java, void ResourceLeaks.closedWithCloseables(), 3, RETURN_VALUE_IGNORED ResourceLeaks.java, void ResourceLeaks.contextObtainTypedArrayAndLeak(Context), 2, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 11, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 11, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 4, RETURN_VALUE_IGNORED +ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 6, NULL_TEST_AFTER_DEREFERENCE +ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 8, NULL_TEST_AFTER_DEREFERENCE ResourceLeaks.java, void ResourceLeaks.deflaterLeak(), 1, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.fileInputStreamClosed(), 4, RETURN_VALUE_IGNORED ResourceLeaks.java, void ResourceLeaks.fileInputStreamNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED @@ -206,17 +301,21 @@ ResourceLeaks.java, void ResourceLeaks.nestedBad2(), 1, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.nestedBadJarInputStream(File), 1, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.nestedBadJarOutputStream(), 1, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosed(), 5, RETURN_VALUE_IGNORED +ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosed(), 8, NULL_TEST_AFTER_DEREFERENCE ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosed2(), 5, RETURN_VALUE_IGNORED ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosedNestedBad(), 3, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosedNestedBad(), 4, RETURN_VALUE_IGNORED +ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosedNestedBad(), 7, NULL_TEST_AFTER_DEREFERENCE ResourceLeaks.java, void ResourceLeaks.objectInputStreamNotClosedAfterRead(), 3, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.objectInputStreamNotClosedAfterRead(), 4, RETURN_VALUE_IGNORED ResourceLeaks.java, void ResourceLeaks.objectInputStreamNotClosedAfterRead(), 6, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.objectOutputStreamClosedNestedBad(), 3, RESOURCE_LEAK +ResourceLeaks.java, void ResourceLeaks.objectOutputStreamClosedNestedBad(), 7, NULL_TEST_AFTER_DEREFERENCE ResourceLeaks.java, void ResourceLeaks.objectOutputStreamNotClosedAfterWrite(), 4, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.objectOutputStreamNotClosedAfterWrite(), 7, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.openHttpURLConnectionNotDisconnected(), 7, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.openHttpsURLConnectionNotDisconnected(), 3, RESOURCE_LEAK +ResourceLeaks.java, void ResourceLeaks.parseFromInputStreamAndLeak(JsonFactory), 10, NULL_TEST_AFTER_DEREFERENCE ResourceLeaks.java, void ResourceLeaks.parseFromInputStreamAndLeak(JsonFactory), 5, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.pipedInputStreamClosed(PipedOutputStream), 4, RETURN_VALUE_IGNORED ResourceLeaks.java, void ResourceLeaks.pipedInputStreamNotClosedAfterRead(PipedOutputStream), 4, RETURN_VALUE_IGNORED @@ -229,6 +328,8 @@ ResourceLeaks.java, void ResourceLeaks.themeObtainTypedArrayAndLeak(Resources$Th ResourceLeaks.java, void ResourceLeaks.twoResources(), 11, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.twoResourcesRandomAccessFile(), 10, RESOURCE_LEAK ResourceLeaks.java, void ResourceLeaks.twoResourcesServerSocket(), 10, RESOURCE_LEAK +ResourceLeaks.java, void ResourceLeaks.twoResourcesServerSocket(), 7, NULL_TEST_AFTER_DEREFERENCE +ResourceLeaks.java, void ResourceLeaks.twoResourcesServerSocket(), 8, NULL_TEST_AFTER_DEREFERENCE ResourceLeaks.java, void ResourceLeaks.zipFileLeakExceptionalBranch(), 5, RESOURCE_LEAK ReturnValueIgnored.java, void ReturnValueIgnored.returnValueIgnored(), 1, RETURN_VALUE_IGNORED TaintExample.java, InputStream TaintExample.socketIgnoreExceptionNoVerify(SSLSocketFactory), 9, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION @@ -257,10 +358,15 @@ TaintExample.java, void TaintExample.testPrivacySourceAnnot(), 1, TAINTED_VALUE_ TaintExample.java, void TaintExample.testPrivacySourceFieldAnnotPropagation(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION TaintExample.java, void TaintExample.testPrivacySourceInstanceFieldAnnot(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION TaintExample.java, void TaintExample.testPrivacySourceStaticFieldAnnot(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION +WriterLeaks.java, void WriterLeaks.bufferedWriterClosed(), 8, NULL_TEST_AFTER_DEREFERENCE WriterLeaks.java, void WriterLeaks.bufferedWriterNotClosedAfterWrite(), 7, RESOURCE_LEAK +WriterLeaks.java, void WriterLeaks.fileWriterClosed(), 7, NULL_TEST_AFTER_DEREFERENCE WriterLeaks.java, void WriterLeaks.fileWriterNotClosedAfterWrite(), 6, RESOURCE_LEAK +WriterLeaks.java, void WriterLeaks.outputStreamWriterClosed(), 7, NULL_TEST_AFTER_DEREFERENCE WriterLeaks.java, void WriterLeaks.outputStreamWriterNotClosedAfterWrite(), 6, RESOURCE_LEAK WriterLeaks.java, void WriterLeaks.pipedWriterNotClosedAfterConnect(PipedReader), 7, RESOURCE_LEAK WriterLeaks.java, void WriterLeaks.pipedWriterNotClosedAfterConstructedWithReader(), 8, RESOURCE_LEAK +WriterLeaks.java, void WriterLeaks.printWriterClosed(), 7, NULL_TEST_AFTER_DEREFERENCE WriterLeaks.java, void WriterLeaks.printWriterNotClosedAfterAppend(), 4, RESOURCE_LEAK +WriterLeaks.java, void WriterLeaks.writerClosed(), 7, NULL_TEST_AFTER_DEREFERENCE WriterLeaks.java, void WriterLeaks.writerNotClosedAfterWrite(), 6, RESOURCE_LEAK diff --git a/infer/tests/codetoanalyze/java/java.make b/infer/tests/codetoanalyze/java/java.make index e04f2177b..d3ce77b30 100644 --- a/infer/tests/codetoanalyze/java/java.make +++ b/infer/tests/codetoanalyze/java/java.make @@ -24,10 +24,9 @@ infer-out/report.json: $(INFER_BIN) $(JAVA_SOURCE_FILES) $(call silent_on_success,\ $(INFER_BIN) $(INFER_OPTIONS) -a $(ANALYZER) -- javac -cp $(CLASSPATH) $(JAVA_SOURCE_FILES)) -issues.exp.test: $(INFERPRINT_BIN) infer-out/report.json - $(INFERPRINT_BIN) -q -a $(ANALYZER) $(INFERPRINT_OPTIONS) issues.exp.test - LC_ALL=C sort -t: -k1,1 -k2n,2 -o issues.exp.test issues.exp.test - +issues.exp.test: infer-out/report.json $(INFERPRINT_BIN) + $(INFERPRINT_BIN) -q -a $(ANALYZER) $(INFERPRINT_OPTIONS) $@ --from-json-report $< + LC_ALL=C sort -t: -k1,1 -k2n,2 -o $@ $@ default: compile diff --git a/infer/tests/codetoanalyze/java/quandary/Makefile b/infer/tests/codetoanalyze/java/quandary/Makefile index 965753976..8e58d3cce 100644 --- a/infer/tests/codetoanalyze/java/quandary/Makefile +++ b/infer/tests/codetoanalyze/java/quandary/Makefile @@ -9,7 +9,7 @@ JAVA_TEST_DIR = .. include $(JAVA_TEST_DIR)/java.make ANALYZER = quandary - +INFER_OPTIONS = --no-filtering --debug-exceptions INFERPRINT_OPTIONS = --issues-txt JAVA_SOURCE_FILES = $(wildcard *.java) diff --git a/infer/tests/codetoanalyze/java/tracing/Makefile b/infer/tests/codetoanalyze/java/tracing/Makefile index e77ebb6c6..49a6cc1a1 100644 --- a/infer/tests/codetoanalyze/java/tracing/Makefile +++ b/infer/tests/codetoanalyze/java/tracing/Makefile @@ -9,5 +9,6 @@ JAVA_TEST_DIR = .. include $(JAVA_TEST_DIR)/java.make ANALYZER = tracing +INFER_OPTIONS = --no-filtering --debug-exceptions JAVA_SOURCE_FILES = $(wildcard *.java) diff --git a/infer/tests/codetoanalyze/java/tracing/issues.exp b/infer/tests/codetoanalyze/java/tracing/issues.exp index d2f2103fe..dce82ea1e 100644 --- a/infer/tests/codetoanalyze/java/tracing/issues.exp +++ b/infer/tests/codetoanalyze/java/tracing/issues.exp @@ -21,6 +21,7 @@ NullPointerExceptionExample.java, void NullPointerExceptionExample.callDeref(T2, NullPointerExceptionExample.java, void NullPointerExceptionExample.callLeadToNpe(), 2, java.lang.NullPointerException NullPointerExceptionExample.java, void NullPointerExceptionExample.npeOnBothBranches(int), 6, java.lang.NullPointerException NullPointerExceptionExample.java, void NullPointerExceptionExample.npeOnBothBranches(int), 6, java.lang.NullPointerException +NullPointerExceptions.java, String NullPointerExceptions.testSystemGetPropertyArgument(), 1, ANALYSIS_STOPS NullPointerExceptions.java, String NullPointerExceptions.testSystemGetPropertyArgument(), 1, NULL_DEREFERENCE NullPointerExceptions.java, int NullPointerExceptions.nullListFiles(String), 3, java.lang.NullPointerException NullPointerExceptions.java, int NullPointerExceptions.nullPointerException(), 2, java.lang.NullPointerException @@ -29,6 +30,7 @@ NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithAC NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C), 2, java.lang.NullPointerException NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithArray(), 3, java.lang.NullPointerException NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean), 5, java.lang.NullPointerException +NullPointerExceptions.java, int NullPointerExceptions.preconditionCheckStateTest(NullPointerExceptions$D), 1, PRECONDITION_NOT_MET NullPointerExceptions.java, void NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars(), 3, java.lang.NullPointerException NullPointerExceptions.java, void NullPointerExceptions.badCheckShouldCauseNPE(), 2, java.lang.NullPointerException NullPointerExceptions.java, void NullPointerExceptions.derefNonThisGetterAfterCheckShouldNotCauseNPE(), 5, java.lang.NullPointerException diff --git a/infer/tests/codetoanalyze/objc/errors/Makefile b/infer/tests/codetoanalyze/objc/errors/Makefile index ac9e345fb..7a25bbc7b 100644 --- a/infer/tests/codetoanalyze/objc/errors/Makefile +++ b/infer/tests/codetoanalyze/objc/errors/Makefile @@ -18,7 +18,7 @@ CLANG_OPTIONS = -x objective-c \ -mios-simulator-version-min=8.2 --target=x86_64-apple-darwin14 -c \ CLEAN_EXTRA = infer-out-arc infer-out-all -INFER_OPTIONS = --cxx --check-duplicate-symbols +INFER_OPTIONS = --cxx --check-duplicate-symbols --no-filtering --debug-exceptions SOURCES_DEFAULT = \ field_superclass/B.m \ @@ -96,17 +96,15 @@ SOURCES_ARC = \ subtyping/KindOfClassExample.m \ variadic_methods/premature_nil_termination.m \ -SOURCES = $(SOURCES_DEFAULT) $(SOURCES_BUCKET_ALL) $(SOURCES_ARC) - OBJECTS_ARC = $(foreach source,$(SOURCES_ARC),$(basename $(source)).o) OBJECTS_BUCKET_ALL = $(foreach source,$(SOURCES_BUCKET_ALL),$(basename $(source)).o) OBJECTS_DEFAULT = $(foreach source,$(SOURCES_DEFAULT),$(basename $(source)).o) $(OBJECTS_ARC): $(SOURCES_ARC) - clang $(CLANG_OPTIONS) -fobjc-arc $< -o $@ + clang $(CLANG_OPTIONS) -fobjc-arc $* $(OBJECTS_BASE) $(OBJECTS_BUCKETS_ALL): $(SOURCES_BASE) $(SOURCES_BUCKET_ALL) - clang $(CLANG_OPTIONS) $< -o $@ + clang $(CLANG_OPTIONS) $* infer-out-all/report.json: $(INFER_BIN) $(SOURCES_BUCKET_ALL) $(call silent_on_success,\ @@ -120,12 +118,21 @@ infer-out-arc/report.json: $(INFER_BIN) $(SOURCES_ARC) clang $(CLANG_OPTIONS) -fobjc-arc $(SOURCES_ARC) 2>duplicates.txt) grep "DUPLICATE_SYMBOLS" duplicates.txt; test $$? -ne 0 -infer-out-default/report.json: $(INFER_BIN) $(SOURCES_DEFAULT) +infer-out/report.json: $(INFER_BIN) $(SOURCES_DEFAULT) $(call silent_on_success,\ - $(INFER_BIN) -a $(ANALYZER) $(INFER_OPTIONS) --ml-buckets cf -o infer-out-default -- \ + $(INFER_BIN) -a $(ANALYZER) $(INFER_OPTIONS) --ml-buckets cf -o infer-out -- \ clang $(CLANG_OPTIONS) $(SOURCES_DEFAULT) 2>duplicates.txt) grep "DUPLICATE_SYMBOLS" duplicates.txt; test $$? -ne 0 -infer-out/report.json: infer-out-all/report.json infer-out-arc/report.json infer-out-default/report.json - $(MKDIR_P) infer-out/specs - cp infer-out-{all,arc,default}/specs/* infer-out/specs +issues.exp.test: infer-out-all/report.json infer-out-arc/report.json infer-out/report.json + $(INFERPRINT_BIN) -q -a $(ANALYZER) $(INFERPRINT_OPTIONS) $@.all \ + --from-json-report infer-out-all/report.json + $(INFERPRINT_BIN) -q -a $(ANALYZER) $(INFERPRINT_OPTIONS) $@.arc \ + --from-json-report infer-out-arc/report.json + $(INFERPRINT_BIN) -q -a $(ANALYZER) $(INFERPRINT_OPTIONS) $@.default \ + --from-json-report infer-out/report.json + LC_ALL=C sort -t, -k1,1 -k2,2 -k3n,3 -o $@ $@.all $@.arc $@.default + +clean: + $(REMOVE_DIR) infer-out-all infer-out-arc + $(REMOVE) issues.exp.test.all issues.exp.test.arc issues.exp.test.default diff --git a/infer/tests/codetoanalyze/objc/errors/issues.exp b/infer/tests/codetoanalyze/objc/errors/issues.exp index a1132408d..c63433b4b 100644 --- a/infer/tests/codetoanalyze/objc/errors/issues.exp +++ b/infer/tests/codetoanalyze/objc/errors/issues.exp @@ -1,3 +1,4 @@ +field_superclass/SubtypingExample.m, Employee_initWithName:andAge:andEducation:, 3, NULL_TEST_AFTER_DEREFERENCE field_superclass/SubtypingExample.m, Employee_initWithName:andAge:andEducation:, 6, DIVIDE_BY_ZERO field_superclass/SubtypingExample.m, subtyping_test, 0, DIVIDE_BY_ZERO field_superclass/field.c, field_superclass_main, 3, RETAIN_CYCLE @@ -7,58 +8,110 @@ initialization/struct_initlistexpr.c, field_set_correctly, 2, DIVIDE_BY_ZERO initialization/struct_initlistexpr.c, implicit_expr_set_correctly, 3, DIVIDE_BY_ZERO initialization/struct_initlistexpr.c, point_coords_set_correctly, 2, DIVIDE_BY_ZERO memory_leaks_benchmark/CADisplayLinkRetainCycle.m, testCycle, 3, RETAIN_CYCLE +memory_leaks_benchmark/FBViewExample.m, FBV_main, 2, ANALYSIS_STOPS +memory_leaks_benchmark/FBViewExample.m, FBV_main, 2, PRECONDITION_NOT_MET memory_leaks_benchmark/NSStringInitWithBytesNoCopyExample.m, StringInitA_macForIV:, 2, MEMORY_LEAK +memory_leaks_benchmark/NSStringInitWithBytesNoCopyExample.m, createURLQueryStringBodyEscaping, 6, ANALYSIS_STOPS +memory_leaks_benchmark/NSStringInitWithBytesNoCopyExample.m, createURLQueryStringBodyEscaping, 6, PRECONDITION_NOT_MET +memory_leaks_benchmark/NSStringInitWithBytesNoCopyExample.m, createURLQueryStringBodyEscaping, 11, UNINITIALIZED_VALUE memory_leaks_benchmark/RetainCycleStaticVar.m, RetainCSVycleStaticVar, 2, RETAIN_CYCLE memory_leaks_benchmark/RetainReleaseExampleBucketing.m, RetainReleaseTest, 0, RETURN_VALUE_IGNORED memory_leaks_benchmark/RetainReleaseExampleBucketingArc.m, RetainReleaseArcTest, 0, RETURN_VALUE_IGNORED memory_leaks_benchmark/retain_cycle.m, strongcycle, 6, RETAIN_CYCLE memory_leaks_benchmark/retain_cycle2.m, strongcycle2, 4, RETAIN_CYCLE +npe/Fraction.m, test_virtual_call, 7, ANALYSIS_STOPS npe/Fraction.m, test_virtual_call, 7, NULL_DEREFERENCE +npe/NPD_core_foundation.m, NullDeref_createCloseCrossGlyphNoLeak:, 5, ANALYSIS_STOPS +npe/NPD_core_foundation.m, NullDeref_createCloseCrossGlyphNoLeak:, 5, Assert_failure +npe/NPD_core_foundation.m, NullDeref_layoutSubviews, 4, ANALYSIS_STOPS +npe/NPD_core_foundation.m, NullDeref_layoutSubviews, 4, Assert_failure +npe/NPD_core_foundation.m, NullDeref_measureFrameSizeForTextNoLeak, 4, ANALYSIS_STOPS +npe/NPD_core_foundation.m, NullDeref_measureFrameSizeForTextNoLeak, 4, Assert_failure +npe/Npe_with_equal_names.m, EqualNamesTest, 3, ANALYSIS_STOPS npe/Npe_with_equal_names.m, EqualNamesTest, 3, NULL_DEREFERENCE +npe/Npe_with_equal_names.m, EqualNamesTest2, 2, UNINITIALIZED_VALUE +npe/UpdateDict.m, add_nil_in_dict, 10, ANALYSIS_STOPS npe/UpdateDict.m, add_nil_in_dict, 10, NULL_DEREFERENCE +npe/UpdateDict.m, add_nil_to_array, 4, ANALYSIS_STOPS npe/UpdateDict.m, add_nil_to_array, 4, NULL_DEREFERENCE +npe/UpdateDict.m, insert_nil_in_array, 4, ANALYSIS_STOPS npe/UpdateDict.m, insert_nil_in_array, 4, NULL_DEREFERENCE +npe/UpdateDict.m, nullable_NSDictionary_objectForKey, 4, ANALYSIS_STOPS npe/UpdateDict.m, nullable_NSDictionary_objectForKey, 4, NULL_DEREFERENCE +npe/UpdateDict.m, nullable_NSDictionary_objectForKeyedSubscript, 5, ANALYSIS_STOPS npe/UpdateDict.m, nullable_NSDictionary_objectForKeyedSubscript, 5, NULL_DEREFERENCE +npe/UpdateDict.m, nullable_NSMapTable_objectForKey, 4, ANALYSIS_STOPS npe/UpdateDict.m, nullable_NSMapTable_objectForKey, 4, NULL_DEREFERENCE +npe/UpdateDict.m, update_array_with_null, 5, ANALYSIS_STOPS npe/UpdateDict.m, update_array_with_null, 5, NULL_DEREFERENCE +npe/UpdateDict.m, update_dict_with_key_null, 10, ANALYSIS_STOPS npe/UpdateDict.m, update_dict_with_key_null, 10, NULL_DEREFERENCE +npe/WeakCapturedVarsNPE.m, __objc_anonymous_block_WeakCapturedA_strongSelfNoCheck______2, 2, ANALYSIS_STOPS npe/WeakCapturedVarsNPE.m, __objc_anonymous_block_WeakCapturedA_strongSelfNoCheck______2, 2, NULL_DEREFERENCE +npe/block.m, BlockA_doSomethingThenCallback:, 2, ANALYSIS_STOPS npe/block.m, BlockA_doSomethingThenCallback:, 2, PARAMETER_NOT_NULL_CHECKED +npe/block.m, BlockA_foo, 5, ANALYSIS_STOPS npe/block.m, BlockA_foo, 5, NULL_DEREFERENCE +npe/block.m, BlockA_foo3:, 3, ANALYSIS_STOPS npe/block.m, BlockA_foo3:, 3, NULL_DEREFERENCE +npe/block.m, BlockA_foo4:, 6, ANALYSIS_STOPS npe/block.m, BlockA_foo4:, 6, NULL_DEREFERENCE +npe/block.m, BlockA_foo7, 2, ANALYSIS_STOPS npe/block.m, BlockA_foo7, 2, IVAR_NOT_NULL_CHECKED npe/blockenum.m, BlockEnumA_allResultsList:, 1, MEMORY_LEAK npe/blockenum.m, BlockEnumA_foo1:, 2, MEMORY_LEAK +npe/nil_in_array_literal.m, Arr_nilInArrayLiteral0, 4, ANALYSIS_STOPS npe/nil_in_array_literal.m, Arr_nilInArrayLiteral0, 4, NULL_DEREFERENCE +npe/nil_in_array_literal.m, Arr_nilInArrayLiteral1, 4, ANALYSIS_STOPS npe/nil_in_array_literal.m, Arr_nilInArrayLiteral1, 4, NULL_DEREFERENCE +npe/nil_in_array_literal.m, Arr_nilInArrayLiteral2, 4, ANALYSIS_STOPS npe/nil_in_array_literal.m, Arr_nilInArrayLiteral2, 4, NULL_DEREFERENCE +npe/nil_in_array_literal.m, Arr_nilInArrayLiteral3, 4, ANALYSIS_STOPS npe/nil_in_array_literal.m, Arr_nilInArrayLiteral3, 4, NULL_DEREFERENCE +npe/nil_in_array_literal.m, Arr_nilInArrayWithObject, 4, ANALYSIS_STOPS npe/nil_in_array_literal.m, Arr_nilInArrayWithObject, 4, NULL_DEREFERENCE +npe/nil_in_array_literal.m, Arr_noProblem, 3, UNINITIALIZED_VALUE +npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralKey0, 4, ANALYSIS_STOPS npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralKey0, 4, NULL_DEREFERENCE +npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralKey1, 4, ANALYSIS_STOPS npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralKey1, 4, NULL_DEREFERENCE +npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralKey2, 4, ANALYSIS_STOPS npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralKey2, 4, NULL_DEREFERENCE +npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralKey3, 4, ANALYSIS_STOPS npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralKey3, 4, NULL_DEREFERENCE +npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralValue0, 4, ANALYSIS_STOPS npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralValue0, 4, NULL_DEREFERENCE +npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralValue1, 4, ANALYSIS_STOPS npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralValue1, 4, NULL_DEREFERENCE +npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralValue2, 4, ANALYSIS_STOPS npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralValue2, 4, NULL_DEREFERENCE +npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralValue3, 4, ANALYSIS_STOPS npe/nil_in_dictionary_literal.m, ADict_nilInDictionaryLiteralValue3, 4, NULL_DEREFERENCE +npe/nil_in_dictionary_literal.m, ADict_noProblem, 3, UNINITIALIZED_VALUE npe/nil_param.m, NilParamMain, 4, MEMORY_LEAK npe/npe_conditional.m, conditionalNPE, 3, NULL_DEREFERENCE npe/npe_self.m, CSelf_test, 3, NULL_DEREFERENCE +npe/null_returned_by_method.m, NullReturnedByMethodA_test1, 1, ANALYSIS_STOPS npe/null_returned_by_method.m, NullReturnedByMethodA_test1, 1, NULL_DEREFERENCE +npe/nullable.m, derefNullableParamDirect, 0, ANALYSIS_STOPS npe/nullable.m, derefNullableParamDirect, 0, NULL_DEREFERENCE +npe/nullable.m, derefNullableParamIndirect, 2, ANALYSIS_STOPS npe/nullable.m, derefNullableParamIndirect, 2, NULL_DEREFERENCE +npe/nullable.m, parameter_nullable_bug, 5, ANALYSIS_STOPS npe/nullable.m, parameter_nullable_bug, 5, NULL_DEREFERENCE +npe/skip_method_with_nil_object.m, SkipMethodNilA_testBug:, 6, ANALYSIS_STOPS npe/skip_method_with_nil_object.m, SkipMethodNilA_testBug:, 6, PARAMETER_NOT_NULL_CHECKED procdescs/main.c, ProcdescMain, 2, MEMORY_LEAK procdescs/main.c, ProcdescMain, 3, MEMORY_LEAK procdescs/main.c, call_nslog, 1, MEMORY_LEAK procdescs/main.c, call_nslog, 2, MEMORY_LEAK procdescs/main.c, call_nslog, 3, MEMORY_LEAK +property/ExplicitIvarName.m, ExplicitIvarNameA_testDefaultName, 7, ANALYSIS_STOPS property/ExplicitIvarName.m, ExplicitIvarNameA_testDefaultName, 7, NULL_DEREFERENCE +property/ExplicitIvarName.m, ExplicitIvarNameA_testExplicit, 6, ANALYSIS_STOPS property/ExplicitIvarName.m, ExplicitIvarNameA_testExplicit, 6, NULL_DEREFERENCE +property/main.c, property_main, 2, MEMORY_LEAK +property/main.c, property_main, 3, MEMORY_LEAK property/main.c, property_main, 3, MEMORY_LEAK shared/assertions/NSAssert_example.m, NSAssert_addTarget:, 1, MEMORY_LEAK shared/assertions/NSAssert_example.m, NSAssert_initWithRequest:, 1, MEMORY_LEAK @@ -66,21 +119,32 @@ shared/assertions/NSAssert_example.m, test1, 1, MEMORY_LEAK shared/assertions/NSAssert_example.m, test1, 1, MEMORY_LEAK shared/assertions/NSAssert_example.m, test2, 1, MEMORY_LEAK shared/assertions/NSAssert_example.m, test2, 1, MEMORY_LEAK +shared/block/BlockVar.m, BlockVar_blockPostBad, 5, ANALYSIS_STOPS shared/block/BlockVar.m, BlockVar_blockPostBad, 5, NULL_DEREFERENCE +shared/block/BlockVar.m, BlockVar_capturedNullDeref, 5, ANALYSIS_STOPS shared/block/BlockVar.m, BlockVar_capturedNullDeref, 5, NULL_DEREFERENCE +shared/block/BlockVar.m, BlockVar_navigateToURLInBackground, 8, ANALYSIS_STOPS shared/block/BlockVar.m, BlockVar_navigateToURLInBackground, 8, NULL_DEREFERENCE +shared/block/block-it.m, __objc_anonymous_block_MyBlock_array______1, 5, UNINITIALIZED_VALUE +shared/block/block-it.m, __objc_anonymous_block_MyBlock_array_trans______2, 4, UNINITIALIZED_VALUE shared/block/block.m, main1, 31, DIVIDE_BY_ZERO +shared/block/block_no_args.m, My_manager_m, 10, ANALYSIS_STOPS shared/block/block_no_args.m, My_manager_m, 10, NULL_DEREFERENCE shared/block/block_release.m, My_manager_blockReleaseTODO, 5, MEMORY_LEAK shared/block/dispatch.m, DispatchA_dispatch_a_block_variable_from_macro_delivers_initialised_object, 3, DIVIDE_BY_ZERO shared/category_procdesc/main.c, CategoryProcdescMain, 2, MEMORY_LEAK shared/category_procdesc/main.c, CategoryProcdescMain, 3, MEMORY_LEAK +shared/field_superclass/SuperExample.m, ASuper_init, 2, ANALYSIS_STOPS shared/field_superclass/SuperExample.m, ASuper_init, 2, NULL_DEREFERENCE shared/field_superclass/SuperExample.m, super_example_main, 2, MEMORY_LEAK shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_blockCapturedVarLeak, 3, MEMORY_LEAK shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_blockFreeNoLeakTODO, 3, MEMORY_LEAK shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_createCloseCrossGlyph:, 2, MEMORY_LEAK +shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_createCloseCrossGlyphNoLeak:, 5, ANALYSIS_STOPS +shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_createCloseCrossGlyphNoLeak:, 5, Assert_failure shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_measureFrameSizeForText, 1, MEMORY_LEAK +shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_measureFrameSizeForTextNoLeak, 3, ANALYSIS_STOPS +shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_measureFrameSizeForTextNoLeak, 3, Assert_failure shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_regularLeak, 3, MEMORY_LEAK shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_test, 3, MEMORY_LEAK shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_test1:, 1, MEMORY_LEAK @@ -92,6 +156,8 @@ shared/memory_leaks_benchmark/RetainReleaseExample2.m, test5, 2, MEMORY_LEAK shared/memory_leaks_benchmark/RetainReleaseExample2.m, test6, 3, MEMORY_LEAK shared/memory_leaks_benchmark/TollBridgeExample.m, TollBridgeExample_brideRetained, 2, MEMORY_LEAK shared/memory_leaks_benchmark/TollBridgeExample.m, TollBridgeExample_bridge, 2, MEMORY_LEAK +shared/memory_leaks_benchmark/TollBridgeExample.m, bridgeDictionaryNoLeak, 1, UNINITIALIZED_VALUE +shared/npe/Nonnull_attribute_example.m, NonnullC_initWithCoder:and:, 2, UNINITIALIZED_VALUE subtyping/KindOfClassExample.m, shouldThrowDivideByZero1, 2, DIVIDE_BY_ZERO subtyping/KindOfClassExample.m, shouldThrowDivideByZero2, 2, DIVIDE_BY_ZERO subtyping/KindOfClassExample.m, shouldThrowDivideByZero3, 3, DIVIDE_BY_ZERO @@ -100,10 +166,12 @@ taint/sources.m, testNSHTTPCookie2, 5, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION taint/sources.m, testNSHTTPCookie3, 5, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION taint/sources.m, testNSHTTPCookie4, 5, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION taint/viewController.m, ExampleDelegate_application:openURL:sourceApplication:annotation:, 7, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION +variadic_methods/premature_nil_termination.m, PrematureNilTermA_nilInArrayWithObjects, 5, ANALYSIS_STOPS variadic_methods/premature_nil_termination.m, PrematureNilTermA_nilInArrayWithObjects, 5, PREMATURE_NIL_TERMINATION_ARGUMENT warnings/ParameterNotNullableExample.m, FBAudioRecorder_FBAudioInputCallbackChain:, 2, IVAR_NOT_NULL_CHECKED warnings/ParameterNotNullableExample.m, FBAudioRecorder_FBAudioInputCallbackChain:, 2, PARAMETER_NOT_NULL_CHECKED warnings/ParameterNotNullableExample.m, FBAudioRecorder_FBAudioInputCallbackField, 2, IVAR_NOT_NULL_CHECKED warnings/ParameterNotNullableExample.m, FBAudioRecorder_FBAudioInputCallbackSimple:, 2, PARAMETER_NOT_NULL_CHECKED warnings/ParameterNotNullableExample.m, FBAudioRecorder_FBAudioInputCallbackSimpleAliasing:, 3, PARAMETER_NOT_NULL_CHECKED +warnings/ParameterNotNullableExample.m, FBAudioRecorder_test, 3, ANALYSIS_STOPS warnings/ParameterNotNullableExample.m, FBAudioRecorder_test, 3, NULL_DEREFERENCE diff --git a/infer/tests/codetoanalyze/objc/linters/Makefile b/infer/tests/codetoanalyze/objc/linters/Makefile index bd33b56af..785616cc8 100644 --- a/infer/tests/codetoanalyze/objc/linters/Makefile +++ b/infer/tests/codetoanalyze/objc/linters/Makefile @@ -10,6 +10,7 @@ include $(TESTS_DIR)/clang.make ANALYZER = linters CLANG_OPTIONS = -x objective-c -fobjc-arc -c +INFER_OPTIONS = --no-filtering --debug-exceptions SOURCES = \ $(wildcard *.m) \ diff --git a/infer/tests/codetoanalyze/objcpp/linters/Makefile b/infer/tests/codetoanalyze/objcpp/linters/Makefile index 1c89bbe9a..bb9121e77 100644 --- a/infer/tests/codetoanalyze/objcpp/linters/Makefile +++ b/infer/tests/codetoanalyze/objcpp/linters/Makefile @@ -10,6 +10,7 @@ include $(TESTS_DIR)/clang.make ANALYZER = linters CLANG_OPTIONS = -x objective-c++ -std=c++11 -fobjc-arc -c +INFER_OPTIONS = --no-filtering --debug-exceptions SOURCES = \ $(wildcard */*.mm) \