[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
master
Jules Villard 8 years ago committed by Facebook Github Bot
parent 4d43f0e5d8
commit d5e7ee0d82

1
.gitignore vendored

@ -13,6 +13,7 @@
*.rej
*.start
*.exp.test
*.exp.test.*
duplicates.txt
infer/tests/codetoanalyze/java/*/codetoanalyze

@ -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"

@ -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)

@ -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

@ -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)

@ -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) \

@ -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

@ -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 = \

@ -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) \

@ -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<Person>, 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

@ -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 = \

@ -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)

@ -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)

@ -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 \

@ -1 +1,2 @@
BasicHarnessActivity.java, codetoanalyze.java.harness.BasicHarnessActivity.InferGeneratedHarness(), -1, ANALYSIS_STOPS
BasicHarnessActivity.java, codetoanalyze.java.harness.BasicHarnessActivity.InferGeneratedHarness(), -1, NULL_DEREFERENCE

@ -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)

@ -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

@ -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

@ -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)

@ -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)

@ -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

@ -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

@ -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

@ -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) \

@ -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) \

Loading…
Cancel
Save