diff --git a/infer/src/backend/dotty.ml b/infer/src/backend/dotty.ml index cda9c3f7a..1c8d58807 100644 --- a/infer/src/backend/dotty.ml +++ b/infer/src/backend/dotty.ml @@ -1032,14 +1032,15 @@ let write_icfg_dotty_to_file source cfg fname = let print_icfg_dotty source cfg = let fname = - if Config.frontend_tests - then - (DB.source_file_to_abs_path source) ^ ".test.dot" - else - DB.filename_to_string - (DB.Results_dir.path_to_filename - (DB.Results_dir.Abs_source_dir source) - [Config.dotty_output]) in + match Config.icfg_dotty_outfile with + | Some file -> file + | None when Config.frontend_tests = true -> + (DB.source_file_to_abs_path source) ^ ".test.dot" + | None -> + DB.filename_to_string + (DB.Results_dir.path_to_filename + (DB.Results_dir.Abs_source_dir source) + [Config.dotty_output]) in write_icfg_dotty_to_file source cfg fname (********** END of Printing dotty files ***********) diff --git a/infer/src/base/Config.ml b/infer/src/base/Config.ml index 2b543aa41..3d079b013 100644 --- a/infer/src/base/Config.ml +++ b/infer/src/base/Config.ml @@ -936,6 +936,11 @@ and headers = ~exes:CLOpt.[Clang] "Analyze code in header files" +and icfg_dotty_outfile = + CLOpt.mk_path_opt ~long:"icfg-dotty-outfile" ~meta:"path" + "If set, specifies path where .dot file should be written, it overrides the path for all \ + other options that would generate icfg file otherwise" + and infer_cache = CLOpt.mk_path_opt ~deprecated:["infer_cache"; "-infer_cache"] ~long:"infer-cache" ~meta:"dir" "Select a directory to contain the infer cache (Buck and Java only)" @@ -1465,6 +1470,7 @@ and from_json_report = !from_json_report and frontend_debug = !frontend_debug and frontend_stats = !frontend_stats and headers = !headers +and icfg_dotty_outfile = !icfg_dotty_outfile and infer_cache = !infer_cache and iterations = !iterations and java_jar_compiler = !java_jar_compiler diff --git a/infer/src/base/Config.mli b/infer/src/base/Config.mli index ae0714f36..07441a002 100644 --- a/infer/src/base/Config.mli +++ b/infer/src/base/Config.mli @@ -200,6 +200,7 @@ val frontend_debug : bool val frontend_tests : bool val frontend_stats : bool val headers : bool +val icfg_dotty_outfile : string option val infer_cache : string option val is_originator : bool val iterations : int diff --git a/infer/src/base/DB.ml b/infer/src/base/DB.ml index 01886a19e..429d09506 100644 --- a/infer/src/base/DB.ml +++ b/infer/src/base/DB.ml @@ -65,14 +65,18 @@ let rel_path_from_abs_path root fname = (** convert a project root directory and a full path to a rooted source file *) let source_file_from_abs_path fname = + (* IMPORTANT: results of realpath are cached to not ruin performance *) + let fname_real = realpath fname in + let project_root_real = realpath Config.project_root in + let models_dir_real = Config.models_src_dir in if Filename.is_relative fname then (failwithf "ERROR: Path %s is relative, when absolute path was expected .@." fname); - match rel_path_from_abs_path Config.project_root fname with + match rel_path_from_abs_path project_root_real fname_real with | Some path -> RelativeProjectRoot path | None -> ( - match rel_path_from_abs_path Config.models_src_dir fname with + match rel_path_from_abs_path models_dir_real fname_real with | Some path -> RelativeInferModel path | None -> Absolute fname (* fname is absolute already *) ) @@ -131,6 +135,10 @@ let source_file_is_cpp_model file = string_is_prefix Config.relative_cpp_models_dir path | _ -> false +let source_file_is_under_project_root = function + | RelativeProjectRoot _ -> true + | Absolute _ | RelativeInferModel _ -> false + let source_file_exists_cache = Hashtbl.create 256 let source_file_path_exists abs_path = @@ -140,7 +148,6 @@ let source_file_path_exists abs_path = Hashtbl.add source_file_exists_cache abs_path result; result - let source_file_of_header header_file = let abs_path = source_file_to_abs_path header_file in let source_file_exts = ["c"; "cc"; "cpp"; "cxx"; "m"; "mm"] in diff --git a/infer/src/base/DB.mli b/infer/src/base/DB.mli index 6801dae44..b63a086b8 100644 --- a/infer/src/base/DB.mli +++ b/infer/src/base/DB.mli @@ -120,6 +120,9 @@ val source_file_is_infer_model : source_file -> bool (** Returns true if the file is a C++ model *) val source_file_is_cpp_model : source_file -> bool +(** Returns true if the file is in project root *) +val source_file_is_under_project_root : source_file -> bool + (** Return approximate source file corresponding to the parameter if it's header file and file exists. returns None otherwise *) val source_file_of_header : source_file -> source_file option diff --git a/infer/src/clang/cFrontend.ml b/infer/src/clang/cFrontend.ml index 3be9fa5ba..8ae059fef 100644 --- a/infer/src/clang/cFrontend.ml +++ b/infer/src/clang/cFrontend.ml @@ -66,7 +66,8 @@ let do_source_file translation_unit_context ast = if Config.stats_mode || Config.debug_mode || Config.testing_mode - || Config.frontend_tests then + || Config.frontend_tests + || Option.is_some Config.icfg_dotty_outfile then (Dotty.print_icfg_dotty source_file cfg; Cg.save_call_graph_dotty source_file Specs.get_specs call_graph); (* NOTE: nothing should be written to source_dir after this *) diff --git a/infer/src/clang/cLocation.ml b/infer/src/clang/cLocation.ml index fe59f597a..03efcf3a6 100644 --- a/infer/src/clang/cLocation.ml +++ b/infer/src/clang/cLocation.ml @@ -18,26 +18,21 @@ let clang_to_sil_location trans_unit_ctx clang_loc = trans_unit_ctx.CFrontend_config.source_file clang_loc.Clang_ast_t.sl_file in Location.{line; col; file} -let file_in_project file = - (* IMPORTANT: results of realpath are cached to not ruin performance *) - let real_root = realpath Config.project_root in - let real_file = realpath file in - let file_in_project = string_is_prefix real_root real_file in - let paths = Config.skip_translation_headers in +let source_file_in_project source_file = + let file_in_project = DB.source_file_is_under_project_root source_file in + let rel_source_file = DB.source_file_to_string source_file in let file_should_be_skipped = IList.exists - (fun path -> string_is_prefix (Filename.concat real_root path) real_file) - paths in + (fun path -> string_is_prefix path rel_source_file) + Config.skip_translation_headers in file_in_project && not (file_should_be_skipped) let should_do_frontend_check trans_unit_ctx (loc_start, _) = match loc_start.Clang_ast_t.sl_file with | Some file -> - let equal_current_source file = - DB.source_file_equal (DB.source_file_from_abs_path file) - trans_unit_ctx.CFrontend_config.source_file in - equal_current_source file || - (file_in_project file && not Config.testing_mode) + let source_file = (DB.source_file_from_abs_path file) in + DB.source_file_equal source_file trans_unit_ctx.CFrontend_config.source_file || + (source_file_in_project source_file && not Config.testing_mode) | None -> false (** We translate by default the instructions in the current file. In C++ development, we also @@ -59,8 +54,8 @@ let should_translate trans_unit_ctx (loc_start, loc_end) decl_trans_context ~tra which uses same logic to produce both files *) let equal_current_source = DB.source_file_equal trans_unit_ctx.CFrontend_config.source_file in - let file_in_project = map_path_of file_in_project loc_end - || map_path_of file_in_project loc_start in + let file_in_project = map_file_of source_file_in_project loc_end + || map_file_of source_file_in_project loc_start in let translate_on_demand = translate_when_used || file_in_project || Config.models_mode in let file_in_models = map_file_of DB.source_file_is_cpp_model loc_end || map_file_of DB.source_file_is_cpp_model loc_start in diff --git a/infer/tests/build_systems/ant/Makefile b/infer/tests/build_systems/ant/Makefile index 4eca79627..0c705ecdd 100644 --- a/infer/tests/build_systems/ant/Makefile +++ b/infer/tests/build_systems/ant/Makefile @@ -20,7 +20,7 @@ $(OBJECTS): $(SOURCES) infer-out/report.json: $(INFER_BIN) $(SOURCES) $(call silent_on_success,\ - $(INFER_BIN) -a $(ANALYZER) -- ant) + $(INFER_BIN) -a $(ANALYZER) --project-root $(TESTS_DIR) --inferconfig-home . -- ant) clean: ant clean diff --git a/infer/tests/build_systems/ant/issues.exp b/infer/tests/build_systems/ant/issues.exp index a14b9619c..6c83ca26f 100644 --- a/infer/tests/build_systems/ant/issues.exp +++ b/infer/tests/build_systems/ant/issues.exp @@ -1,192 +1,192 @@ -src/infer/AnalysisStops.java, void AnalysisStops.fieldReadInCalleeMayCauseFalseNegative(), 3, NULL_DEREFERENCE, [start of procedure fieldReadInCalleeMayCauseFalseNegative(),start of procedure derefParam(...)] -src/infer/AnalysisStops.java, void AnalysisStops.fieldReadInCalleeWithAngelicObjFieldMayCauseFalseNegative(), 3, NULL_DEREFERENCE, [start of procedure fieldReadInCalleeWithAngelicObjFieldMayCauseFalseNegative(),start of procedure derefParam(...)] -src/infer/AnalysisStops.java, void AnalysisStops.skipFunctionInLoopMayCauseFalseNegative(), 5, NULL_DEREFERENCE, [start of procedure skipFunctionInLoopMayCauseFalseNegative(),Taking true branch,Taking false branch] -src/infer/AutoGenerated.java, void AutoGenerated.npe(), 2, NULL_DEREFERENCE, [start of procedure npe()] -src/infer/Builtins.java, void Builtins.doNotBlockError(Object), 3, NULL_DEREFERENCE, [start of procedure doNotBlockError(...),Taking true branch] -src/infer/CloseableAsResourceExample.java, T CloseableAsResourceExample.sourceOfNullWithResourceLeak(), 1, RESOURCE_LEAK, [start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.()] -src/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.failToCloseWithCloseQuietly(), 5, RESOURCE_LEAK, [start of procedure failToCloseWithCloseQuietly(),start of procedure SomeResource(),return from a call to SomeResource.(),start of procedure doSomething(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] -src/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.leakFoundWhenIndirectlyImplementingCloseable(), 1, RESOURCE_LEAK, [start of procedure leakFoundWhenIndirectlyImplementingCloseable(),start of procedure CloseableAsResourceExample$MyResource(...),return from a call to CloseableAsResourceExample$MyResource.(CloseableAsResourceExample)] -src/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.notClosingCloseable(), 1, RESOURCE_LEAK, [start of procedure notClosingCloseable(),start of procedure SomeResource(),return from a call to SomeResource.()] -src/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.notClosingWrapper(), 2, RESOURCE_LEAK, [start of procedure notClosingWrapper(),start of procedure Resource(),return from a call to Resource.(),start of procedure Sub(...),start of procedure Wrapper(...),return from a call to Wrapper.(Resource),return from a call to Sub.(Resource),start of procedure close(),return from a call to void Resource.close()] -src/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.skippedVritualCallDoesNotCloseResourceOnReceiver(), 2, RESOURCE_LEAK, [start of procedure skippedVritualCallDoesNotCloseResourceOnReceiver(),start of procedure SomeResource(),return from a call to SomeResource.()] -src/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.withException(), 4, RESOURCE_LEAK, [start of procedure withException(),start of procedure SomeResource(),return from a call to SomeResource.(),start of procedure doSomething(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] -src/infer/ContextLeaks.java, ContextLeaks$Singleton ContextLeaks$Singleton.getInstance(Context), 4, CONTEXT_LEAK, [start of procedure getInstance(...),Taking true branch,start of procedure ContextLeaks$Singleton(...),return from a call to ContextLeaks$Singleton.(Context),return from a call to ContextLeaks$Singleton ContextLeaks$Singleton.getInstance(Context)] -src/infer/ContextLeaks.java, ContextLeaks$Singleton ContextLeaks.singletonLeak(), 1, CONTEXT_LEAK, [start of procedure singletonLeak(),start of procedure getInstance(...),Taking true branch,start of procedure ContextLeaks$Singleton(...),return from a call to ContextLeaks$Singleton.(Context),return from a call to ContextLeaks$Singleton ContextLeaks$Singleton.getInstance(Context),return from a call to ContextLeaks$Singleton ContextLeaks.singletonLeak()] -src/infer/ContextLeaks.java, void ContextLeaks.directLeak(), 2, CONTEXT_LEAK, [start of procedure directLeak(),return from a call to void ContextLeaks.directLeak()] -src/infer/ContextLeaks.java, void ContextLeaks.indirectLeak(), 4, CONTEXT_LEAK, [start of procedure indirectLeak(),start of procedure ContextLeaks$Obj(),return from a call to ContextLeaks$Obj.(),return from a call to void ContextLeaks.indirectLeak()] -src/infer/ContextLeaks.java, void ContextLeaks.leakAfterInstanceFieldWrite(), 3, CONTEXT_LEAK, [start of procedure leakAfterInstanceFieldWrite(),return from a call to void ContextLeaks.leakAfterInstanceFieldWrite()] -src/infer/ContextLeaks.java, void ContextLeaks.nonStaticInnerClassLeak(), 2, CONTEXT_LEAK, [start of procedure nonStaticInnerClassLeak(),start of procedure ContextLeaks$NonStaticInner(...),return from a call to ContextLeaks$NonStaticInner.(ContextLeaks),return from a call to void ContextLeaks.nonStaticInnerClassLeak()] -src/infer/CursorLeaks.java, int CursorLeaks.completeDownloadNotClosed(DownloadManager), 8, RESOURCE_LEAK, [start of procedure completeDownloadNotClosed(...),Taking false branch] -src/infer/CursorLeaks.java, int CursorLeaks.cursorNotClosed(SQLiteDatabase), 4, RESOURCE_LEAK, [start of procedure cursorNotClosed(...)] -src/infer/CursorLeaks.java, int CursorLeaks.getBucketCountNotClosed(), 10, RESOURCE_LEAK, [start of procedure getBucketCountNotClosed(),Taking false branch,Taking false branch] -src/infer/CursorLeaks.java, int CursorLeaks.getImageCountHelperNotClosed(String), 13, RESOURCE_LEAK, [start of procedure getImageCountHelperNotClosed(...),Taking true branch] -src/infer/CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderNotClosed(), 11, RESOURCE_LEAK, [start of procedure loadPrefsFromContentProviderNotClosed(),Taking false branch,Taking true branch] -src/infer/CursorLeaks.java, void CursorLeaks.queryUVMLegacyDbNotClosed(), 4, RESOURCE_LEAK, [start of procedure queryUVMLegacyDbNotClosed(),Taking true branch] -src/infer/DynamicDispatch.java, void DynamicDispatch.dynamicDispatchShouldNotCauseFalseNegativeEasy(), 3, NULL_DEREFERENCE, [start of procedure dynamicDispatchShouldNotCauseFalseNegativeEasy(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo()] -src/infer/DynamicDispatch.java, void DynamicDispatch.interfaceShouldNotCauseFalseNegativeEasy(), 3, NULL_DEREFERENCE, [start of procedure interfaceShouldNotCauseFalseNegativeEasy(),start of procedure DynamicDispatch$Impl(),return from a call to DynamicDispatch$Impl.(),start of procedure foo(),return from a call to Object DynamicDispatch$Impl.foo()] -src/infer/DynamicDispatch.java, void DynamicDispatch.interfaceShouldNotCauseFalseNegativeHard(DynamicDispatch$Interface), 2, NULL_DEREFERENCE, [start of procedure interfaceShouldNotCauseFalseNegativeHard(...),start of procedure foo(),return from a call to Object DynamicDispatch$Impl.foo()] -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.bufferedInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure bufferedInputStreamNotClosedAfterRead(),exception java.io.IOException] -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.checkedInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure checkedInputStreamNotClosedAfterRead(),exception java.io.IOException] -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.cipherInputStreamNotClosedAfterSkip(), 7, RESOURCE_LEAK, [start of procedure cipherInputStreamNotClosedAfterSkip(),exception java.io.IOException] -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.dataInputStreamNotClosedAfterRead(), 8, RESOURCE_LEAK, [start of procedure dataInputStreamNotClosedAfterRead(),exception java.io.IOException] -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.deflaterInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure deflaterInputStreamNotClosedAfterRead(),exception java.io.IOException] -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.digestInputStreamNotClosedAfterRead(), 8, RESOURCE_LEAK, [start of procedure digestInputStreamNotClosedAfterRead(),exception java.io.IOException] -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead(), 4, RESOURCE_LEAK, [start of procedure gzipInputStreamNotClosedAfterRead()] -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure gzipInputStreamNotClosedAfterRead(),exception java.io.IOException] -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.inflaterInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure inflaterInputStreamNotClosedAfterRead(),exception java.io.IOException] -src/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.pushbackInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure pushbackInputStreamNotClosedAfterRead(),exception java.io.IOException] -src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.bufferedOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure bufferedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.checkedOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure checkedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.cipherOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure cipherOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.dataOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure dataOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.deflaterOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure deflaterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.digestOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure digestOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.filterOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure filterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush(), 4, RESOURCE_LEAK, [start of procedure gzipOutputStreamNotClosedAfterFlush()] -src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush(), 7, RESOURCE_LEAK, [start of procedure gzipOutputStreamNotClosedAfterFlush(),exception java.io.IOException] -src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.inflaterOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure inflaterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -src/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.printStreamNotClosedAfterWrite(), 6, RESOURCE_LEAK, [start of procedure printStreamNotClosedAfterWrite()] -src/infer/GuardedByExample.java, Object GuardedByExample.byRefTrickyBad(), 5, UNSAFE_GUARDED_BY_ACCESS, [start of procedure byRefTrickyBad()] -src/infer/GuardedByExample.java, String GuardedByExample$3.readFromInnerClassBad1(), 2, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFromInnerClassBad1()] -src/infer/GuardedByExample.java, String GuardedByExample$4.readFromInnerClassBad2(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFromInnerClassBad2()] -src/infer/GuardedByExample.java, void GuardedByExample$Sub.badSub(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure badSub()] -src/infer/GuardedByExample.java, void GuardedByExample.badGuardedByNormalLock(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure badGuardedByNormalLock()] -src/infer/GuardedByExample.java, void GuardedByExample.badGuardedByReentrantLock(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure badGuardedByReentrantLock()] -src/infer/GuardedByExample.java, void GuardedByExample.guardedByTypeSyntaxBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure guardedByTypeSyntaxBad()] -src/infer/GuardedByExample.java, void GuardedByExample.guardedByTypeSyntaxBad(), 2, UNSAFE_GUARDED_BY_ACCESS, [start of procedure guardedByTypeSyntaxBad()] -src/infer/GuardedByExample.java, void GuardedByExample.readFAfterBlockBad(), 3, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFAfterBlockBad()] -src/infer/GuardedByExample.java, void GuardedByExample.readFBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFBad()] -src/infer/GuardedByExample.java, void GuardedByExample.readFBadButSuppressedOther(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFBadButSuppressedOther()] -src/infer/GuardedByExample.java, void GuardedByExample.readFBadWrongAnnotation(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFBadWrongAnnotation()] -src/infer/GuardedByExample.java, void GuardedByExample.readFBadWrongLock(), 2, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFBadWrongLock()] -src/infer/GuardedByExample.java, void GuardedByExample.readHBad(), 2, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readHBad()] -src/infer/GuardedByExample.java, void GuardedByExample.readHBadSynchronizedMethodShouldntHelp(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readHBadSynchronizedMethodShouldntHelp()] -src/infer/GuardedByExample.java, void GuardedByExample.synchronizedMethodReadBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure synchronizedMethodReadBad()] -src/infer/GuardedByExample.java, void GuardedByExample.synchronizedMethodWriteBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure synchronizedMethodWriteBad()] -src/infer/GuardedByExample.java, void GuardedByExample.synchronizedOnThisBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure synchronizedOnThisBad()] -src/infer/GuardedByExample.java, void GuardedByExample.writeFAfterBlockBad(), 3, UNSAFE_GUARDED_BY_ACCESS, [start of procedure writeFAfterBlockBad()] -src/infer/GuardedByExample.java, void GuardedByExample.writeFBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure writeFBad()] -src/infer/GuardedByExample.java, void GuardedByExample.writeFBadWrongLock(), 2, UNSAFE_GUARDED_BY_ACCESS, [start of procedure writeFBadWrongLock()] -src/infer/HashMapExample.java, int HashMapExample.getOneIntegerWithoutCheck(), 6, NULL_DEREFERENCE, [start of procedure getOneIntegerWithoutCheck()] -src/infer/HashMapExample.java, void HashMapExample.getTwoIntegersWithOneCheck(Integer,Integer), 11, NULL_DEREFERENCE, [start of procedure getTwoIntegersWithOneCheck(...),Taking true branch,Taking true branch] -src/infer/InvokeDynamic.java, int InvokeDynamic.lambda$npeInLambdaBad$1(String,String), 1, NULL_DEREFERENCE, [start of procedure lambda$npeInLambdaBad$1(...)] -src/infer/InvokeDynamic.java, void InvokeDynamic.invokeDynamicThenNpeBad(List), 5, NULL_DEREFERENCE, [start of procedure invokeDynamicThenNpeBad(...)] -src/infer/NullPointerExceptions.java, String NullPointerExceptions.hashmapNPE(HashMap,Object), 1, NULL_DEREFERENCE, [start of procedure hashmapNPE(...)] -src/infer/NullPointerExceptions.java, String NullPointerExceptions.nullTryLock(FileChannel), 2, NULL_DEREFERENCE, [start of procedure nullTryLock(...)] -src/infer/NullPointerExceptions.java, String NullPointerExceptions.testSystemGetPropertyArgument(), 1, NULL_DEREFERENCE, [start of procedure testSystemGetPropertyArgument()] -src/infer/NullPointerExceptions.java, String NullPointerExceptions.tryLockThrows(FileChannel), 6, NULL_DEREFERENCE, [start of procedure tryLockThrows(...),exception java.io.IOException,Switch condition is true. Entering switch case] -src/infer/NullPointerExceptions.java, int NullPointerExceptions.NPEvalueOfFromHashmapBad(HashMap,int), 1, NULL_DEREFERENCE, [start of procedure NPEvalueOfFromHashmapBad(...)] -src/infer/NullPointerExceptions.java, int NullPointerExceptions.nullListFiles(String), 3, NULL_DEREFERENCE, [start of procedure nullListFiles(...)] -src/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerException(), 2, NULL_DEREFERENCE, [start of procedure nullPointerException()] -src/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionInterProc(), 2, NULL_DEREFERENCE, [start of procedure nullPointerExceptionInterProc(),start of procedure canReturnNullObject(...),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),Taking false branch,return from a call to NullPointerExceptions$A NullPointerExceptions.canReturnNullObject(boolean)] -src/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean), 5, NULL_DEREFERENCE, [start of procedure nullPointerExceptionWithExceptionHandling(...),exception java.lang.Exception,Switch condition is true. Entering switch case] -src/infer/NullPointerExceptions.java, void NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars(), 2, NULL_DEREFERENCE, [start of procedure npeWithDollars()] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.badCheckShouldCauseNPE(), 1, NULL_DEREFERENCE, [start of procedure badCheckShouldCauseNPE(),start of procedure getBool(),Taking true branch,return from a call to Boolean NullPointerExceptions.getBool(),Taking true branch,start of procedure getObj(),Taking false branch,return from a call to Object NullPointerExceptions.getObj()] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.cursorFromContentResolverNPE(String), 9, NULL_DEREFERENCE, [start of procedure cursorFromContentResolverNPE(...)] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.derefNull(), 2, NULL_DEREFERENCE, [start of procedure derefNull(),start of procedure derefUndefinedCallee(),start of procedure retUndefined(),return from a call to Object NullPointerExceptions.retUndefined(),return from a call to Object NullPointerExceptions.derefUndefinedCallee()] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.derefNullableGetter(), 2, NULL_DEREFERENCE, [start of procedure derefNullableGetter(),start of procedure nullableGetter(),return from a call to Object NullPointerExceptions.nullableGetter()] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.derefNullableRet(boolean), 2, NULL_DEREFERENCE, [start of procedure derefNullableRet(...),start of procedure nullableRet(...),Taking true branch,return from a call to Object NullPointerExceptions.nullableRet(boolean)] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.derefUndefNullableRet(), 2, NULL_DEREFERENCE, [start of procedure derefUndefNullableRet()] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.derefUndefNullableRetWrapper(), 1, NULL_DEREFERENCE, [start of procedure derefUndefNullableRetWrapper(),start of procedure undefNullableWrapper(),return from a call to Object NullPointerExceptions.undefNullableWrapper()] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L), 2, NULL_DEREFERENCE, [start of procedure dereferenceAfterLoopOnList(...),start of procedure returnsNullAfterLoopOnList(...),Taking false branch,return from a call to Object NullPointerExceptions.returnsNullAfterLoopOnList(NullPointerExceptions$L)] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock1(Lock), 4, NULL_DEREFERENCE, [start of procedure dereferenceAfterUnlock1(...)] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock2(Lock), 6, NULL_DEREFERENCE, [start of procedure dereferenceAfterUnlock2(...)] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionArrayLength(), 2, NULL_DEREFERENCE, [start of procedure nullPointerExceptionArrayLength()] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod(), 2, NULL_DEREFERENCE, [start of procedure nullPointerExceptionCallArrayReadMethod(),start of procedure arrayReadShouldNotCauseSymexMemoryError(...),return from a call to Object NullPointerExceptions.arrayReadShouldNotCauseSymexMemoryError(int)] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFailingFileOutputStreamConstructor(), 7, NULL_DEREFERENCE, [start of procedure nullPointerExceptionFromFailingFileOutputStreamConstructor(),exception java.io.FileNotFoundException,Switch condition is true. Entering switch case] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFaillingResourceConstructor(), 6, NULL_DEREFERENCE, [start of procedure nullPointerExceptionFromFaillingResourceConstructor(),exception java.io.FileNotFoundException,Switch condition is true. Entering switch case] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionInArrayLengthLoop(java.lang.Object[]), 3, NULL_DEREFERENCE, [start of procedure nullPointerExceptionInArrayLengthLoop(...),Taking true branch] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionUnlessFrameFails(), 4, NULL_DEREFERENCE, [start of procedure nullPointerExceptionUnlessFrameFails(),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),start of procedure frame(...),start of procedure id_generics(...),return from a call to Object NullPointerExceptions.id_generics(Object),return from a call to NullPointerExceptions$A NullPointerExceptions.frame(NullPointerExceptions$A),Taking true branch] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullArrayParameter(), 1, NULL_DEREFERENCE, [start of procedure nullPointerExceptionWithNullArrayParameter(),start of procedure expectNotNullArrayParameter(...)] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullObjectParameter(), 1, NULL_DEREFERENCE, [start of procedure nullPointerExceptionWithNullObjectParameter(),start of procedure expectNotNullObjectParameter(...)] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullableFieldNPE(), 1, NULL_DEREFERENCE, [start of procedure nullableFieldNPE()] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.nullableParamNPE(Object), 1, NULL_DEREFERENCE, [start of procedure nullableParamNPE(...)] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.optionalNPE(Optional), 1, NULL_DEREFERENCE, [start of procedure optionalNPE(...)] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.otherSinkWithNeverNullSource(), 3, NULL_DEREFERENCE, [start of procedure otherSinkWithNeverNullSource(),start of procedure SomeLibrary(),return from a call to SomeLibrary.(),start of procedure get(),Taking true branch,return from a call to T SomeLibrary.get()] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.sinkWithNeverNullSource(), 3, NULL_DEREFERENCE, [start of procedure sinkWithNeverNullSource(),start of procedure NeverNullSource(),return from a call to NeverNullSource.(),start of procedure get(),Taking true branch,return from a call to T NeverNullSource.get()] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.someNPEAfterResourceLeak(), 2, NULL_DEREFERENCE, [start of procedure someNPEAfterResourceLeak(),start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.(),return from a call to T CloseableAsResourceExample.sourceOfNullWithResourceLeak()] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.stringConstantEqualsFalseNotNPE_FP(), 10, NULL_DEREFERENCE, [start of procedure stringConstantEqualsFalseNotNPE_FP(),Taking false branch] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.stringVarEqualsFalseNPE(), 5, NULL_DEREFERENCE, [start of procedure stringVarEqualsFalseNPE(),start of procedure getString2(),return from a call to String NullPointerExceptions.getString2(),Taking true branch] -src/infer/NullPointerExceptions.java, void NullPointerExceptions.testSystemGetPropertyReturn(), 2, NULL_DEREFERENCE, [start of procedure testSystemGetPropertyReturn()] -src/infer/ReaderLeaks.java, void ReaderLeaks.bufferedReaderNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure bufferedReaderNotClosedAfterRead(),exception java.io.IOException] -src/infer/ReaderLeaks.java, void ReaderLeaks.fileReaderNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure fileReaderNotClosedAfterRead(),exception java.io.IOException] -src/infer/ReaderLeaks.java, void ReaderLeaks.inputStreamReaderNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure inputStreamReaderNotClosedAfterRead(),exception java.io.IOException] -src/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderFalsePositive(), 5, RESOURCE_LEAK, [start of procedure pipedReaderFalsePositive()] -src/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderNotClosedAfterConnect(PipedWriter), 7, RESOURCE_LEAK, [start of procedure pipedReaderNotClosedAfterConnect(...),exception java.io.IOException] -src/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderNotClosedAfterConstructedWithWriter(), 8, RESOURCE_LEAK, [start of procedure pipedReaderNotClosedAfterConstructedWithWriter(),exception java.io.IOException] -src/infer/ReaderLeaks.java, void ReaderLeaks.pushbackReaderNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure pushbackReaderNotClosedAfterRead(),exception java.io.IOException] -src/infer/ReaderLeaks.java, void ReaderLeaks.readerNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure readerNotClosedAfterRead(),exception java.io.IOException] -src/infer/ResourceLeaks.java, String ResourceLeaks.readInstallationFileBad(File), 6, RESOURCE_LEAK, [start of procedure readInstallationFileBad(...),exception java.io.IOException] -src/infer/ResourceLeaks.java, boolean ResourceLeaks.jarFileNotClosed(), 3, RESOURCE_LEAK, [start of procedure jarFileNotClosed()] -src/infer/ResourceLeaks.java, int ResourceLeaks.fileOutputStreamTwoLeaks1(boolean), 3, RESOURCE_LEAK, [start of procedure fileOutputStreamTwoLeaks1(...),Taking true branch] -src/infer/ResourceLeaks.java, int ResourceLeaks.fileOutputStreamTwoLeaks1(boolean), 6, RESOURCE_LEAK, [start of procedure fileOutputStreamTwoLeaks1(...),Taking false branch] -src/infer/ResourceLeaks.java, int ResourceLeaks.readConfigNotCloseStream(String), 5, RESOURCE_LEAK, [start of procedure readConfigNotCloseStream(...)] -src/infer/ResourceLeaks.java, void ResourceLeaks.activityObtainTypedArrayAndLeak(Activity), 2, RESOURCE_LEAK, [start of procedure activityObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(Object)] -src/infer/ResourceLeaks.java, void ResourceLeaks.contextObtainTypedArrayAndLeak(Context), 2, RESOURCE_LEAK, [start of procedure contextObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(Object)] -src/infer/ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 11, RESOURCE_LEAK, [start of procedure copyFileLeak(...),exception java.io.FileNotFoundException] -src/infer/ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 11, RESOURCE_LEAK, [start of procedure copyFileLeak(...),exception java.io.IOException,Switch condition is true. Entering switch case,Taking true branch,exception java.io.IOException] -src/infer/ResourceLeaks.java, void ResourceLeaks.deflaterLeak(), 1, RESOURCE_LEAK, [start of procedure deflaterLeak()] -src/infer/ResourceLeaks.java, void ResourceLeaks.fileInputStreamNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure fileInputStreamNotClosedAfterRead(),exception java.io.IOException] -src/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamNotClosed(), 1, RESOURCE_LEAK, [start of procedure fileOutputStreamNotClosed()] -src/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamNotClosedAfterWrite(), 7, RESOURCE_LEAK, [start of procedure fileOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -src/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamOneLeak(), 2, RESOURCE_LEAK, [start of procedure fileOutputStreamOneLeak(),Taking true branch] -src/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamTwoLeaks2(), 2, RESOURCE_LEAK, [start of procedure fileOutputStreamTwoLeaks2(),Taking true branch] -src/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamTwoLeaks2(), 5, RESOURCE_LEAK, [start of procedure fileOutputStreamTwoLeaks2(),Taking true branch] -src/infer/ResourceLeaks.java, void ResourceLeaks.inflaterLeak(), 1, RESOURCE_LEAK, [start of procedure inflaterLeak()] -src/infer/ResourceLeaks.java, void ResourceLeaks.jarInputStreamLeak(), 3, RESOURCE_LEAK, [start of procedure jarInputStreamLeak()] -src/infer/ResourceLeaks.java, void ResourceLeaks.jarOutputStreamLeak(), 3, RESOURCE_LEAK, [start of procedure jarOutputStreamLeak()] -src/infer/ResourceLeaks.java, void ResourceLeaks.nestedBad1(), 1, RESOURCE_LEAK, [start of procedure nestedBad1()] -src/infer/ResourceLeaks.java, void ResourceLeaks.nestedBad2(), 1, RESOURCE_LEAK, [start of procedure nestedBad2()] -src/infer/ResourceLeaks.java, void ResourceLeaks.nestedBadJarInputStream(File), 1, RESOURCE_LEAK, [start of procedure nestedBadJarInputStream(...)] -src/infer/ResourceLeaks.java, void ResourceLeaks.nestedBadJarOutputStream(), 1, RESOURCE_LEAK, [start of procedure nestedBadJarOutputStream()] -src/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosedNestedBad(), 3, RESOURCE_LEAK, [start of procedure objectInputStreamClosedNestedBad()] -src/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamNotClosedAfterRead(), 3, RESOURCE_LEAK, [start of procedure objectInputStreamNotClosedAfterRead()] -src/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure objectInputStreamNotClosedAfterRead(),exception java.io.IOException] -src/infer/ResourceLeaks.java, void ResourceLeaks.objectOutputStreamClosedNestedBad(), 3, RESOURCE_LEAK, [start of procedure objectOutputStreamClosedNestedBad()] -src/infer/ResourceLeaks.java, void ResourceLeaks.objectOutputStreamNotClosedAfterWrite(), 4, RESOURCE_LEAK, [start of procedure objectOutputStreamNotClosedAfterWrite()] -src/infer/ResourceLeaks.java, void ResourceLeaks.objectOutputStreamNotClosedAfterWrite(), 7, RESOURCE_LEAK, [start of procedure objectOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -src/infer/ResourceLeaks.java, void ResourceLeaks.openHttpURLConnectionNotDisconnected(), 7, RESOURCE_LEAK, [start of procedure openHttpURLConnectionNotDisconnected()] -src/infer/ResourceLeaks.java, void ResourceLeaks.openHttpsURLConnectionNotDisconnected(), 3, RESOURCE_LEAK, [start of procedure openHttpsURLConnectionNotDisconnected()] -src/infer/ResourceLeaks.java, void ResourceLeaks.parseFromInputStreamAndLeak(JsonFactory), 5, RESOURCE_LEAK, [start of procedure parseFromInputStreamAndLeak(...)] -src/infer/ResourceLeaks.java, void ResourceLeaks.pipedInputStreamNotClosedAfterRead(PipedOutputStream), 6, RESOURCE_LEAK, [start of procedure pipedInputStreamNotClosedAfterRead(...),exception java.io.IOException] -src/infer/ResourceLeaks.java, void ResourceLeaks.pipedOutputStreamNotClosedAfterWrite(), 7, RESOURCE_LEAK, [start of procedure pipedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] -src/infer/ResourceLeaks.java, void ResourceLeaks.scannerNotClosed(), 1, RESOURCE_LEAK, [start of procedure scannerNotClosed()] -src/infer/ResourceLeaks.java, void ResourceLeaks.serverSocketNotClosed(), 12, RESOURCE_LEAK, [start of procedure serverSocketNotClosed(),exception java.io.IOException] -src/infer/ResourceLeaks.java, void ResourceLeaks.socketNotClosed(), 1, RESOURCE_LEAK, [start of procedure socketNotClosed()] -src/infer/ResourceLeaks.java, void ResourceLeaks.themeObtainTypedArrayAndLeak(Resources$Theme), 2, RESOURCE_LEAK, [start of procedure themeObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(Object)] -src/infer/ResourceLeaks.java, void ResourceLeaks.twoResources(), 11, RESOURCE_LEAK, [start of procedure twoResources(),exception java.io.IOException,Switch condition is true. Entering switch case,Taking true branch,exception java.io.IOException] -src/infer/ResourceLeaks.java, void ResourceLeaks.twoResourcesRandomAccessFile(), 10, RESOURCE_LEAK, [start of procedure twoResourcesRandomAccessFile(),Taking true branch,exception java.io.IOException] -src/infer/ResourceLeaks.java, void ResourceLeaks.twoResourcesServerSocket(), 10, RESOURCE_LEAK, [start of procedure twoResourcesServerSocket(),Taking true branch,exception java.io.IOException] -src/infer/ResourceLeaks.java, void ResourceLeaks.zipFileLeakExceptionalBranch(), 5, RESOURCE_LEAK, [start of procedure zipFileLeakExceptionalBranch(),exception java.io.IOException,Switch condition is true. Entering switch case] -src/infer/TaintExample.java, InputStream TaintExample.socketIgnoreExceptionNoVerify(SSLSocketFactory), 9, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure socketIgnoreExceptionNoVerify(...),start of procedure throwExceptionIfNoVerify(...),Taking true branch,exception javax.net.ssl.SSLException,return from a call to void TaintExample.throwExceptionIfNoVerify(SSLSocket,String),Switch condition is true. Entering switch case] -src/infer/TaintExample.java, InputStream TaintExample.socketNotVerifiedSimple(SSLSocketFactory), 3, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure socketNotVerifiedSimple(...)] -src/infer/TaintExample.java, InputStream TaintExample.socketVerifiedForgotToCheckRetval(SSLSocketFactory,HostnameVerifier,SSLSession), 7, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure socketVerifiedForgotToCheckRetval(...)] -src/infer/TaintExample.java, InputStream TaintExample.taintingShouldNotPreventInference1(SSLSocketFactory), 4, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure taintingShouldNotPreventInference1(...),start of procedure socketNotVerifiedSimple(...),return from a call to InputStream TaintExample.socketNotVerifiedSimple(SSLSocketFactory)] -src/infer/TaintExample.java, InputStream TaintExample.taintingShouldNotPreventInference2(SSLSocketFactory), 3, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure taintingShouldNotPreventInference2(...),start of procedure callReadInputStreamCauseTaintError(...),start of procedure readInputStream(...),return from a call to InputStream TaintExample.readInputStream(Socket),return from a call to Socket TaintExample.callReadInputStreamCauseTaintError(SSLSocketFactory)] -src/infer/TaintExample.java, Socket TaintExample.callReadInputStreamCauseTaintError(SSLSocketFactory), 3, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure callReadInputStreamCauseTaintError(...)] -src/infer/TaintExample.java, void TaintExample.contentValuesPutWithTaintedString(ContentValues,SharedPreferences,String,String), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure contentValuesPutWithTaintedString(...)] -src/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethods1(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethods1(),start of procedure returnTaintedSourceModelMethods(),return from a call to Object TaintExample.returnTaintedSourceModelMethods()] -src/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethods2(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethods2()] -src/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethods3(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethods3(),start of procedure returnTaintedSourceModelMethods(),return from a call to Object TaintExample.returnTaintedSourceModelMethods()] -src/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethodsUndefined1(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethodsUndefined1(),start of procedure returnTaintedSourceModelMethodsUndefined(),return from a call to Object TaintExample.returnTaintedSourceModelMethodsUndefined()] -src/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethodsUndefined2(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethodsUndefined2()] -src/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethodsUndefined3(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethodsUndefined3(),start of procedure returnTaintedSourceModelMethodsUndefined(),return from a call to Object TaintExample.returnTaintedSourceModelMethodsUndefined()] -src/infer/TaintExample.java, void TaintExample.simpleTaintErrorWithModelMethods(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure simpleTaintErrorWithModelMethods()] -src/infer/TaintExample.java, void TaintExample.simpleTaintErrorWithModelMethodsUndefined(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure simpleTaintErrorWithModelMethodsUndefined()] -src/infer/TaintExample.java, void TaintExample.testIntegritySinkAnnotReport(String), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testIntegritySinkAnnotReport(...),start of procedure integritySource(),return from a call to String TaintExample.integritySource()] -src/infer/TaintExample.java, void TaintExample.testIntegritySourceAnnot(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testIntegritySourceAnnot(),start of procedure integritySource(),return from a call to String TaintExample.integritySource()] -src/infer/TaintExample.java, void TaintExample.testIntegritySourceInstanceFieldAnnot(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testIntegritySourceInstanceFieldAnnot()] -src/infer/TaintExample.java, void TaintExample.testIntegritySourceStaticFieldAnnot(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testIntegritySourceStaticFieldAnnot()] -src/infer/TaintExample.java, void TaintExample.testPrivacySinkAnnot1(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySinkAnnot1(),start of procedure privacySource(),return from a call to String TaintExample.privacySource()] -src/infer/TaintExample.java, void TaintExample.testPrivacySinkAnnot3(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySinkAnnot3(),start of procedure privacySource(),return from a call to String TaintExample.privacySource()] -src/infer/TaintExample.java, void TaintExample.testPrivacySourceAnnot(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySourceAnnot(),start of procedure privacySource(),return from a call to String TaintExample.privacySource()] -src/infer/TaintExample.java, void TaintExample.testPrivacySourceFieldAnnotPropagation(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySourceFieldAnnotPropagation()] -src/infer/TaintExample.java, void TaintExample.testPrivacySourceInstanceFieldAnnot(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySourceInstanceFieldAnnot()] -src/infer/TaintExample.java, void TaintExample.testPrivacySourceStaticFieldAnnot(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySourceStaticFieldAnnot()] -src/infer/WriterLeaks.java, void WriterLeaks.bufferedWriterNotClosedAfterWrite(), 7, RESOURCE_LEAK, [start of procedure bufferedWriterNotClosedAfterWrite(),exception java.io.IOException] -src/infer/WriterLeaks.java, void WriterLeaks.fileWriterNotClosedAfterWrite(), 6, RESOURCE_LEAK, [start of procedure fileWriterNotClosedAfterWrite(),exception java.io.IOException] -src/infer/WriterLeaks.java, void WriterLeaks.outputStreamWriterNotClosedAfterWrite(), 6, RESOURCE_LEAK, [start of procedure outputStreamWriterNotClosedAfterWrite(),exception java.io.IOException] -src/infer/WriterLeaks.java, void WriterLeaks.pipedWriterNotClosedAfterConnect(PipedReader), 7, RESOURCE_LEAK, [start of procedure pipedWriterNotClosedAfterConnect(...),exception java.io.IOException] -src/infer/WriterLeaks.java, void WriterLeaks.pipedWriterNotClosedAfterConstructedWithReader(), 8, RESOURCE_LEAK, [start of procedure pipedWriterNotClosedAfterConstructedWithReader(),exception java.io.IOException] -src/infer/WriterLeaks.java, void WriterLeaks.printWriterNotClosedAfterAppend(), 4, RESOURCE_LEAK, [start of procedure printWriterNotClosedAfterAppend()] -src/infer/WriterLeaks.java, void WriterLeaks.writerNotClosedAfterWrite(), 6, RESOURCE_LEAK, [start of procedure writerNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/AnalysisStops.java, void AnalysisStops.fieldReadInCalleeMayCauseFalseNegative(), 3, NULL_DEREFERENCE, [start of procedure fieldReadInCalleeMayCauseFalseNegative(),start of procedure derefParam(...)] +codetoanalyze/java/infer/AnalysisStops.java, void AnalysisStops.fieldReadInCalleeWithAngelicObjFieldMayCauseFalseNegative(), 3, NULL_DEREFERENCE, [start of procedure fieldReadInCalleeWithAngelicObjFieldMayCauseFalseNegative(),start of procedure derefParam(...)] +codetoanalyze/java/infer/AnalysisStops.java, void AnalysisStops.skipFunctionInLoopMayCauseFalseNegative(), 5, NULL_DEREFERENCE, [start of procedure skipFunctionInLoopMayCauseFalseNegative(),Taking true branch,Taking false branch] +codetoanalyze/java/infer/AutoGenerated.java, void AutoGenerated.npe(), 2, NULL_DEREFERENCE, [start of procedure npe()] +codetoanalyze/java/infer/Builtins.java, void Builtins.doNotBlockError(Object), 3, NULL_DEREFERENCE, [start of procedure doNotBlockError(...),Taking true branch] +codetoanalyze/java/infer/CloseableAsResourceExample.java, T CloseableAsResourceExample.sourceOfNullWithResourceLeak(), 1, RESOURCE_LEAK, [start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.()] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.failToCloseWithCloseQuietly(), 5, RESOURCE_LEAK, [start of procedure failToCloseWithCloseQuietly(),start of procedure SomeResource(),return from a call to SomeResource.(),start of procedure doSomething(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.leakFoundWhenIndirectlyImplementingCloseable(), 1, RESOURCE_LEAK, [start of procedure leakFoundWhenIndirectlyImplementingCloseable(),start of procedure CloseableAsResourceExample$MyResource(...),return from a call to CloseableAsResourceExample$MyResource.(CloseableAsResourceExample)] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.notClosingCloseable(), 1, RESOURCE_LEAK, [start of procedure notClosingCloseable(),start of procedure SomeResource(),return from a call to SomeResource.()] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.notClosingWrapper(), 2, RESOURCE_LEAK, [start of procedure notClosingWrapper(),start of procedure Resource(),return from a call to Resource.(),start of procedure Sub(...),start of procedure Wrapper(...),return from a call to Wrapper.(Resource),return from a call to Sub.(Resource),start of procedure close(),return from a call to void Resource.close()] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.skippedVritualCallDoesNotCloseResourceOnReceiver(), 2, RESOURCE_LEAK, [start of procedure skippedVritualCallDoesNotCloseResourceOnReceiver(),start of procedure SomeResource(),return from a call to SomeResource.()] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.withException(), 4, RESOURCE_LEAK, [start of procedure withException(),start of procedure SomeResource(),return from a call to SomeResource.(),start of procedure doSomething(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] +codetoanalyze/java/infer/ContextLeaks.java, ContextLeaks$Singleton ContextLeaks$Singleton.getInstance(Context), 4, CONTEXT_LEAK, [start of procedure getInstance(...),Taking true branch,start of procedure ContextLeaks$Singleton(...),return from a call to ContextLeaks$Singleton.(Context),return from a call to ContextLeaks$Singleton ContextLeaks$Singleton.getInstance(Context)] +codetoanalyze/java/infer/ContextLeaks.java, ContextLeaks$Singleton ContextLeaks.singletonLeak(), 1, CONTEXT_LEAK, [start of procedure singletonLeak(),start of procedure getInstance(...),Taking true branch,start of procedure ContextLeaks$Singleton(...),return from a call to ContextLeaks$Singleton.(Context),return from a call to ContextLeaks$Singleton ContextLeaks$Singleton.getInstance(Context),return from a call to ContextLeaks$Singleton ContextLeaks.singletonLeak()] +codetoanalyze/java/infer/ContextLeaks.java, void ContextLeaks.directLeak(), 2, CONTEXT_LEAK, [start of procedure directLeak(),return from a call to void ContextLeaks.directLeak()] +codetoanalyze/java/infer/ContextLeaks.java, void ContextLeaks.indirectLeak(), 4, CONTEXT_LEAK, [start of procedure indirectLeak(),start of procedure ContextLeaks$Obj(),return from a call to ContextLeaks$Obj.(),return from a call to void ContextLeaks.indirectLeak()] +codetoanalyze/java/infer/ContextLeaks.java, void ContextLeaks.leakAfterInstanceFieldWrite(), 3, CONTEXT_LEAK, [start of procedure leakAfterInstanceFieldWrite(),return from a call to void ContextLeaks.leakAfterInstanceFieldWrite()] +codetoanalyze/java/infer/ContextLeaks.java, void ContextLeaks.nonStaticInnerClassLeak(), 2, CONTEXT_LEAK, [start of procedure nonStaticInnerClassLeak(),start of procedure ContextLeaks$NonStaticInner(...),return from a call to ContextLeaks$NonStaticInner.(ContextLeaks),return from a call to void ContextLeaks.nonStaticInnerClassLeak()] +codetoanalyze/java/infer/CursorLeaks.java, int CursorLeaks.completeDownloadNotClosed(DownloadManager), 8, RESOURCE_LEAK, [start of procedure completeDownloadNotClosed(...),Taking false branch] +codetoanalyze/java/infer/CursorLeaks.java, int CursorLeaks.cursorNotClosed(SQLiteDatabase), 4, RESOURCE_LEAK, [start of procedure cursorNotClosed(...)] +codetoanalyze/java/infer/CursorLeaks.java, int CursorLeaks.getBucketCountNotClosed(), 10, RESOURCE_LEAK, [start of procedure getBucketCountNotClosed(),Taking false branch,Taking false branch] +codetoanalyze/java/infer/CursorLeaks.java, int CursorLeaks.getImageCountHelperNotClosed(String), 13, RESOURCE_LEAK, [start of procedure getImageCountHelperNotClosed(...),Taking true branch] +codetoanalyze/java/infer/CursorLeaks.java, void CursorLeaks.loadPrefsFromContentProviderNotClosed(), 11, RESOURCE_LEAK, [start of procedure loadPrefsFromContentProviderNotClosed(),Taking false branch,Taking true branch] +codetoanalyze/java/infer/CursorLeaks.java, void CursorLeaks.queryUVMLegacyDbNotClosed(), 4, RESOURCE_LEAK, [start of procedure queryUVMLegacyDbNotClosed(),Taking true branch] +codetoanalyze/java/infer/DynamicDispatch.java, void DynamicDispatch.dynamicDispatchShouldNotCauseFalseNegativeEasy(), 3, NULL_DEREFERENCE, [start of procedure dynamicDispatchShouldNotCauseFalseNegativeEasy(),start of procedure DynamicDispatch$Subtype(),start of procedure DynamicDispatch$Supertype(),return from a call to DynamicDispatch$Supertype.(),return from a call to DynamicDispatch$Subtype.(),start of procedure foo(),return from a call to Object DynamicDispatch$Subtype.foo()] +codetoanalyze/java/infer/DynamicDispatch.java, void DynamicDispatch.interfaceShouldNotCauseFalseNegativeEasy(), 3, NULL_DEREFERENCE, [start of procedure interfaceShouldNotCauseFalseNegativeEasy(),start of procedure DynamicDispatch$Impl(),return from a call to DynamicDispatch$Impl.(),start of procedure foo(),return from a call to Object DynamicDispatch$Impl.foo()] +codetoanalyze/java/infer/DynamicDispatch.java, void DynamicDispatch.interfaceShouldNotCauseFalseNegativeHard(DynamicDispatch$Interface), 2, NULL_DEREFERENCE, [start of procedure interfaceShouldNotCauseFalseNegativeHard(...),start of procedure foo(),return from a call to Object DynamicDispatch$Impl.foo()] +codetoanalyze/java/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.bufferedInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure bufferedInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.checkedInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure checkedInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.cipherInputStreamNotClosedAfterSkip(), 7, RESOURCE_LEAK, [start of procedure cipherInputStreamNotClosedAfterSkip(),exception java.io.IOException] +codetoanalyze/java/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.dataInputStreamNotClosedAfterRead(), 8, RESOURCE_LEAK, [start of procedure dataInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.deflaterInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure deflaterInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.digestInputStreamNotClosedAfterRead(), 8, RESOURCE_LEAK, [start of procedure digestInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead(), 4, RESOURCE_LEAK, [start of procedure gzipInputStreamNotClosedAfterRead()] +codetoanalyze/java/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.gzipInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure gzipInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.inflaterInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure inflaterInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/FilterInputStreamLeaks.java, void FilterInputStreamLeaks.pushbackInputStreamNotClosedAfterRead(), 7, RESOURCE_LEAK, [start of procedure pushbackInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.bufferedOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure bufferedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.checkedOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure checkedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.cipherOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure cipherOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.dataOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure dataOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.deflaterOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure deflaterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.digestOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure digestOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.filterOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure filterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush(), 4, RESOURCE_LEAK, [start of procedure gzipOutputStreamNotClosedAfterFlush()] +codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush(), 7, RESOURCE_LEAK, [start of procedure gzipOutputStreamNotClosedAfterFlush(),exception java.io.IOException] +codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.inflaterOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, [start of procedure inflaterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.printStreamNotClosedAfterWrite(), 6, RESOURCE_LEAK, [start of procedure printStreamNotClosedAfterWrite()] +codetoanalyze/java/infer/GuardedByExample.java, Object GuardedByExample.byRefTrickyBad(), 5, UNSAFE_GUARDED_BY_ACCESS, [start of procedure byRefTrickyBad()] +codetoanalyze/java/infer/GuardedByExample.java, String GuardedByExample$3.readFromInnerClassBad1(), 2, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFromInnerClassBad1()] +codetoanalyze/java/infer/GuardedByExample.java, String GuardedByExample$4.readFromInnerClassBad2(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFromInnerClassBad2()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample$Sub.badSub(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure badSub()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.badGuardedByNormalLock(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure badGuardedByNormalLock()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.badGuardedByReentrantLock(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure badGuardedByReentrantLock()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.guardedByTypeSyntaxBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure guardedByTypeSyntaxBad()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.guardedByTypeSyntaxBad(), 2, UNSAFE_GUARDED_BY_ACCESS, [start of procedure guardedByTypeSyntaxBad()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFAfterBlockBad(), 3, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFAfterBlockBad()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFBad()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBadButSuppressedOther(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFBadButSuppressedOther()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBadWrongAnnotation(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFBadWrongAnnotation()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBadWrongLock(), 2, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readFBadWrongLock()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readHBad(), 2, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readHBad()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readHBadSynchronizedMethodShouldntHelp(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure readHBadSynchronizedMethodShouldntHelp()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.synchronizedMethodReadBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure synchronizedMethodReadBad()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.synchronizedMethodWriteBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure synchronizedMethodWriteBad()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.synchronizedOnThisBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure synchronizedOnThisBad()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.writeFAfterBlockBad(), 3, UNSAFE_GUARDED_BY_ACCESS, [start of procedure writeFAfterBlockBad()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.writeFBad(), 1, UNSAFE_GUARDED_BY_ACCESS, [start of procedure writeFBad()] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.writeFBadWrongLock(), 2, UNSAFE_GUARDED_BY_ACCESS, [start of procedure writeFBadWrongLock()] +codetoanalyze/java/infer/HashMapExample.java, int HashMapExample.getOneIntegerWithoutCheck(), 6, NULL_DEREFERENCE, [start of procedure getOneIntegerWithoutCheck()] +codetoanalyze/java/infer/HashMapExample.java, void HashMapExample.getTwoIntegersWithOneCheck(Integer,Integer), 11, NULL_DEREFERENCE, [start of procedure getTwoIntegersWithOneCheck(...),Taking true branch,Taking true branch] +codetoanalyze/java/infer/InvokeDynamic.java, int InvokeDynamic.lambda$npeInLambdaBad$1(String,String), 1, NULL_DEREFERENCE, [start of procedure lambda$npeInLambdaBad$1(...)] +codetoanalyze/java/infer/InvokeDynamic.java, void InvokeDynamic.invokeDynamicThenNpeBad(List), 5, NULL_DEREFERENCE, [start of procedure invokeDynamicThenNpeBad(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, String NullPointerExceptions.hashmapNPE(HashMap,Object), 1, NULL_DEREFERENCE, [start of procedure hashmapNPE(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, String NullPointerExceptions.nullTryLock(FileChannel), 2, NULL_DEREFERENCE, [start of procedure nullTryLock(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, String NullPointerExceptions.testSystemGetPropertyArgument(), 1, NULL_DEREFERENCE, [start of procedure testSystemGetPropertyArgument()] +codetoanalyze/java/infer/NullPointerExceptions.java, String NullPointerExceptions.tryLockThrows(FileChannel), 6, NULL_DEREFERENCE, [start of procedure tryLockThrows(...),exception java.io.IOException,Switch condition is true. Entering switch case] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.NPEvalueOfFromHashmapBad(HashMap,int), 1, NULL_DEREFERENCE, [start of procedure NPEvalueOfFromHashmapBad(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.nullListFiles(String), 3, NULL_DEREFERENCE, [start of procedure nullListFiles(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerException(), 2, NULL_DEREFERENCE, [start of procedure nullPointerException()] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionInterProc(), 2, NULL_DEREFERENCE, [start of procedure nullPointerExceptionInterProc(),start of procedure canReturnNullObject(...),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),Taking false branch,return from a call to NullPointerExceptions$A NullPointerExceptions.canReturnNullObject(boolean)] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean), 5, NULL_DEREFERENCE, [start of procedure nullPointerExceptionWithExceptionHandling(...),exception java.lang.Exception,Switch condition is true. Entering switch case] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars(), 2, NULL_DEREFERENCE, [start of procedure npeWithDollars()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.badCheckShouldCauseNPE(), 1, NULL_DEREFERENCE, [start of procedure badCheckShouldCauseNPE(),start of procedure getBool(),Taking true branch,return from a call to Boolean NullPointerExceptions.getBool(),Taking true branch,start of procedure getObj(),Taking false branch,return from a call to Object NullPointerExceptions.getObj()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.cursorFromContentResolverNPE(String), 9, NULL_DEREFERENCE, [start of procedure cursorFromContentResolverNPE(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.derefNull(), 2, NULL_DEREFERENCE, [start of procedure derefNull(),start of procedure derefUndefinedCallee(),start of procedure retUndefined(),return from a call to Object NullPointerExceptions.retUndefined(),return from a call to Object NullPointerExceptions.derefUndefinedCallee()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.derefNullableGetter(), 2, NULL_DEREFERENCE, [start of procedure derefNullableGetter(),start of procedure nullableGetter(),return from a call to Object NullPointerExceptions.nullableGetter()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.derefNullableRet(boolean), 2, NULL_DEREFERENCE, [start of procedure derefNullableRet(...),start of procedure nullableRet(...),Taking true branch,return from a call to Object NullPointerExceptions.nullableRet(boolean)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.derefUndefNullableRet(), 2, NULL_DEREFERENCE, [start of procedure derefUndefNullableRet()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.derefUndefNullableRetWrapper(), 1, NULL_DEREFERENCE, [start of procedure derefUndefNullableRetWrapper(),start of procedure undefNullableWrapper(),return from a call to Object NullPointerExceptions.undefNullableWrapper()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L), 2, NULL_DEREFERENCE, [start of procedure dereferenceAfterLoopOnList(...),start of procedure returnsNullAfterLoopOnList(...),Taking false branch,return from a call to Object NullPointerExceptions.returnsNullAfterLoopOnList(NullPointerExceptions$L)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock1(Lock), 4, NULL_DEREFERENCE, [start of procedure dereferenceAfterUnlock1(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock2(Lock), 6, NULL_DEREFERENCE, [start of procedure dereferenceAfterUnlock2(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionArrayLength(), 2, NULL_DEREFERENCE, [start of procedure nullPointerExceptionArrayLength()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod(), 2, NULL_DEREFERENCE, [start of procedure nullPointerExceptionCallArrayReadMethod(),start of procedure arrayReadShouldNotCauseSymexMemoryError(...),return from a call to Object NullPointerExceptions.arrayReadShouldNotCauseSymexMemoryError(int)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFailingFileOutputStreamConstructor(), 7, NULL_DEREFERENCE, [start of procedure nullPointerExceptionFromFailingFileOutputStreamConstructor(),exception java.io.FileNotFoundException,Switch condition is true. Entering switch case] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFaillingResourceConstructor(), 6, NULL_DEREFERENCE, [start of procedure nullPointerExceptionFromFaillingResourceConstructor(),exception java.io.FileNotFoundException,Switch condition is true. Entering switch case] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionInArrayLengthLoop(java.lang.Object[]), 3, NULL_DEREFERENCE, [start of procedure nullPointerExceptionInArrayLengthLoop(...),Taking true branch] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionUnlessFrameFails(), 4, NULL_DEREFERENCE, [start of procedure nullPointerExceptionUnlessFrameFails(),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),start of procedure frame(...),start of procedure id_generics(...),return from a call to Object NullPointerExceptions.id_generics(Object),return from a call to NullPointerExceptions$A NullPointerExceptions.frame(NullPointerExceptions$A),Taking true branch] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullArrayParameter(), 1, NULL_DEREFERENCE, [start of procedure nullPointerExceptionWithNullArrayParameter(),start of procedure expectNotNullArrayParameter(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullObjectParameter(), 1, NULL_DEREFERENCE, [start of procedure nullPointerExceptionWithNullObjectParameter(),start of procedure expectNotNullObjectParameter(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullableFieldNPE(), 1, NULL_DEREFERENCE, [start of procedure nullableFieldNPE()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullableParamNPE(Object), 1, NULL_DEREFERENCE, [start of procedure nullableParamNPE(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.optionalNPE(Optional), 1, NULL_DEREFERENCE, [start of procedure optionalNPE(...)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.otherSinkWithNeverNullSource(), 3, NULL_DEREFERENCE, [start of procedure otherSinkWithNeverNullSource(),start of procedure SomeLibrary(),return from a call to SomeLibrary.(),start of procedure get(),Taking true branch,return from a call to T SomeLibrary.get()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.sinkWithNeverNullSource(), 3, NULL_DEREFERENCE, [start of procedure sinkWithNeverNullSource(),start of procedure NeverNullSource(),return from a call to NeverNullSource.(),start of procedure get(),Taking true branch,return from a call to T NeverNullSource.get()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.someNPEAfterResourceLeak(), 2, NULL_DEREFERENCE, [start of procedure someNPEAfterResourceLeak(),start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.(),return from a call to T CloseableAsResourceExample.sourceOfNullWithResourceLeak()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.stringConstantEqualsFalseNotNPE_FP(), 10, NULL_DEREFERENCE, [start of procedure stringConstantEqualsFalseNotNPE_FP(),Taking false branch] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.stringVarEqualsFalseNPE(), 5, NULL_DEREFERENCE, [start of procedure stringVarEqualsFalseNPE(),start of procedure getString2(),return from a call to String NullPointerExceptions.getString2(),Taking true branch] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.testSystemGetPropertyReturn(), 2, NULL_DEREFERENCE, [start of procedure testSystemGetPropertyReturn()] +codetoanalyze/java/infer/ReaderLeaks.java, void ReaderLeaks.bufferedReaderNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure bufferedReaderNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/ReaderLeaks.java, void ReaderLeaks.fileReaderNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure fileReaderNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/ReaderLeaks.java, void ReaderLeaks.inputStreamReaderNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure inputStreamReaderNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderFalsePositive(), 5, RESOURCE_LEAK, [start of procedure pipedReaderFalsePositive()] +codetoanalyze/java/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderNotClosedAfterConnect(PipedWriter), 7, RESOURCE_LEAK, [start of procedure pipedReaderNotClosedAfterConnect(...),exception java.io.IOException] +codetoanalyze/java/infer/ReaderLeaks.java, void ReaderLeaks.pipedReaderNotClosedAfterConstructedWithWriter(), 8, RESOURCE_LEAK, [start of procedure pipedReaderNotClosedAfterConstructedWithWriter(),exception java.io.IOException] +codetoanalyze/java/infer/ReaderLeaks.java, void ReaderLeaks.pushbackReaderNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure pushbackReaderNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/ReaderLeaks.java, void ReaderLeaks.readerNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure readerNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, String ResourceLeaks.readInstallationFileBad(File), 6, RESOURCE_LEAK, [start of procedure readInstallationFileBad(...),exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, boolean ResourceLeaks.jarFileNotClosed(), 3, RESOURCE_LEAK, [start of procedure jarFileNotClosed()] +codetoanalyze/java/infer/ResourceLeaks.java, int ResourceLeaks.fileOutputStreamTwoLeaks1(boolean), 3, RESOURCE_LEAK, [start of procedure fileOutputStreamTwoLeaks1(...),Taking true branch] +codetoanalyze/java/infer/ResourceLeaks.java, int ResourceLeaks.fileOutputStreamTwoLeaks1(boolean), 6, RESOURCE_LEAK, [start of procedure fileOutputStreamTwoLeaks1(...),Taking false branch] +codetoanalyze/java/infer/ResourceLeaks.java, int ResourceLeaks.readConfigNotCloseStream(String), 5, RESOURCE_LEAK, [start of procedure readConfigNotCloseStream(...)] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.activityObtainTypedArrayAndLeak(Activity), 2, RESOURCE_LEAK, [start of procedure activityObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(Object)] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.contextObtainTypedArrayAndLeak(Context), 2, RESOURCE_LEAK, [start of procedure contextObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(Object)] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 11, RESOURCE_LEAK, [start of procedure copyFileLeak(...),exception java.io.FileNotFoundException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.copyFileLeak(File,File), 11, RESOURCE_LEAK, [start of procedure copyFileLeak(...),exception java.io.IOException,Switch condition is true. Entering switch case,Taking true branch,exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.deflaterLeak(), 1, RESOURCE_LEAK, [start of procedure deflaterLeak()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.fileInputStreamNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure fileInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamNotClosed(), 1, RESOURCE_LEAK, [start of procedure fileOutputStreamNotClosed()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamNotClosedAfterWrite(), 7, RESOURCE_LEAK, [start of procedure fileOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamOneLeak(), 2, RESOURCE_LEAK, [start of procedure fileOutputStreamOneLeak(),Taking true branch] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamTwoLeaks2(), 2, RESOURCE_LEAK, [start of procedure fileOutputStreamTwoLeaks2(),Taking true branch] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.fileOutputStreamTwoLeaks2(), 5, RESOURCE_LEAK, [start of procedure fileOutputStreamTwoLeaks2(),Taking true branch] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.inflaterLeak(), 1, RESOURCE_LEAK, [start of procedure inflaterLeak()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.jarInputStreamLeak(), 3, RESOURCE_LEAK, [start of procedure jarInputStreamLeak()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.jarOutputStreamLeak(), 3, RESOURCE_LEAK, [start of procedure jarOutputStreamLeak()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.nestedBad1(), 1, RESOURCE_LEAK, [start of procedure nestedBad1()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.nestedBad2(), 1, RESOURCE_LEAK, [start of procedure nestedBad2()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.nestedBadJarInputStream(File), 1, RESOURCE_LEAK, [start of procedure nestedBadJarInputStream(...)] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.nestedBadJarOutputStream(), 1, RESOURCE_LEAK, [start of procedure nestedBadJarOutputStream()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamClosedNestedBad(), 3, RESOURCE_LEAK, [start of procedure objectInputStreamClosedNestedBad()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamNotClosedAfterRead(), 3, RESOURCE_LEAK, [start of procedure objectInputStreamNotClosedAfterRead()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.objectInputStreamNotClosedAfterRead(), 6, RESOURCE_LEAK, [start of procedure objectInputStreamNotClosedAfterRead(),exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.objectOutputStreamClosedNestedBad(), 3, RESOURCE_LEAK, [start of procedure objectOutputStreamClosedNestedBad()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.objectOutputStreamNotClosedAfterWrite(), 4, RESOURCE_LEAK, [start of procedure objectOutputStreamNotClosedAfterWrite()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.objectOutputStreamNotClosedAfterWrite(), 7, RESOURCE_LEAK, [start of procedure objectOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.openHttpURLConnectionNotDisconnected(), 7, RESOURCE_LEAK, [start of procedure openHttpURLConnectionNotDisconnected()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.openHttpsURLConnectionNotDisconnected(), 3, RESOURCE_LEAK, [start of procedure openHttpsURLConnectionNotDisconnected()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.parseFromInputStreamAndLeak(JsonFactory), 5, RESOURCE_LEAK, [start of procedure parseFromInputStreamAndLeak(...)] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.pipedInputStreamNotClosedAfterRead(PipedOutputStream), 6, RESOURCE_LEAK, [start of procedure pipedInputStreamNotClosedAfterRead(...),exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.pipedOutputStreamNotClosedAfterWrite(), 7, RESOURCE_LEAK, [start of procedure pipedOutputStreamNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.scannerNotClosed(), 1, RESOURCE_LEAK, [start of procedure scannerNotClosed()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.serverSocketNotClosed(), 12, RESOURCE_LEAK, [start of procedure serverSocketNotClosed(),exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.socketNotClosed(), 1, RESOURCE_LEAK, [start of procedure socketNotClosed()] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.themeObtainTypedArrayAndLeak(Resources$Theme), 2, RESOURCE_LEAK, [start of procedure themeObtainTypedArrayAndLeak(...),start of procedure ignore(...),return from a call to void ResourceLeaks.ignore(Object)] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.twoResources(), 11, RESOURCE_LEAK, [start of procedure twoResources(),exception java.io.IOException,Switch condition is true. Entering switch case,Taking true branch,exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.twoResourcesRandomAccessFile(), 10, RESOURCE_LEAK, [start of procedure twoResourcesRandomAccessFile(),Taking true branch,exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.twoResourcesServerSocket(), 10, RESOURCE_LEAK, [start of procedure twoResourcesServerSocket(),Taking true branch,exception java.io.IOException] +codetoanalyze/java/infer/ResourceLeaks.java, void ResourceLeaks.zipFileLeakExceptionalBranch(), 5, RESOURCE_LEAK, [start of procedure zipFileLeakExceptionalBranch(),exception java.io.IOException,Switch condition is true. Entering switch case] +codetoanalyze/java/infer/TaintExample.java, InputStream TaintExample.socketIgnoreExceptionNoVerify(SSLSocketFactory), 9, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure socketIgnoreExceptionNoVerify(...),start of procedure throwExceptionIfNoVerify(...),Taking true branch,exception javax.net.ssl.SSLException,return from a call to void TaintExample.throwExceptionIfNoVerify(SSLSocket,String),Switch condition is true. Entering switch case] +codetoanalyze/java/infer/TaintExample.java, InputStream TaintExample.socketNotVerifiedSimple(SSLSocketFactory), 3, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure socketNotVerifiedSimple(...)] +codetoanalyze/java/infer/TaintExample.java, InputStream TaintExample.socketVerifiedForgotToCheckRetval(SSLSocketFactory,HostnameVerifier,SSLSession), 7, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure socketVerifiedForgotToCheckRetval(...)] +codetoanalyze/java/infer/TaintExample.java, InputStream TaintExample.taintingShouldNotPreventInference1(SSLSocketFactory), 4, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure taintingShouldNotPreventInference1(...),start of procedure socketNotVerifiedSimple(...),return from a call to InputStream TaintExample.socketNotVerifiedSimple(SSLSocketFactory)] +codetoanalyze/java/infer/TaintExample.java, InputStream TaintExample.taintingShouldNotPreventInference2(SSLSocketFactory), 3, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure taintingShouldNotPreventInference2(...),start of procedure callReadInputStreamCauseTaintError(...),start of procedure readInputStream(...),return from a call to InputStream TaintExample.readInputStream(Socket),return from a call to Socket TaintExample.callReadInputStreamCauseTaintError(SSLSocketFactory)] +codetoanalyze/java/infer/TaintExample.java, Socket TaintExample.callReadInputStreamCauseTaintError(SSLSocketFactory), 3, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure callReadInputStreamCauseTaintError(...)] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.contentValuesPutWithTaintedString(ContentValues,SharedPreferences,String,String), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure contentValuesPutWithTaintedString(...)] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethods1(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethods1(),start of procedure returnTaintedSourceModelMethods(),return from a call to Object TaintExample.returnTaintedSourceModelMethods()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethods2(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethods2()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethods3(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethods3(),start of procedure returnTaintedSourceModelMethods(),return from a call to Object TaintExample.returnTaintedSourceModelMethods()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethodsUndefined1(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethodsUndefined1(),start of procedure returnTaintedSourceModelMethodsUndefined(),return from a call to Object TaintExample.returnTaintedSourceModelMethodsUndefined()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethodsUndefined2(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethodsUndefined2()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethodsUndefined3(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure interprocTaintErrorWithModelMethodsUndefined3(),start of procedure returnTaintedSourceModelMethodsUndefined(),return from a call to Object TaintExample.returnTaintedSourceModelMethodsUndefined()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.simpleTaintErrorWithModelMethods(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure simpleTaintErrorWithModelMethods()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.simpleTaintErrorWithModelMethodsUndefined(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure simpleTaintErrorWithModelMethodsUndefined()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.testIntegritySinkAnnotReport(String), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testIntegritySinkAnnotReport(...),start of procedure integritySource(),return from a call to String TaintExample.integritySource()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.testIntegritySourceAnnot(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testIntegritySourceAnnot(),start of procedure integritySource(),return from a call to String TaintExample.integritySource()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.testIntegritySourceInstanceFieldAnnot(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testIntegritySourceInstanceFieldAnnot()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.testIntegritySourceStaticFieldAnnot(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testIntegritySourceStaticFieldAnnot()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.testPrivacySinkAnnot1(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySinkAnnot1(),start of procedure privacySource(),return from a call to String TaintExample.privacySource()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.testPrivacySinkAnnot3(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySinkAnnot3(),start of procedure privacySource(),return from a call to String TaintExample.privacySource()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.testPrivacySourceAnnot(), 1, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySourceAnnot(),start of procedure privacySource(),return from a call to String TaintExample.privacySource()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.testPrivacySourceFieldAnnotPropagation(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySourceFieldAnnotPropagation()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.testPrivacySourceInstanceFieldAnnot(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySourceInstanceFieldAnnot()] +codetoanalyze/java/infer/TaintExample.java, void TaintExample.testPrivacySourceStaticFieldAnnot(), 2, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testPrivacySourceStaticFieldAnnot()] +codetoanalyze/java/infer/WriterLeaks.java, void WriterLeaks.bufferedWriterNotClosedAfterWrite(), 7, RESOURCE_LEAK, [start of procedure bufferedWriterNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/WriterLeaks.java, void WriterLeaks.fileWriterNotClosedAfterWrite(), 6, RESOURCE_LEAK, [start of procedure fileWriterNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/WriterLeaks.java, void WriterLeaks.outputStreamWriterNotClosedAfterWrite(), 6, RESOURCE_LEAK, [start of procedure outputStreamWriterNotClosedAfterWrite(),exception java.io.IOException] +codetoanalyze/java/infer/WriterLeaks.java, void WriterLeaks.pipedWriterNotClosedAfterConnect(PipedReader), 7, RESOURCE_LEAK, [start of procedure pipedWriterNotClosedAfterConnect(...),exception java.io.IOException] +codetoanalyze/java/infer/WriterLeaks.java, void WriterLeaks.pipedWriterNotClosedAfterConstructedWithReader(), 8, RESOURCE_LEAK, [start of procedure pipedWriterNotClosedAfterConstructedWithReader(),exception java.io.IOException] +codetoanalyze/java/infer/WriterLeaks.java, void WriterLeaks.printWriterNotClosedAfterAppend(), 4, RESOURCE_LEAK, [start of procedure printWriterNotClosedAfterAppend()] +codetoanalyze/java/infer/WriterLeaks.java, void WriterLeaks.writerNotClosedAfterWrite(), 6, RESOURCE_LEAK, [start of procedure writerNotClosedAfterWrite(),exception java.io.IOException] diff --git a/infer/tests/build_systems/clang_translation/Makefile b/infer/tests/build_systems/clang_translation/Makefile index 3972b4aa4..0aad824ca 100644 --- a/infer/tests/build_systems/clang_translation/Makefile +++ b/infer/tests/build_systems/clang_translation/Makefile @@ -15,9 +15,9 @@ SYM_ROOT = ../codetoanalyze/clang_translation/tsrc_symlink SOURCES = \ $(ROOT)/main.cpp \ - $(ROOT)/main_default_root.cpp \ - $(SYM_ROOT)/main_symlink.cpp \ - $(SYM_ROOT)/main_default_symlink.cpp \ + $(ROOT)/main_default_root.cpp \ + $(SYM_ROOT)/main_symlink.cpp \ + $(SYM_ROOT)/main_default_symlink.cpp \ include $(TESTS_DIR)/clang-frontend.make @@ -27,10 +27,21 @@ compile: clang $(CLANG_OPTIONS) $(SOURCES) capture: - $(INFER_BIN) $(INFER_OPTIONS) --project-root $(ROOT) -- clang $(CLANG_OPTIONS) $(ROOT)/main.cpp - $(INFER_BIN) $(INFER_OPTIONS) --project-root $(SYM_ROOT) -- clang $(CLANG_OPTIONS) $(SYM_ROOT)/main_symlink.cpp - cd $(ROOT) && $(INFER_BIN) $(INFER_OPTIONS) -- clang $(CLANG_OPTIONS) main_default_root.cpp - cd $(SYM_ROOT) && $(INFER_BIN) $(INFER_OPTIONS) -- clang $(CLANG_OPTIONS) main_default_symlink.cpp + $(INFER_BIN) $(INFER_OPTIONS) --project-root $(ROOT) \ + --icfg-dotty-outfile $(ROOT)/main.cpp.test.dot -- \ + clang $(CLANG_OPTIONS) $(ROOT)/main.cpp + + $(INFER_BIN) $(INFER_OPTIONS) --project-root $(SYM_ROOT) \ + --icfg-dotty-outfile $(SYM_ROOT)/main_symlink.cpp.test.dot -- \ + clang $(CLANG_OPTIONS) $(SYM_ROOT)/main.cpp + + cd $(ROOT) && $(INFER_BIN) $(INFER_OPTIONS) \ + --icfg-dotty-outfile main_default_root.cpp.test.dot -- \ + clang $(CLANG_OPTIONS) main.cpp + + cd $(SYM_ROOT) && $(INFER_BIN) $(INFER_OPTIONS) \ + --icfg-dotty-outfile main_default_symlink.cpp.test.dot -- \ + clang $(CLANG_OPTIONS) main.cpp # test_extra needs to be separate target. Otherwise commands from test # target in common Makefile won't run diff --git a/infer/tests/build_systems/codetoanalyze/hello.c b/infer/tests/build_systems/codetoanalyze/hello.c deleted file mode 120000 index 2227f671f..000000000 --- a/infer/tests/build_systems/codetoanalyze/hello.c +++ /dev/null @@ -1 +0,0 @@ -../../../../examples/hello.c \ No newline at end of file diff --git a/infer/tests/build_systems/codetoanalyze/hello.c b/infer/tests/build_systems/codetoanalyze/hello.c new file mode 100644 index 000000000..a3c29e227 --- /dev/null +++ b/infer/tests/build_systems/codetoanalyze/hello.c @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2015 - present Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#include + +void test() { + int* s = NULL; + *s = 42; +} diff --git a/infer/tests/build_systems/codetoanalyze/hello.unknown_ext b/infer/tests/build_systems/codetoanalyze/hello.unknown_ext deleted file mode 120000 index 2227f671f..000000000 --- a/infer/tests/build_systems/codetoanalyze/hello.unknown_ext +++ /dev/null @@ -1 +0,0 @@ -../../../../examples/hello.c \ No newline at end of file diff --git a/infer/tests/build_systems/codetoanalyze/hello.unknown_ext b/infer/tests/build_systems/codetoanalyze/hello.unknown_ext new file mode 100644 index 000000000..a3c29e227 --- /dev/null +++ b/infer/tests/build_systems/codetoanalyze/hello.unknown_ext @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2015 - present Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#include + +void test() { + int* s = NULL; + *s = 42; +} diff --git a/infer/tests/build_systems/project_root_rel/Makefile b/infer/tests/build_systems/project_root_rel/Makefile index 5bb9df39c..88e8af7d6 100644 --- a/infer/tests/build_systems/project_root_rel/Makefile +++ b/infer/tests/build_systems/project_root_rel/Makefile @@ -9,7 +9,7 @@ TESTS_DIR = ../.. ANALYZER = infer CLANG_OPTIONS = -c -INFER_OPTIONS = --report-custom-error --developer-mode --project-root ../../../tests +INFER_OPTIONS = --report-custom-error --developer-mode --project-root $(TESTS_DIR) INFERPRINT_OPTIONS = --issues-tests SOURCES = \ diff --git a/infer/tests/codetoanalyze/c/errors/issues.exp b/infer/tests/codetoanalyze/c/errors/issues.exp index 550fbd948..56156838b 100644 --- a/infer/tests/codetoanalyze/c/errors/issues.exp +++ b/infer/tests/codetoanalyze/c/errors/issues.exp @@ -22,7 +22,6 @@ codetoanalyze/c/errors/dangling_deref/dpd.c, intraprocdpd, 3, UNINITIALIZED_VALU codetoanalyze/c/errors/dangling_deref/dpd.c, nodpd, 2, RETURN_VALUE_IGNORED codetoanalyze/c/errors/dangling_deref/dpd.c, nodpd1, 3, NULL_DEREFERENCE codetoanalyze/c/errors/dangling_deref/dpd.c, nodpd1, 3, RETURN_VALUE_IGNORED -codetoanalyze/c/errors/enumeration/other_enum.c, other_enum_test, 4, DIVIDE_BY_ZERO codetoanalyze/c/errors/initialization/compound_literal.c, divide_by_zero, 0, DIVIDE_BY_ZERO codetoanalyze/c/errors/initialization/initlistexpr.c, init_divide_by_zero, 2, Assert_failure codetoanalyze/c/errors/initialization/initlistexpr.c, init_divide_by_zero, 2, DIVIDE_BY_ZERO @@ -82,9 +81,10 @@ codetoanalyze/c/errors/null_dereference/short.c, g_error, 2, NULL_DEREFERENCE codetoanalyze/c/errors/null_dereference/short.c, g_error, 2, NULL_TEST_AFTER_DEREFERENCE codetoanalyze/c/errors/null_dereference/short.c, l_error, 2, NULL_DEREFERENCE codetoanalyze/c/errors/null_dereference/short.c, m, 2, NULL_TEST_AFTER_DEREFERENCE -codetoanalyze/c/errors/offsetof_expr/offsetof_expr.c, test_offsetof_expr, 3, DIVIDE_BY_ZERO -codetoanalyze/c/errors/offsetof_expr/offsetof_expr.c, test_offsetof_expr, 5, DIVIDE_BY_ZERO codetoanalyze/c/errors/resource_leaks/leak.c, fileNotClosed, 5, RESOURCE_LEAK codetoanalyze/c/errors/resource_leaks/leak.c, socketNotClosed, 5, RESOURCE_LEAK -codetoanalyze/c/errors/vaarg_expr/vaarg_expr.c, vaarg_foo, 6, DIVIDE_BY_ZERO -codetoanalyze/c/errors/vaarg_expr/vaarg_expr.c, vaarg_foo, 8, DIVIDE_BY_ZERO +codetoanalyze/c/frontend/enumeration/other_enum.c, other_enum_test, 4, DIVIDE_BY_ZERO +codetoanalyze/c/frontend/offsetof_expr/offsetof_expr.c, test_offsetof_expr, 3, DIVIDE_BY_ZERO +codetoanalyze/c/frontend/offsetof_expr/offsetof_expr.c, test_offsetof_expr, 5, DIVIDE_BY_ZERO +codetoanalyze/c/frontend/vaarg_expr/vaarg_expr.c, vaarg_foo, 6, DIVIDE_BY_ZERO +codetoanalyze/c/frontend/vaarg_expr/vaarg_expr.c, vaarg_foo, 8, DIVIDE_BY_ZERO diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.cpp b/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.cpp deleted file mode 120000 index 68d1b814d..000000000 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.cpp +++ /dev/null @@ -1 +0,0 @@ -assign_in_condition.c \ No newline at end of file diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_with_increment.cpp b/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_with_increment.cpp deleted file mode 120000 index 4ae435508..000000000 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_with_increment.cpp +++ /dev/null @@ -1 +0,0 @@ -assign_with_increment.c \ No newline at end of file diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.cpp b/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.cpp deleted file mode 120000 index 4aa4c6033..000000000 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.cpp +++ /dev/null @@ -1 +0,0 @@ -union.c \ No newline at end of file diff --git a/infer/tests/codetoanalyze/cpp/errors/issues.exp b/infer/tests/codetoanalyze/cpp/errors/issues.exp index 49036faf1..a238582fe 100644 --- a/infer/tests/codetoanalyze/cpp/errors/issues.exp +++ b/infer/tests/codetoanalyze/cpp/errors/issues.exp @@ -40,170 +40,6 @@ codetoanalyze/cpp/errors/numeric/min_max.cpp, min_X_div0, 2, DIVIDE_BY_ZERO, [st codetoanalyze/cpp/errors/numeric/min_max.cpp, min_int_div0, 0, DIVIDE_BY_ZERO, [start of procedure min_int_div0()] codetoanalyze/cpp/errors/overwrite_attribute/main.cpp, testSetIntValue, 3, DIVIDE_BY_ZERO, [start of procedure testSetIntValue(),start of procedure setIntValue(),return from a call to setIntValue] codetoanalyze/cpp/errors/resource_leaks/raii.cpp, resource_leak, 7, RESOURCE_LEAK, [start of procedure resource_leak(),Condition is false] -codetoanalyze/cpp/errors/shared/attributes/deprecated_hack.cpp, derefFirstArg2_null_deref, 2, NULL_DEREFERENCE, [start of procedure derefFirstArg2_null_deref()] -codetoanalyze/cpp/errors/shared/attributes/deprecated_hack.cpp, derefFirstArg3_null_deref, 2, NULL_DEREFERENCE, [start of procedure derefFirstArg3_null_deref(),start of procedure derefFirstArg3()] -codetoanalyze/cpp/errors/shared/attributes/deprecated_hack.cpp, derefFirstArg_null_deref, 2, NULL_DEREFERENCE, [start of procedure derefFirstArg_null_deref()] -codetoanalyze/cpp/errors/shared/attributes/deprecated_hack.cpp, getPtr_null_deref1, 3, NULL_DEREFERENCE, [start of procedure getPtr_null_deref1(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] -codetoanalyze/cpp/errors/shared/attributes/deprecated_hack.cpp, getPtr_null_deref2, 3, NULL_DEREFERENCE, [start of procedure getPtr_null_deref2(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] -codetoanalyze/cpp/errors/shared/attributes/deprecated_hack.cpp, getRef_null_deref1, 3, NULL_DEREFERENCE, [start of procedure getRef_null_deref1(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] -codetoanalyze/cpp/errors/shared/attributes/deprecated_hack.cpp, getRef_null_deref2, 3, NULL_DEREFERENCE, [start of procedure getRef_null_deref2(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] -codetoanalyze/cpp/errors/shared/attributes/deprecated_hack.cpp, operator_star_null_deref1, 3, NULL_DEREFERENCE, [start of procedure operator_star_null_deref1(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] -codetoanalyze/cpp/errors/shared/attributes/deprecated_hack.cpp, operator_star_null_deref2, 3, NULL_DEREFERENCE, [start of procedure operator_star_null_deref2(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] -codetoanalyze/cpp/errors/shared/attributes/deprecated_hack.cpp, operator_star_ok_deref, 4, UNINITIALIZED_VALUE, [start of procedure operator_star_ok_deref(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] -codetoanalyze/cpp/errors/shared/conditional/lvalue_conditional.cpp, div0_assign_conditional, 0, DIVIDE_BY_ZERO, [start of procedure div0_assign_conditional(),start of procedure assign_conditional(),Condition is false,return from a call to assign_conditional] -codetoanalyze/cpp/errors/shared/conditional/lvalue_conditional.cpp, div0_choose_lvalue, 0, DIVIDE_BY_ZERO, [start of procedure div0_choose_lvalue(),start of procedure choose_lvalue(),Condition is true,return from a call to choose_lvalue] -codetoanalyze/cpp/errors/shared/conditional/lvalue_conditional.cpp, div0_choose_rvalue, 0, DIVIDE_BY_ZERO, [start of procedure div0_choose_rvalue(),start of procedure choose_rvalue(),Condition is true,return from a call to choose_rvalue] -codetoanalyze/cpp/errors/shared/conditional/lvalue_conditional.cpp, div0_temp_lvalue, 0, DIVIDE_BY_ZERO, [start of procedure div0_temp_lvalue(),start of procedure div_temp_lvalue(),Condition is true] -codetoanalyze/cpp/errors/shared/constructors/constructor_init.cpp, delegate_constr_f2_div0, 3, DIVIDE_BY_ZERO, [start of procedure delegate_constr_f2_div0(),start of procedure B,start of procedure B,start of procedure A,return from a call to A_A,start of procedure T,return from a call to B::T_T,return from a call to B_B,return from a call to B_B] -codetoanalyze/cpp/errors/shared/constructors/constructor_init.cpp, delegate_constr_f_div0, 3, DIVIDE_BY_ZERO, [start of procedure delegate_constr_f_div0(),start of procedure B,start of procedure B,start of procedure A,return from a call to A_A,start of procedure T,return from a call to B::T_T,return from a call to B_B,return from a call to B_B] -codetoanalyze/cpp/errors/shared/constructors/constructor_init.cpp, f2_div0, 2, DIVIDE_BY_ZERO, [start of procedure f2_div0(),start of procedure B,start of procedure A,return from a call to A_A,start of procedure T,return from a call to B::T_T,return from a call to B_B] -codetoanalyze/cpp/errors/shared/constructors/constructor_init.cpp, f_div0, 2, DIVIDE_BY_ZERO, [start of procedure f_div0(),start of procedure B,start of procedure A,return from a call to A_A,start of procedure T,return from a call to B::T_T,return from a call to B_B] -codetoanalyze/cpp/errors/shared/constructors/constructor_init.cpp, t_div0, 2, DIVIDE_BY_ZERO, [start of procedure t_div0(),start of procedure B,start of procedure A,return from a call to A_A,start of procedure T,return from a call to B::T_T,return from a call to B_B] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::array_of_class_with_not_constant_size, 1, MEMORY_LEAK, [start of procedure constructor_new::array_of_class_with_not_constant_size(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is true] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::array_of_person_with_constant_size, 0, MEMORY_LEAK, [start of procedure constructor_new::array_of_person_with_constant_size(),start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::constructor_1_arg_new_div0, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::constructor_1_arg_new_div0(),start of procedure Person,return from a call to constructor_new::Person_Person] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::constructor_1_arg_new_div0, 2, MEMORY_LEAK, [start of procedure constructor_new::constructor_1_arg_new_div0(),start of procedure Person,return from a call to constructor_new::Person_Person] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::constructor_3_args_new_div0, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::constructor_3_args_new_div0(),start of procedure Person,return from a call to constructor_new::Person_Person] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::constructor_3_args_new_div0, 2, MEMORY_LEAK, [start of procedure constructor_new::constructor_3_args_new_div0(),start of procedure Person,return from a call to constructor_new::Person_Person] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::constructor_nodes, 3, DIVIDE_BY_ZERO, [start of procedure constructor_new::constructor_nodes(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is false,start of procedure Person,return from a call to constructor_new::Person_Person] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::constructor_nodes, 3, MEMORY_LEAK, [start of procedure constructor_new::constructor_nodes(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is false,start of procedure Person,return from a call to constructor_new::Person_Person] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::float_init_number, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::float_init_number()] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::float_init_number, 2, MEMORY_LEAK, [start of procedure constructor_new::float_init_number()] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_array, 4, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_array(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is true,start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_array, 4, MEMORY_LEAK, [start of procedure constructor_new::int_array(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is true,start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_array_init, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_array_init()] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_array_init, 2, MEMORY_LEAK, [start of procedure constructor_new::int_array_init()] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_init_empty, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_init_empty()] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_init_empty, 2, MEMORY_LEAK, [start of procedure constructor_new::int_init_empty()] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_init_empty_list, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_init_empty_list()] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_init_empty_list_new, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_init_empty_list_new()] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_init_empty_list_new, 2, MEMORY_LEAK, [start of procedure constructor_new::int_init_empty_list_new()] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_init_nodes, 3, MEMORY_LEAK, [start of procedure constructor_new::int_init_nodes(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is false] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_init_nodes, 4, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_init_nodes(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is false] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_init_nodes, 4, MEMORY_LEAK, [start of procedure constructor_new::int_init_nodes(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is false] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_init_number, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_init_number()] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::int_init_number, 2, MEMORY_LEAK, [start of procedure constructor_new::int_init_number()] -codetoanalyze/cpp/errors/shared/constructors/constructor_new.cpp, constructor_new::matrix_of_person, 2, MEMORY_LEAK, [start of procedure constructor_new::matrix_of_person(),start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person] -codetoanalyze/cpp/errors/shared/constructors/constructor_with_body.cpp, constructor_with_body::test_div0, 2, DIVIDE_BY_ZERO, [start of procedure constructor_with_body::test_div0(),start of procedure X,start of procedure init,return from a call to constructor_with_body::X_init,return from a call to constructor_with_body::X_X,start of procedure div] -codetoanalyze/cpp/errors/shared/constructors/constructor_with_body.cpp, constructor_with_body::test_div0_default_constructor, 2, DIVIDE_BY_ZERO, [start of procedure constructor_with_body::test_div0_default_constructor(),start of procedure X,start of procedure init,return from a call to constructor_with_body::X_init,return from a call to constructor_with_body::X_X,start of procedure div] -codetoanalyze/cpp/errors/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::copyX_div0, 4, DIVIDE_BY_ZERO, [start of procedure copy_move_constructor::copyX_div0(),start of procedure X,return from a call to copy_move_constructor::X_X,start of procedure X,return from a call to copy_move_constructor::X_X] -codetoanalyze/cpp/errors/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::copyY_div0, 4, DIVIDE_BY_ZERO, [start of procedure copy_move_constructor::copyY_div0(),start of procedure Y,return from a call to copy_move_constructor::Y_Y,start of procedure Y,return from a call to copy_move_constructor::Y_Y] -codetoanalyze/cpp/errors/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveX_div0, 0, DIVIDE_BY_ZERO, [start of procedure copy_move_constructor::moveX_div0(),start of procedure copy_move_constructor::getX(),start of procedure X,return from a call to copy_move_constructor::X_X,start of procedure X,return from a call to copy_move_constructor::X_X,return from a call to copy_move_constructor::getX] -codetoanalyze/cpp/errors/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveY_div0, 0, DIVIDE_BY_ZERO, [start of procedure copy_move_constructor::moveY_div0(),start of procedure copy_move_constructor::getY(),start of procedure Y,return from a call to copy_move_constructor::Y_Y,start of procedure Y,return from a call to copy_move_constructor::Y_Y,return from a call to copy_move_constructor::getY] -codetoanalyze/cpp/errors/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveY_moveY_copyY_div0, 3, DIVIDE_BY_ZERO, [start of procedure copy_move_constructor::moveY_moveY_copyY_div0(),start of procedure copy_move_constructor::getY(),start of procedure Y,return from a call to copy_move_constructor::Y_Y,start of procedure Y,return from a call to copy_move_constructor::Y_Y,return from a call to copy_move_constructor::getY,start of procedure Y,return from a call to copy_move_constructor::Y_Y,start of procedure Y,return from a call to copy_move_constructor::Y_Y] -codetoanalyze/cpp/errors/shared/constructors/temp_object.cpp, temp_object::assign_temp_div0, 2, DIVIDE_BY_ZERO, [start of procedure temp_object::assign_temp_div0(),start of procedure X,return from a call to temp_object::X_X,start of procedure X,return from a call to temp_object::X_X,start of procedure div] -codetoanalyze/cpp/errors/shared/constructors/temp_object.cpp, temp_object::getX_field_div0, 0, DIVIDE_BY_ZERO, [start of procedure temp_object::getX_field_div0(),start of procedure temp_object::getX(),start of procedure X,return from a call to temp_object::X_X,start of procedure X,return from a call to temp_object::X_X,return from a call to temp_object::getX,start of procedure temp_object::div()] -codetoanalyze/cpp/errors/shared/constructors/temp_object.cpp, temp_object::getX_method_div0, 0, DIVIDE_BY_ZERO, [start of procedure temp_object::getX_method_div0(),start of procedure temp_object::getX(),start of procedure X,return from a call to temp_object::X_X,start of procedure X,return from a call to temp_object::X_X,return from a call to temp_object::getX,start of procedure div] -codetoanalyze/cpp/errors/shared/constructors/temp_object.cpp, temp_object::temp_field2_div0, 0, DIVIDE_BY_ZERO, [start of procedure temp_object::temp_field2_div0(),start of procedure X,return from a call to temp_object::X_X,start of procedure temp_object::div()] -codetoanalyze/cpp/errors/shared/constructors/temp_object.cpp, temp_object::temp_field_div0, 0, DIVIDE_BY_ZERO, [start of procedure temp_object::temp_field_div0(),start of procedure X,return from a call to temp_object::X_X,start of procedure temp_object::div()] -codetoanalyze/cpp/errors/shared/constructors/temp_object.cpp, temp_object::temp_method_div0, 0, DIVIDE_BY_ZERO, [start of procedure temp_object::temp_method_div0(),start of procedure X,return from a call to temp_object::X_X,start of procedure div] -codetoanalyze/cpp/errors/shared/exceptions/Exceptions.cpp, call_deref_with_null, 0, NULL_DEREFERENCE, [start of procedure call_deref_with_null(),start of procedure deref_null()] -codetoanalyze/cpp/errors/shared/lambda/lambda1.cpp, bar, 5, DIVIDE_BY_ZERO, [start of procedure bar(),start of procedure ,return from a call to bar::lambda_shared_lambda_lambda1.cpp:11:15_,start of procedure operator(),return from a call to bar::lambda_shared_lambda_lambda1.cpp:11:15_operator()] -codetoanalyze/cpp/errors/shared/lambda/lambda1.cpp, foo, 3, DIVIDE_BY_ZERO, [start of procedure foo(),start of procedure ,return from a call to foo::lambda_shared_lambda_lambda1.cpp:19:17_,start of procedure ,return from a call to foo::lambda_shared_lambda_lambda1.cpp:20:12_,start of procedure operator(),return from a call to foo::lambda_shared_lambda_lambda1.cpp:20:12_operator()] -codetoanalyze/cpp/errors/shared/lambda/lambda1.cpp, foo::lambda_shared_lambda_lambda1.cpp:19:17_operator(), 0, DIVIDE_BY_ZERO, [start of procedure operator()] -codetoanalyze/cpp/errors/shared/methods/conversion_operator.cpp, conversion_operator::branch_div0, 4, DIVIDE_BY_ZERO, [start of procedure conversion_operator::branch_div0(),start of procedure X,return from a call to conversion_operator::X_X,start of procedure operator_bool,return from a call to conversion_operator::X_operator_bool,Condition is true,start of procedure operator_int,return from a call to conversion_operator::X_operator_int] -codetoanalyze/cpp/errors/shared/methods/conversion_operator.cpp, conversion_operator::y_branch_div0, 6, DIVIDE_BY_ZERO, [start of procedure conversion_operator::y_branch_div0(),start of procedure Y,return from a call to conversion_operator::Y_Y,start of procedure operator_X,start of procedure X,return from a call to conversion_operator::X_X,start of procedure X,return from a call to conversion_operator::X_X,return from a call to conversion_operator::Y_operator_X,start of procedure X,return from a call to conversion_operator::X_X,start of procedure operator_bool,return from a call to conversion_operator::X_operator_bool,Condition is true,start of procedure operator_X,start of procedure X,return from a call to conversion_operator::X_X,start of procedure X,return from a call to conversion_operator::X_X,return from a call to conversion_operator::Y_operator_X,start of procedure X,return from a call to conversion_operator::X_X,start of procedure operator_int,return from a call to conversion_operator::X_operator_int] -codetoanalyze/cpp/errors/shared/methods/static.cpp, div0_class, 0, DIVIDE_BY_ZERO, [start of procedure div0_class(),start of procedure fun] -codetoanalyze/cpp/errors/shared/methods/static.cpp, div0_instance, 2, DIVIDE_BY_ZERO, [start of procedure div0_instance(),start of procedure fun] -codetoanalyze/cpp/errors/shared/methods/virtual_methods.cpp, poly_area, 3, DIVIDE_BY_ZERO, [start of procedure poly_area(),start of procedure Polygon,return from a call to Polygon_Polygon,start of procedure area,return from a call to Polygon_area] -codetoanalyze/cpp/errors/shared/methods/virtual_methods.cpp, rect_area, 4, DIVIDE_BY_ZERO, [start of procedure rect_area(),start of procedure Rectangle,start of procedure Polygon,return from a call to Polygon_Polygon,return from a call to Rectangle_Rectangle,start of procedure set_values,return from a call to Polygon_set_values,start of procedure area,return from a call to Rectangle_area] -codetoanalyze/cpp/errors/shared/methods/virtual_methods.cpp, tri_area, 5, DIVIDE_BY_ZERO, [start of procedure tri_area(),start of procedure Triangle,start of procedure Polygon,return from a call to Polygon_Polygon,return from a call to Triangle_Triangle,start of procedure Polygon,return from a call to Polygon_Polygon,start of procedure set_values,return from a call to Polygon_set_values,start of procedure area,return from a call to Triangle_area] -codetoanalyze/cpp/errors/shared/methods/virtual_methods.cpp, tri_not_virtual_area, 5, DIVIDE_BY_ZERO, [start of procedure tri_not_virtual_area(),start of procedure Triangle,start of procedure Polygon,return from a call to Polygon_Polygon,return from a call to Triangle_Triangle,start of procedure Polygon,return from a call to Polygon_Polygon,start of procedure set_values,return from a call to Polygon_set_values,start of procedure area,return from a call to Polygon_area] -codetoanalyze/cpp/errors/shared/namespace/function.cpp, div0_namespace_resolution, 0, DIVIDE_BY_ZERO, [start of procedure div0_namespace_resolution(),start of procedure f1::get(),return from a call to f1::get,start of procedure f2::get(),return from a call to f2::get] -codetoanalyze/cpp/errors/shared/namespace/function.cpp, div0_using, 2, DIVIDE_BY_ZERO, [start of procedure div0_using(),start of procedure f1::get0(),return from a call to f1::get0] -codetoanalyze/cpp/errors/shared/namespace/global_variable.cpp, div0_namepace_res, 3, DIVIDE_BY_ZERO, [start of procedure div0_namepace_res()] -codetoanalyze/cpp/errors/shared/namespace/global_variable.cpp, div0_static_field, 3, DIVIDE_BY_ZERO, [start of procedure div0_static_field()] -codetoanalyze/cpp/errors/shared/namespace/global_variable.cpp, div0_static_field_member_access, 3, DIVIDE_BY_ZERO, [start of procedure div0_static_field_member_access()] -codetoanalyze/cpp/errors/shared/nestedoperators/var_decl_inside_if.cpp, conditional_init_div0, 2, DIVIDE_BY_ZERO, [start of procedure conditional_init_div0(),Condition is true,Condition is true] -codetoanalyze/cpp/errors/shared/nestedoperators/var_decl_inside_if.cpp, function_call_init_div0, 2, DIVIDE_BY_ZERO, [start of procedure function_call_init_div0(),start of procedure get1(),return from a call to get1,Condition is true] -codetoanalyze/cpp/errors/shared/nestedoperators/var_decl_inside_if.cpp, reference_init_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_init_div0(),Condition is true] -codetoanalyze/cpp/errors/shared/nestedoperators/var_decl_inside_if.cpp, simple_inif_elseif_div0, 6, DIVIDE_BY_ZERO, [start of procedure simple_inif_elseif_div0(),Condition is false,Condition is false] -codetoanalyze/cpp/errors/shared/nestedoperators/var_decl_inside_if.cpp, simple_init_div0, 4, DIVIDE_BY_ZERO, [start of procedure simple_init_div0(),Condition is false] -codetoanalyze/cpp/errors/shared/nestedoperators/var_decl_inside_if.cpp, simple_init_null_deref, 4, NULL_DEREFERENCE, [start of procedure simple_init_null_deref(),Condition is false] -codetoanalyze/cpp/errors/shared/npe/method_call.cpp, npe_call, 2, NULL_DEREFERENCE, [start of procedure npe_call()] -codetoanalyze/cpp/errors/shared/npe/method_call.cpp, npe_call_after_call, 0, NULL_DEREFERENCE, [start of procedure npe_call_after_call(),start of procedure getX(),return from a call to getX] -codetoanalyze/cpp/errors/shared/npe/method_call.cpp, npe_call_with_forward_declaration, 1, NULL_DEREFERENCE, [start of procedure npe_call_with_forward_declaration(),start of procedure call_with_forward_declaration()] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::ptr_F_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ptr_F_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ptr,return from a call to reference_field::Ptr_Ptr] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::ptr_I_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ptr_I_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ptr,return from a call to reference_field::Ptr_Ptr] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::ptr_getF_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ptr_getF_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ptr,return from a call to reference_field::Ptr_Ptr,start of procedure getF,return from a call to reference_field::Ptr_getF] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::ptr_getI_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ptr_getI_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ptr,return from a call to reference_field::Ptr_Ptr,start of procedure getI,return from a call to reference_field::Ptr_getI] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::ref_F_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ref_F_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ref,return from a call to reference_field::Ref_Ref] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::ref_I_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ref_I_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ref,return from a call to reference_field::Ref_Ref] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::ref_getF_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ref_getF_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ref,return from a call to reference_field::Ref_Ref,start of procedure getF,return from a call to reference_field::Ref_getF] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::ref_getI_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ref_getI_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ref,return from a call to reference_field::Ref_Ref,start of procedure getI,return from a call to reference_field::Ref_getI] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::val_F_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::val_F_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Val,start of procedure X,return from a call to reference_field::X_X,return from a call to reference_field::Val_Val] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::val_I_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::val_I_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Val,start of procedure X,return from a call to reference_field::X_X,return from a call to reference_field::Val_Val] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::val_getF_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::val_getF_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Val,start of procedure X,return from a call to reference_field::X_X,return from a call to reference_field::Val_Val,start of procedure getF,return from a call to reference_field::Val_getF] -codetoanalyze/cpp/errors/shared/reference/reference_field.cpp, reference_field::val_getI_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::val_getI_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Val,start of procedure X,return from a call to reference_field::X_X,return from a call to reference_field::Val_Val,start of procedure getI,return from a call to reference_field::Val_getI] -codetoanalyze/cpp/errors/shared/reference/reference_struct_e2e.cpp, field_div0_ptr, 3, DIVIDE_BY_ZERO, [start of procedure field_div0_ptr(),Condition is true,start of procedure set_field_ptr(),return from a call to set_field_ptr,start of procedure div] -codetoanalyze/cpp/errors/shared/reference/reference_struct_e2e.cpp, field_div0_ref, 2, DIVIDE_BY_ZERO, [start of procedure field_div0_ref(),start of procedure set_field_ref(),return from a call to set_field_ref,start of procedure div] -codetoanalyze/cpp/errors/shared/reference/reference_struct_e2e.cpp, get_global_ptr_div0_field, 3, DIVIDE_BY_ZERO, [start of procedure get_global_ptr_div0_field(),start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure nonzero,return from a call to X_nonzero,start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure div] -codetoanalyze/cpp/errors/shared/reference/reference_struct_e2e.cpp, get_global_ptr_div0_method, 3, DIVIDE_BY_ZERO, [start of procedure get_global_ptr_div0_method(),start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure zero,return from a call to X_zero,start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure div] -codetoanalyze/cpp/errors/shared/reference/reference_struct_e2e.cpp, get_global_ref_div0_field, 3, DIVIDE_BY_ZERO, [start of procedure get_global_ref_div0_field(),start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure nonzero,return from a call to X_nonzero,start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure div] -codetoanalyze/cpp/errors/shared/reference/reference_struct_e2e.cpp, get_global_ref_div0_method, 3, DIVIDE_BY_ZERO, [start of procedure get_global_ref_div0_method(),start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure zero,return from a call to X_zero,start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure div] -codetoanalyze/cpp/errors/shared/reference/reference_struct_e2e.cpp, method_div0_ptr, 3, DIVIDE_BY_ZERO, [start of procedure method_div0_ptr(),Condition is true,start of procedure zero_ptr(),start of procedure zero,return from a call to X_zero,return from a call to zero_ptr,start of procedure div] -codetoanalyze/cpp/errors/shared/reference/reference_struct_e2e.cpp, method_div0_ref, 2, DIVIDE_BY_ZERO, [start of procedure method_div0_ref(),start of procedure zero_ref(),start of procedure zero,return from a call to X_zero,return from a call to zero_ref,start of procedure div] -codetoanalyze/cpp/errors/shared/reference/reference_type_e2e.cpp, ptr_div0, 4, DIVIDE_BY_ZERO, [start of procedure ptr_div0()] -codetoanalyze/cpp/errors/shared/reference/reference_type_e2e.cpp, ptr_div0_function, 3, DIVIDE_BY_ZERO, [start of procedure ptr_div0_function(),start of procedure zero_ptr(),return from a call to zero_ptr] -codetoanalyze/cpp/errors/shared/reference/reference_type_e2e.cpp, ptr_div0_function_temp_var, 4, DIVIDE_BY_ZERO, [start of procedure ptr_div0_function_temp_var(),start of procedure zero_ptr(),return from a call to zero_ptr] -codetoanalyze/cpp/errors/shared/reference/reference_type_e2e.cpp, ref_div0, 4, DIVIDE_BY_ZERO, [start of procedure ref_div0()] -codetoanalyze/cpp/errors/shared/reference/reference_type_e2e.cpp, ref_div0_function, 3, DIVIDE_BY_ZERO, [start of procedure ref_div0_function(),start of procedure zero_ref(),return from a call to zero_ref] -codetoanalyze/cpp/errors/shared/reference/reference_type_e2e.cpp, ref_div0_function_temp_var, 4, DIVIDE_BY_ZERO, [start of procedure ref_div0_function_temp_var(),start of procedure zero_ref(),return from a call to zero_ref] -codetoanalyze/cpp/errors/shared/reference/reference_type_e2e.cpp, ref_div0_nested_assignment, 6, DIVIDE_BY_ZERO, [start of procedure ref_div0_nested_assignment()] -codetoanalyze/cpp/errors/shared/reference/temporary_lvalue.cpp, div0_function_param_cast, 0, DIVIDE_BY_ZERO, [start of procedure div0_function_param_cast(),start of procedure div()] -codetoanalyze/cpp/errors/shared/reference/temporary_lvalue.cpp, div0_init_expr, 2, DIVIDE_BY_ZERO, [start of procedure div0_init_expr(),start of procedure div()] -codetoanalyze/cpp/errors/shared/reference/temporary_lvalue.cpp, div0_no_const_ref, 2, DIVIDE_BY_ZERO, [start of procedure div0_no_const_ref(),start of procedure div()] -codetoanalyze/cpp/errors/shared/templates/class_template_instantiate.cpp, ExecStore_call_div, 2, DIVIDE_BY_ZERO, [start of procedure call_div,start of procedure div] -codetoanalyze/cpp/errors/shared/templates/class_template_instantiate.cpp, choose1_div0, 0, DIVIDE_BY_ZERO, [start of procedure choose1_div0(),start of procedure call_div,start of procedure div] -codetoanalyze/cpp/errors/shared/templates/class_template_instantiate.cpp, choose2_div0_extra, 0, DIVIDE_BY_ZERO, [start of procedure choose2_div0_extra(),start of procedure extra] -codetoanalyze/cpp/errors/shared/templates/function.cpp, function::createAndDiv, 1, DIVIDE_BY_ZERO, [start of procedure function::createAndDiv(),start of procedure function::createAndGetVal(),start of procedure X3,return from a call to function::X3_X3,start of procedure function::getVal(),start of procedure get,return from a call to function::X3_get,return from a call to function::getVal,return from a call to function::createAndGetVal] -codetoanalyze/cpp/errors/shared/templates/function.cpp, function::div0_create_and_get_val, 1, DIVIDE_BY_ZERO, [start of procedure function::div0_create_and_get_val(),start of procedure function::createAndGetVal(),start of procedure X1,return from a call to function::X1_X1,start of procedure function::getVal(),start of procedure getVal,return from a call to function::X1_getVal,return from a call to function::getVal,return from a call to function::createAndGetVal,start of procedure function::createAndGetVal(),start of procedure X3,return from a call to function::X3_X3,start of procedure function::getVal(),start of procedure get,return from a call to function::X3_get,return from a call to function::getVal,return from a call to function::createAndGetVal] -codetoanalyze/cpp/errors/shared/templates/function.cpp, function::div0_get_val, 3, DIVIDE_BY_ZERO, [start of procedure function::div0_get_val(),start of procedure X1,return from a call to function::X1_X1,start of procedure X3,return from a call to function::X3_X3,start of procedure function::getVal(),start of procedure getVal,return from a call to function::X1_getVal,return from a call to function::getVal,start of procedure function::getVal(),start of procedure get,return from a call to function::X3_get,return from a call to function::getVal] -codetoanalyze/cpp/errors/shared/templates/function_pack.cpp, div0_10args, 0, DIVIDE_BY_ZERO, [start of procedure div0_10args()] -codetoanalyze/cpp/errors/shared/templates/function_pack.cpp, div0_1arg, 0, DIVIDE_BY_ZERO, [start of procedure div0_1arg(),start of procedure div()] -codetoanalyze/cpp/errors/shared/templates/function_pack.cpp, div0_3args1, 0, DIVIDE_BY_ZERO, [start of procedure div0_3args1()] -codetoanalyze/cpp/errors/shared/templates/function_pack.cpp, div0_3args2, 0, DIVIDE_BY_ZERO, [start of procedure div0_3args2()] -codetoanalyze/cpp/errors/shared/templates/function_pack.cpp, div0_3args3, 0, DIVIDE_BY_ZERO, [start of procedure div0_3args3(),start of procedure div(),start of procedure div(),start of procedure div()] -codetoanalyze/cpp/errors/shared/templates/function_pack.cpp, div0_3args4, 0, DIVIDE_BY_ZERO, [start of procedure div0_3args4(),start of procedure div(),start of procedure div(),start of procedure div()] -codetoanalyze/cpp/errors/shared/templates/method.cpp, method::div0_getter, 3, DIVIDE_BY_ZERO, [start of procedure method::div0_getter(),start of procedure X2,return from a call to method::X2_X2,start of procedure Getter,return from a call to method::Getter_Getter,start of procedure get,start of procedure get,return from a call to method::X2_get,return from a call to method::Getter_get] -codetoanalyze/cpp/errors/shared/templates/method.cpp, method::div0_getter_templ, 4, DIVIDE_BY_ZERO, [start of procedure method::div0_getter_templ(),start of procedure X2,return from a call to method::X2_X2,start of procedure X3,return from a call to method::X3_X3,start of procedure GetterTempl,return from a call to method::GetterTempl_GetterTempl,start of procedure get,start of procedure get,return from a call to method::X3_get,start of procedure get,return from a call to method::X2_get,return from a call to method::GetterTempl_get] -codetoanalyze/cpp/errors/shared/templates/method.cpp, method::div0_getter_templ2, 4, DIVIDE_BY_ZERO, [start of procedure method::div0_getter_templ2(),start of procedure X2,return from a call to method::X2_X2,start of procedure X2,return from a call to method::X2_X2,start of procedure GetterTempl,return from a call to method::GetterTempl_GetterTempl,start of procedure get,start of procedure get,return from a call to method::X2_get,start of procedure get,return from a call to method::X2_get,return from a call to method::GetterTempl_get] -codetoanalyze/cpp/errors/shared/types/inheritance_field.cpp, div0_b1, 2, DIVIDE_BY_ZERO, [start of procedure div0_b1()] -codetoanalyze/cpp/errors/shared/types/inheritance_field.cpp, div0_b1_s, 3, DIVIDE_BY_ZERO, [start of procedure div0_b1_s()] -codetoanalyze/cpp/errors/shared/types/inheritance_field.cpp, div0_b2, 2, DIVIDE_BY_ZERO, [start of procedure div0_b2()] -codetoanalyze/cpp/errors/shared/types/inheritance_field.cpp, div0_cast, 3, DIVIDE_BY_ZERO, [start of procedure div0_cast()] -codetoanalyze/cpp/errors/shared/types/inheritance_field.cpp, div0_cast_ref, 3, DIVIDE_BY_ZERO, [start of procedure div0_cast_ref()] -codetoanalyze/cpp/errors/shared/types/inheritance_field.cpp, div0_s, 2, DIVIDE_BY_ZERO, [start of procedure div0_s()] -codetoanalyze/cpp/errors/shared/types/inheritance_field.cpp, div0_s_b1, 3, DIVIDE_BY_ZERO, [start of procedure div0_s_b1()] -codetoanalyze/cpp/errors/shared/types/operator_overload.cpp, div0_function_op, 3, DIVIDE_BY_ZERO, [start of procedure div0_function_op(),start of procedure operator*(),return from a call to operator*] -codetoanalyze/cpp/errors/shared/types/operator_overload.cpp, div0_inheritted_op, 2, DIVIDE_BY_ZERO, [start of procedure div0_inheritted_op(),start of procedure operator[],return from a call to X_operator[]] -codetoanalyze/cpp/errors/shared/types/operator_overload.cpp, div0_method, 3, DIVIDE_BY_ZERO, [start of procedure div0_method(),start of procedure operator[],return from a call to X_operator[]] -codetoanalyze/cpp/errors/shared/types/operator_overload.cpp, div0_method_op, 3, DIVIDE_BY_ZERO, [start of procedure div0_method_op(),start of procedure operator[],return from a call to X_operator[]] -codetoanalyze/cpp/errors/shared/types/operator_overload.cpp, div0_method_op_ptr, 0, DIVIDE_BY_ZERO, [start of procedure div0_method_op_ptr(),start of procedure operator[],return from a call to X_operator[]] -codetoanalyze/cpp/errors/shared/types/return_struct.cpp, return_struct::get_div0, 2, DIVIDE_BY_ZERO, [start of procedure return_struct::get_div0(),start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X_X,start of procedure X,return from a call to return_struct::X_X,return from a call to return_struct::get,start of procedure X,return from a call to return_struct::X_X] -codetoanalyze/cpp/errors/shared/types/return_struct.cpp, return_struct::get_field_div0, 2, DIVIDE_BY_ZERO, [start of procedure return_struct::get_field_div0(),start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X_X,start of procedure X,return from a call to return_struct::X_X,return from a call to return_struct::get,start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X_X,start of procedure X,return from a call to return_struct::X_X,return from a call to return_struct::get] -codetoanalyze/cpp/errors/shared/types/return_struct.cpp, return_struct::get_method_div0, 0, DIVIDE_BY_ZERO, [start of procedure return_struct::get_method_div0(),start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X_X,start of procedure X,return from a call to return_struct::X_X,return from a call to return_struct::get,start of procedure div] -codetoanalyze/cpp/errors/shared/types/struct_forward_declare.cpp, struct_forward_declare::X_Y_div0, 7, DIVIDE_BY_ZERO, [start of procedure struct_forward_declare::X_Y_div0(),start of procedure X,return from a call to struct_forward_declare::X_X,Condition is false,start of procedure getF,return from a call to struct_forward_declare::X_getF] -codetoanalyze/cpp/errors/shared/types/struct_forward_declare.cpp, struct_forward_declare::X_div0, 3, DIVIDE_BY_ZERO, [start of procedure struct_forward_declare::X_div0(),start of procedure X,return from a call to struct_forward_declare::X_X,start of procedure getF,return from a call to struct_forward_declare::X_getF] -codetoanalyze/cpp/errors/shared/types/struct_forward_declare.cpp, struct_forward_declare::X_ptr_div0, 2, DIVIDE_BY_ZERO, [start of procedure struct_forward_declare::X_ptr_div0(),start of procedure getF,return from a call to struct_forward_declare::X_getF] -codetoanalyze/cpp/errors/shared/types/struct_forward_declare.cpp, struct_forward_declare::Z_div0, 3, DIVIDE_BY_ZERO, [start of procedure struct_forward_declare::Z_div0(),start of procedure Z,return from a call to struct_forward_declare::Z_Z,start of procedure getF,return from a call to struct_forward_declare::Z_getF] -codetoanalyze/cpp/errors/shared/types/struct_forward_declare.cpp, struct_forward_declare::Z_ptr_div0, 5, DIVIDE_BY_ZERO, [start of procedure struct_forward_declare::Z_ptr_div0(),start of procedure getF,return from a call to struct_forward_declare::Z_getF] -codetoanalyze/cpp/errors/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::field_div0, 3, DIVIDE_BY_ZERO, [start of procedure struct_pass_by_value::field_div0(),start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure Y,start of procedure X,return from a call to struct_pass_by_value::X_X,return from a call to struct_pass_by_value::Y_Y,start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure struct_pass_by_value::get_f(),return from a call to struct_pass_by_value::get_f] -codetoanalyze/cpp/errors/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::param_get_copied_div0, 3, DIVIDE_BY_ZERO, [start of procedure struct_pass_by_value::param_get_copied_div0(),start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure struct_pass_by_value::set_f(),return from a call to struct_pass_by_value::set_f] -codetoanalyze/cpp/errors/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::temp_div0, 0, DIVIDE_BY_ZERO, [start of procedure struct_pass_by_value::temp_div0(),start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure struct_pass_by_value::get_f(),return from a call to struct_pass_by_value::get_f] -codetoanalyze/cpp/errors/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::var_div0, 2, DIVIDE_BY_ZERO, [start of procedure struct_pass_by_value::var_div0(),start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure struct_pass_by_value::get_f(),return from a call to struct_pass_by_value::get_f] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, employee_typeid, 3, MEMORY_LEAK, [start of procedure employee_typeid(),start of procedure Employee,start of procedure Person,return from a call to Person_Person,return from a call to Employee_Employee] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, employee_typeid, 4, DIVIDE_BY_ZERO, [start of procedure employee_typeid(),start of procedure Employee,start of procedure Person,return from a call to Person_Person,return from a call to Employee_Employee,Condition is true] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, person_ptr_typeid, 2, MEMORY_LEAK, [start of procedure person_ptr_typeid(),start of procedure Person,return from a call to Person_Person] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, person_ptr_typeid, 3, DIVIDE_BY_ZERO, [start of procedure person_ptr_typeid(),start of procedure Person,return from a call to Person_Person,Condition is true] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, person_typeid, 3, MEMORY_LEAK, [start of procedure person_typeid(),start of procedure Person,return from a call to Person_Person] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, person_typeid, 6, DIVIDE_BY_ZERO, [start of procedure person_typeid(),start of procedure Person,return from a call to Person_Person,Condition is false] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, person_typeid_name, 3, MEMORY_LEAK, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person_Person] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, person_typeid_name, 4, MEMORY_LEAK, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person_Person] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, person_typeid_name, 8, DIVIDE_BY_ZERO, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person_Person,Condition is false] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, template_type_id_person, 2, MEMORY_LEAK, [start of procedure template_type_id_person(),start of procedure Person,return from a call to Person_Person] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, template_type_id_person, 5, DIVIDE_BY_ZERO, [start of procedure template_type_id_person(),start of procedure Person,return from a call to Person_Person,Condition is false] -codetoanalyze/cpp/errors/shared/types/typeid_expr.cpp, template_typeid, 2, MEMORY_LEAK, [start of procedure template_typeid(),start of procedure Person,return from a call to Person_Person,start of procedure Person,return from a call to Person_Person] codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_after_move_crash, 4, NULL_DEREFERENCE, [start of procedure deref_after_mode_example::deref_after_move_crash(),start of procedure Person,return from a call to deref_after_mode_example::Person_Person,start of procedure move_age,return from a call to deref_after_mode_example::Person_move_age,start of procedure access_age] codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_after_move_ok, 4, MEMORY_LEAK, [start of procedure deref_after_mode_example::deref_after_move_ok(),start of procedure Person,return from a call to deref_after_mode_example::Person_Person,start of procedure move_age,return from a call to deref_after_mode_example::Person_move_age,return from a call to deref_after_mode_example::deref_after_move_ok] codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_ok, 3, MEMORY_LEAK, [start of procedure deref_after_mode_example::deref_ok(),start of procedure Person,return from a call to deref_after_mode_example::Person_Person,start of procedure access_age,return from a call to deref_after_mode_example::Person_access_age,return from a call to deref_after_mode_example::deref_ok] @@ -284,3 +120,167 @@ codetoanalyze/cpp/errors/vector/empty_access.cpp, size_check0_empty, 2, EMPTY_VE codetoanalyze/cpp/errors/vector/empty_access.cpp, vector_as_param_by_value_empty, 2, EMPTY_VECTOR_ACCESS, [start of procedure vector_as_param_by_value_empty(),start of procedure vector_param_by_value_access()] codetoanalyze/cpp/errors/vector/empty_access.cpp, vector_as_param_clear, 3, EMPTY_VECTOR_ACCESS, [start of procedure vector_as_param_clear(),start of procedure vector_param_clear(),return from a call to vector_param_clear] codetoanalyze/cpp/errors/vector/empty_access.cpp, vector_as_param_empty, 2, EMPTY_VECTOR_ACCESS, [start of procedure vector_as_param_empty(),start of procedure vector_param_access()] +codetoanalyze/cpp/shared/attributes/deprecated_hack.cpp, derefFirstArg2_null_deref, 2, NULL_DEREFERENCE, [start of procedure derefFirstArg2_null_deref()] +codetoanalyze/cpp/shared/attributes/deprecated_hack.cpp, derefFirstArg3_null_deref, 2, NULL_DEREFERENCE, [start of procedure derefFirstArg3_null_deref(),start of procedure derefFirstArg3()] +codetoanalyze/cpp/shared/attributes/deprecated_hack.cpp, derefFirstArg_null_deref, 2, NULL_DEREFERENCE, [start of procedure derefFirstArg_null_deref()] +codetoanalyze/cpp/shared/attributes/deprecated_hack.cpp, getPtr_null_deref1, 3, NULL_DEREFERENCE, [start of procedure getPtr_null_deref1(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] +codetoanalyze/cpp/shared/attributes/deprecated_hack.cpp, getPtr_null_deref2, 3, NULL_DEREFERENCE, [start of procedure getPtr_null_deref2(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] +codetoanalyze/cpp/shared/attributes/deprecated_hack.cpp, getRef_null_deref1, 3, NULL_DEREFERENCE, [start of procedure getRef_null_deref1(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] +codetoanalyze/cpp/shared/attributes/deprecated_hack.cpp, getRef_null_deref2, 3, NULL_DEREFERENCE, [start of procedure getRef_null_deref2(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] +codetoanalyze/cpp/shared/attributes/deprecated_hack.cpp, operator_star_null_deref1, 3, NULL_DEREFERENCE, [start of procedure operator_star_null_deref1(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] +codetoanalyze/cpp/shared/attributes/deprecated_hack.cpp, operator_star_null_deref2, 3, NULL_DEREFERENCE, [start of procedure operator_star_null_deref2(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] +codetoanalyze/cpp/shared/attributes/deprecated_hack.cpp, operator_star_ok_deref, 4, UNINITIALIZED_VALUE, [start of procedure operator_star_ok_deref(),start of procedure TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr,return from a call to TranslateAsPtr_TranslateAsPtr,start of procedure setPtr,return from a call to TranslateAsPtr_setPtr] +codetoanalyze/cpp/shared/conditional/lvalue_conditional.cpp, div0_assign_conditional, 0, DIVIDE_BY_ZERO, [start of procedure div0_assign_conditional(),start of procedure assign_conditional(),Condition is false,return from a call to assign_conditional] +codetoanalyze/cpp/shared/conditional/lvalue_conditional.cpp, div0_choose_lvalue, 0, DIVIDE_BY_ZERO, [start of procedure div0_choose_lvalue(),start of procedure choose_lvalue(),Condition is true,return from a call to choose_lvalue] +codetoanalyze/cpp/shared/conditional/lvalue_conditional.cpp, div0_choose_rvalue, 0, DIVIDE_BY_ZERO, [start of procedure div0_choose_rvalue(),start of procedure choose_rvalue(),Condition is true,return from a call to choose_rvalue] +codetoanalyze/cpp/shared/conditional/lvalue_conditional.cpp, div0_temp_lvalue, 0, DIVIDE_BY_ZERO, [start of procedure div0_temp_lvalue(),start of procedure div_temp_lvalue(),Condition is true] +codetoanalyze/cpp/shared/constructors/constructor_init.cpp, delegate_constr_f2_div0, 3, DIVIDE_BY_ZERO, [start of procedure delegate_constr_f2_div0(),start of procedure B,start of procedure B,start of procedure A,return from a call to A_A,start of procedure T,return from a call to B::T_T,return from a call to B_B,return from a call to B_B] +codetoanalyze/cpp/shared/constructors/constructor_init.cpp, delegate_constr_f_div0, 3, DIVIDE_BY_ZERO, [start of procedure delegate_constr_f_div0(),start of procedure B,start of procedure B,start of procedure A,return from a call to A_A,start of procedure T,return from a call to B::T_T,return from a call to B_B,return from a call to B_B] +codetoanalyze/cpp/shared/constructors/constructor_init.cpp, f2_div0, 2, DIVIDE_BY_ZERO, [start of procedure f2_div0(),start of procedure B,start of procedure A,return from a call to A_A,start of procedure T,return from a call to B::T_T,return from a call to B_B] +codetoanalyze/cpp/shared/constructors/constructor_init.cpp, f_div0, 2, DIVIDE_BY_ZERO, [start of procedure f_div0(),start of procedure B,start of procedure A,return from a call to A_A,start of procedure T,return from a call to B::T_T,return from a call to B_B] +codetoanalyze/cpp/shared/constructors/constructor_init.cpp, t_div0, 2, DIVIDE_BY_ZERO, [start of procedure t_div0(),start of procedure B,start of procedure A,return from a call to A_A,start of procedure T,return from a call to B::T_T,return from a call to B_B] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::array_of_class_with_not_constant_size, 1, MEMORY_LEAK, [start of procedure constructor_new::array_of_class_with_not_constant_size(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is true] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::array_of_person_with_constant_size, 0, MEMORY_LEAK, [start of procedure constructor_new::array_of_person_with_constant_size(),start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::constructor_1_arg_new_div0, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::constructor_1_arg_new_div0(),start of procedure Person,return from a call to constructor_new::Person_Person] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::constructor_1_arg_new_div0, 2, MEMORY_LEAK, [start of procedure constructor_new::constructor_1_arg_new_div0(),start of procedure Person,return from a call to constructor_new::Person_Person] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::constructor_3_args_new_div0, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::constructor_3_args_new_div0(),start of procedure Person,return from a call to constructor_new::Person_Person] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::constructor_3_args_new_div0, 2, MEMORY_LEAK, [start of procedure constructor_new::constructor_3_args_new_div0(),start of procedure Person,return from a call to constructor_new::Person_Person] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::constructor_nodes, 3, DIVIDE_BY_ZERO, [start of procedure constructor_new::constructor_nodes(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is false,start of procedure Person,return from a call to constructor_new::Person_Person] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::constructor_nodes, 3, MEMORY_LEAK, [start of procedure constructor_new::constructor_nodes(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is false,start of procedure Person,return from a call to constructor_new::Person_Person] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::float_init_number, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::float_init_number()] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::float_init_number, 2, MEMORY_LEAK, [start of procedure constructor_new::float_init_number()] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_array, 4, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_array(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is true,start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_array, 4, MEMORY_LEAK, [start of procedure constructor_new::int_array(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is true,start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_array_init, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_array_init()] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_array_init, 2, MEMORY_LEAK, [start of procedure constructor_new::int_array_init()] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_init_empty, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_init_empty()] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_init_empty, 2, MEMORY_LEAK, [start of procedure constructor_new::int_init_empty()] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_init_empty_list, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_init_empty_list()] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_init_empty_list_new, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_init_empty_list_new()] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_init_empty_list_new, 2, MEMORY_LEAK, [start of procedure constructor_new::int_init_empty_list_new()] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_init_nodes, 3, MEMORY_LEAK, [start of procedure constructor_new::int_init_nodes(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is false] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_init_nodes, 4, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_init_nodes(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is false] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_init_nodes, 4, MEMORY_LEAK, [start of procedure constructor_new::int_init_nodes(),start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,start of procedure constructor_new::getValue(),return from a call to constructor_new::getValue,Condition is false] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_init_number, 2, DIVIDE_BY_ZERO, [start of procedure constructor_new::int_init_number()] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::int_init_number, 2, MEMORY_LEAK, [start of procedure constructor_new::int_init_number()] +codetoanalyze/cpp/shared/constructors/constructor_new.cpp, constructor_new::matrix_of_person, 2, MEMORY_LEAK, [start of procedure constructor_new::matrix_of_person(),start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person,start of procedure Person,return from a call to constructor_new::Person_Person] +codetoanalyze/cpp/shared/constructors/constructor_with_body.cpp, constructor_with_body::test_div0, 2, DIVIDE_BY_ZERO, [start of procedure constructor_with_body::test_div0(),start of procedure X,start of procedure init,return from a call to constructor_with_body::X_init,return from a call to constructor_with_body::X_X,start of procedure div] +codetoanalyze/cpp/shared/constructors/constructor_with_body.cpp, constructor_with_body::test_div0_default_constructor, 2, DIVIDE_BY_ZERO, [start of procedure constructor_with_body::test_div0_default_constructor(),start of procedure X,start of procedure init,return from a call to constructor_with_body::X_init,return from a call to constructor_with_body::X_X,start of procedure div] +codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::copyX_div0, 4, DIVIDE_BY_ZERO, [start of procedure copy_move_constructor::copyX_div0(),start of procedure X,return from a call to copy_move_constructor::X_X,start of procedure X,return from a call to copy_move_constructor::X_X] +codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::copyY_div0, 4, DIVIDE_BY_ZERO, [start of procedure copy_move_constructor::copyY_div0(),start of procedure Y,return from a call to copy_move_constructor::Y_Y,start of procedure Y,return from a call to copy_move_constructor::Y_Y] +codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveX_div0, 0, DIVIDE_BY_ZERO, [start of procedure copy_move_constructor::moveX_div0(),start of procedure copy_move_constructor::getX(),start of procedure X,return from a call to copy_move_constructor::X_X,start of procedure X,return from a call to copy_move_constructor::X_X,return from a call to copy_move_constructor::getX] +codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveY_div0, 0, DIVIDE_BY_ZERO, [start of procedure copy_move_constructor::moveY_div0(),start of procedure copy_move_constructor::getY(),start of procedure Y,return from a call to copy_move_constructor::Y_Y,start of procedure Y,return from a call to copy_move_constructor::Y_Y,return from a call to copy_move_constructor::getY] +codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveY_moveY_copyY_div0, 3, DIVIDE_BY_ZERO, [start of procedure copy_move_constructor::moveY_moveY_copyY_div0(),start of procedure copy_move_constructor::getY(),start of procedure Y,return from a call to copy_move_constructor::Y_Y,start of procedure Y,return from a call to copy_move_constructor::Y_Y,return from a call to copy_move_constructor::getY,start of procedure Y,return from a call to copy_move_constructor::Y_Y,start of procedure Y,return from a call to copy_move_constructor::Y_Y] +codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::assign_temp_div0, 2, DIVIDE_BY_ZERO, [start of procedure temp_object::assign_temp_div0(),start of procedure X,return from a call to temp_object::X_X,start of procedure X,return from a call to temp_object::X_X,start of procedure div] +codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::getX_field_div0, 0, DIVIDE_BY_ZERO, [start of procedure temp_object::getX_field_div0(),start of procedure temp_object::getX(),start of procedure X,return from a call to temp_object::X_X,start of procedure X,return from a call to temp_object::X_X,return from a call to temp_object::getX,start of procedure temp_object::div()] +codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::getX_method_div0, 0, DIVIDE_BY_ZERO, [start of procedure temp_object::getX_method_div0(),start of procedure temp_object::getX(),start of procedure X,return from a call to temp_object::X_X,start of procedure X,return from a call to temp_object::X_X,return from a call to temp_object::getX,start of procedure div] +codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::temp_field2_div0, 0, DIVIDE_BY_ZERO, [start of procedure temp_object::temp_field2_div0(),start of procedure X,return from a call to temp_object::X_X,start of procedure temp_object::div()] +codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::temp_field_div0, 0, DIVIDE_BY_ZERO, [start of procedure temp_object::temp_field_div0(),start of procedure X,return from a call to temp_object::X_X,start of procedure temp_object::div()] +codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::temp_method_div0, 0, DIVIDE_BY_ZERO, [start of procedure temp_object::temp_method_div0(),start of procedure X,return from a call to temp_object::X_X,start of procedure div] +codetoanalyze/cpp/shared/exceptions/Exceptions.cpp, call_deref_with_null, 0, NULL_DEREFERENCE, [start of procedure call_deref_with_null(),start of procedure deref_null()] +codetoanalyze/cpp/shared/lambda/lambda1.cpp, bar, 5, DIVIDE_BY_ZERO, [start of procedure bar(),start of procedure ,return from a call to bar::lambda_shared_lambda_lambda1.cpp:11:15_,start of procedure operator(),return from a call to bar::lambda_shared_lambda_lambda1.cpp:11:15_operator()] +codetoanalyze/cpp/shared/lambda/lambda1.cpp, foo, 3, DIVIDE_BY_ZERO, [start of procedure foo(),start of procedure ,return from a call to foo::lambda_shared_lambda_lambda1.cpp:19:17_,start of procedure ,return from a call to foo::lambda_shared_lambda_lambda1.cpp:20:12_,start of procedure operator(),return from a call to foo::lambda_shared_lambda_lambda1.cpp:20:12_operator()] +codetoanalyze/cpp/shared/lambda/lambda1.cpp, foo::lambda_shared_lambda_lambda1.cpp:19:17_operator(), 0, DIVIDE_BY_ZERO, [start of procedure operator()] +codetoanalyze/cpp/shared/methods/conversion_operator.cpp, conversion_operator::branch_div0, 4, DIVIDE_BY_ZERO, [start of procedure conversion_operator::branch_div0(),start of procedure X,return from a call to conversion_operator::X_X,start of procedure operator_bool,return from a call to conversion_operator::X_operator_bool,Condition is true,start of procedure operator_int,return from a call to conversion_operator::X_operator_int] +codetoanalyze/cpp/shared/methods/conversion_operator.cpp, conversion_operator::y_branch_div0, 6, DIVIDE_BY_ZERO, [start of procedure conversion_operator::y_branch_div0(),start of procedure Y,return from a call to conversion_operator::Y_Y,start of procedure operator_X,start of procedure X,return from a call to conversion_operator::X_X,start of procedure X,return from a call to conversion_operator::X_X,return from a call to conversion_operator::Y_operator_X,start of procedure X,return from a call to conversion_operator::X_X,start of procedure operator_bool,return from a call to conversion_operator::X_operator_bool,Condition is true,start of procedure operator_X,start of procedure X,return from a call to conversion_operator::X_X,start of procedure X,return from a call to conversion_operator::X_X,return from a call to conversion_operator::Y_operator_X,start of procedure X,return from a call to conversion_operator::X_X,start of procedure operator_int,return from a call to conversion_operator::X_operator_int] +codetoanalyze/cpp/shared/methods/static.cpp, div0_class, 0, DIVIDE_BY_ZERO, [start of procedure div0_class(),start of procedure fun] +codetoanalyze/cpp/shared/methods/static.cpp, div0_instance, 2, DIVIDE_BY_ZERO, [start of procedure div0_instance(),start of procedure fun] +codetoanalyze/cpp/shared/methods/virtual_methods.cpp, poly_area, 3, DIVIDE_BY_ZERO, [start of procedure poly_area(),start of procedure Polygon,return from a call to Polygon_Polygon,start of procedure area,return from a call to Polygon_area] +codetoanalyze/cpp/shared/methods/virtual_methods.cpp, rect_area, 4, DIVIDE_BY_ZERO, [start of procedure rect_area(),start of procedure Rectangle,start of procedure Polygon,return from a call to Polygon_Polygon,return from a call to Rectangle_Rectangle,start of procedure set_values,return from a call to Polygon_set_values,start of procedure area,return from a call to Rectangle_area] +codetoanalyze/cpp/shared/methods/virtual_methods.cpp, tri_area, 5, DIVIDE_BY_ZERO, [start of procedure tri_area(),start of procedure Triangle,start of procedure Polygon,return from a call to Polygon_Polygon,return from a call to Triangle_Triangle,start of procedure Polygon,return from a call to Polygon_Polygon,start of procedure set_values,return from a call to Polygon_set_values,start of procedure area,return from a call to Triangle_area] +codetoanalyze/cpp/shared/methods/virtual_methods.cpp, tri_not_virtual_area, 5, DIVIDE_BY_ZERO, [start of procedure tri_not_virtual_area(),start of procedure Triangle,start of procedure Polygon,return from a call to Polygon_Polygon,return from a call to Triangle_Triangle,start of procedure Polygon,return from a call to Polygon_Polygon,start of procedure set_values,return from a call to Polygon_set_values,start of procedure area,return from a call to Polygon_area] +codetoanalyze/cpp/shared/namespace/function.cpp, div0_namespace_resolution, 0, DIVIDE_BY_ZERO, [start of procedure div0_namespace_resolution(),start of procedure f1::get(),return from a call to f1::get,start of procedure f2::get(),return from a call to f2::get] +codetoanalyze/cpp/shared/namespace/function.cpp, div0_using, 2, DIVIDE_BY_ZERO, [start of procedure div0_using(),start of procedure f1::get0(),return from a call to f1::get0] +codetoanalyze/cpp/shared/namespace/global_variable.cpp, div0_namepace_res, 3, DIVIDE_BY_ZERO, [start of procedure div0_namepace_res()] +codetoanalyze/cpp/shared/namespace/global_variable.cpp, div0_static_field, 3, DIVIDE_BY_ZERO, [start of procedure div0_static_field()] +codetoanalyze/cpp/shared/namespace/global_variable.cpp, div0_static_field_member_access, 3, DIVIDE_BY_ZERO, [start of procedure div0_static_field_member_access()] +codetoanalyze/cpp/shared/nestedoperators/var_decl_inside_if.cpp, conditional_init_div0, 2, DIVIDE_BY_ZERO, [start of procedure conditional_init_div0(),Condition is true,Condition is true] +codetoanalyze/cpp/shared/nestedoperators/var_decl_inside_if.cpp, function_call_init_div0, 2, DIVIDE_BY_ZERO, [start of procedure function_call_init_div0(),start of procedure get1(),return from a call to get1,Condition is true] +codetoanalyze/cpp/shared/nestedoperators/var_decl_inside_if.cpp, reference_init_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_init_div0(),Condition is true] +codetoanalyze/cpp/shared/nestedoperators/var_decl_inside_if.cpp, simple_inif_elseif_div0, 6, DIVIDE_BY_ZERO, [start of procedure simple_inif_elseif_div0(),Condition is false,Condition is false] +codetoanalyze/cpp/shared/nestedoperators/var_decl_inside_if.cpp, simple_init_div0, 4, DIVIDE_BY_ZERO, [start of procedure simple_init_div0(),Condition is false] +codetoanalyze/cpp/shared/nestedoperators/var_decl_inside_if.cpp, simple_init_null_deref, 4, NULL_DEREFERENCE, [start of procedure simple_init_null_deref(),Condition is false] +codetoanalyze/cpp/shared/npe/method_call.cpp, npe_call, 2, NULL_DEREFERENCE, [start of procedure npe_call()] +codetoanalyze/cpp/shared/npe/method_call.cpp, npe_call_after_call, 0, NULL_DEREFERENCE, [start of procedure npe_call_after_call(),start of procedure getX(),return from a call to getX] +codetoanalyze/cpp/shared/npe/method_call.cpp, npe_call_with_forward_declaration, 1, NULL_DEREFERENCE, [start of procedure npe_call_with_forward_declaration(),start of procedure call_with_forward_declaration()] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::ptr_F_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ptr_F_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ptr,return from a call to reference_field::Ptr_Ptr] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::ptr_I_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ptr_I_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ptr,return from a call to reference_field::Ptr_Ptr] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::ptr_getF_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ptr_getF_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ptr,return from a call to reference_field::Ptr_Ptr,start of procedure getF,return from a call to reference_field::Ptr_getF] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::ptr_getI_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ptr_getI_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ptr,return from a call to reference_field::Ptr_Ptr,start of procedure getI,return from a call to reference_field::Ptr_getI] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::ref_F_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ref_F_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ref,return from a call to reference_field::Ref_Ref] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::ref_I_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ref_I_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ref,return from a call to reference_field::Ref_Ref] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::ref_getF_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ref_getF_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ref,return from a call to reference_field::Ref_Ref,start of procedure getF,return from a call to reference_field::Ref_getF] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::ref_getI_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::ref_getI_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Ref,return from a call to reference_field::Ref_Ref,start of procedure getI,return from a call to reference_field::Ref_getI] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::val_F_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::val_F_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Val,start of procedure X,return from a call to reference_field::X_X,return from a call to reference_field::Val_Val] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::val_I_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::val_I_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Val,start of procedure X,return from a call to reference_field::X_X,return from a call to reference_field::Val_Val] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::val_getF_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::val_getF_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Val,start of procedure X,return from a call to reference_field::X_X,return from a call to reference_field::Val_Val,start of procedure getF,return from a call to reference_field::Val_getF] +codetoanalyze/cpp/shared/reference/reference_field.cpp, reference_field::val_getI_div0, 5, DIVIDE_BY_ZERO, [start of procedure reference_field::val_getI_div0(),start of procedure X,return from a call to reference_field::X_X,start of procedure Val,start of procedure X,return from a call to reference_field::X_X,return from a call to reference_field::Val_Val,start of procedure getI,return from a call to reference_field::Val_getI] +codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp, field_div0_ptr, 3, DIVIDE_BY_ZERO, [start of procedure field_div0_ptr(),Condition is true,start of procedure set_field_ptr(),return from a call to set_field_ptr,start of procedure div] +codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp, field_div0_ref, 2, DIVIDE_BY_ZERO, [start of procedure field_div0_ref(),start of procedure set_field_ref(),return from a call to set_field_ref,start of procedure div] +codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp, get_global_ptr_div0_field, 3, DIVIDE_BY_ZERO, [start of procedure get_global_ptr_div0_field(),start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure nonzero,return from a call to X_nonzero,start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure div] +codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp, get_global_ptr_div0_method, 3, DIVIDE_BY_ZERO, [start of procedure get_global_ptr_div0_method(),start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure zero,return from a call to X_zero,start of procedure get_global_ptr(),return from a call to get_global_ptr,start of procedure div] +codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp, get_global_ref_div0_field, 3, DIVIDE_BY_ZERO, [start of procedure get_global_ref_div0_field(),start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure nonzero,return from a call to X_nonzero,start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure div] +codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp, get_global_ref_div0_method, 3, DIVIDE_BY_ZERO, [start of procedure get_global_ref_div0_method(),start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure zero,return from a call to X_zero,start of procedure get_global_ref(),return from a call to get_global_ref,start of procedure div] +codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp, method_div0_ptr, 3, DIVIDE_BY_ZERO, [start of procedure method_div0_ptr(),Condition is true,start of procedure zero_ptr(),start of procedure zero,return from a call to X_zero,return from a call to zero_ptr,start of procedure div] +codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp, method_div0_ref, 2, DIVIDE_BY_ZERO, [start of procedure method_div0_ref(),start of procedure zero_ref(),start of procedure zero,return from a call to X_zero,return from a call to zero_ref,start of procedure div] +codetoanalyze/cpp/shared/reference/reference_type_e2e.cpp, ptr_div0, 4, DIVIDE_BY_ZERO, [start of procedure ptr_div0()] +codetoanalyze/cpp/shared/reference/reference_type_e2e.cpp, ptr_div0_function, 3, DIVIDE_BY_ZERO, [start of procedure ptr_div0_function(),start of procedure zero_ptr(),return from a call to zero_ptr] +codetoanalyze/cpp/shared/reference/reference_type_e2e.cpp, ptr_div0_function_temp_var, 4, DIVIDE_BY_ZERO, [start of procedure ptr_div0_function_temp_var(),start of procedure zero_ptr(),return from a call to zero_ptr] +codetoanalyze/cpp/shared/reference/reference_type_e2e.cpp, ref_div0, 4, DIVIDE_BY_ZERO, [start of procedure ref_div0()] +codetoanalyze/cpp/shared/reference/reference_type_e2e.cpp, ref_div0_function, 3, DIVIDE_BY_ZERO, [start of procedure ref_div0_function(),start of procedure zero_ref(),return from a call to zero_ref] +codetoanalyze/cpp/shared/reference/reference_type_e2e.cpp, ref_div0_function_temp_var, 4, DIVIDE_BY_ZERO, [start of procedure ref_div0_function_temp_var(),start of procedure zero_ref(),return from a call to zero_ref] +codetoanalyze/cpp/shared/reference/reference_type_e2e.cpp, ref_div0_nested_assignment, 6, DIVIDE_BY_ZERO, [start of procedure ref_div0_nested_assignment()] +codetoanalyze/cpp/shared/reference/temporary_lvalue.cpp, div0_function_param_cast, 0, DIVIDE_BY_ZERO, [start of procedure div0_function_param_cast(),start of procedure div()] +codetoanalyze/cpp/shared/reference/temporary_lvalue.cpp, div0_init_expr, 2, DIVIDE_BY_ZERO, [start of procedure div0_init_expr(),start of procedure div()] +codetoanalyze/cpp/shared/reference/temporary_lvalue.cpp, div0_no_const_ref, 2, DIVIDE_BY_ZERO, [start of procedure div0_no_const_ref(),start of procedure div()] +codetoanalyze/cpp/shared/templates/class_template_instantiate.cpp, ExecStore_call_div, 2, DIVIDE_BY_ZERO, [start of procedure call_div,start of procedure div] +codetoanalyze/cpp/shared/templates/class_template_instantiate.cpp, choose1_div0, 0, DIVIDE_BY_ZERO, [start of procedure choose1_div0(),start of procedure call_div,start of procedure div] +codetoanalyze/cpp/shared/templates/class_template_instantiate.cpp, choose2_div0_extra, 0, DIVIDE_BY_ZERO, [start of procedure choose2_div0_extra(),start of procedure extra] +codetoanalyze/cpp/shared/templates/function.cpp, function::createAndDiv, 1, DIVIDE_BY_ZERO, [start of procedure function::createAndDiv(),start of procedure function::createAndGetVal(),start of procedure X3,return from a call to function::X3_X3,start of procedure function::getVal(),start of procedure get,return from a call to function::X3_get,return from a call to function::getVal,return from a call to function::createAndGetVal] +codetoanalyze/cpp/shared/templates/function.cpp, function::div0_create_and_get_val, 1, DIVIDE_BY_ZERO, [start of procedure function::div0_create_and_get_val(),start of procedure function::createAndGetVal(),start of procedure X1,return from a call to function::X1_X1,start of procedure function::getVal(),start of procedure getVal,return from a call to function::X1_getVal,return from a call to function::getVal,return from a call to function::createAndGetVal,start of procedure function::createAndGetVal(),start of procedure X3,return from a call to function::X3_X3,start of procedure function::getVal(),start of procedure get,return from a call to function::X3_get,return from a call to function::getVal,return from a call to function::createAndGetVal] +codetoanalyze/cpp/shared/templates/function.cpp, function::div0_get_val, 3, DIVIDE_BY_ZERO, [start of procedure function::div0_get_val(),start of procedure X1,return from a call to function::X1_X1,start of procedure X3,return from a call to function::X3_X3,start of procedure function::getVal(),start of procedure getVal,return from a call to function::X1_getVal,return from a call to function::getVal,start of procedure function::getVal(),start of procedure get,return from a call to function::X3_get,return from a call to function::getVal] +codetoanalyze/cpp/shared/templates/function_pack.cpp, div0_10args, 0, DIVIDE_BY_ZERO, [start of procedure div0_10args()] +codetoanalyze/cpp/shared/templates/function_pack.cpp, div0_1arg, 0, DIVIDE_BY_ZERO, [start of procedure div0_1arg(),start of procedure div()] +codetoanalyze/cpp/shared/templates/function_pack.cpp, div0_3args1, 0, DIVIDE_BY_ZERO, [start of procedure div0_3args1()] +codetoanalyze/cpp/shared/templates/function_pack.cpp, div0_3args2, 0, DIVIDE_BY_ZERO, [start of procedure div0_3args2()] +codetoanalyze/cpp/shared/templates/function_pack.cpp, div0_3args3, 0, DIVIDE_BY_ZERO, [start of procedure div0_3args3(),start of procedure div(),start of procedure div(),start of procedure div()] +codetoanalyze/cpp/shared/templates/function_pack.cpp, div0_3args4, 0, DIVIDE_BY_ZERO, [start of procedure div0_3args4(),start of procedure div(),start of procedure div(),start of procedure div()] +codetoanalyze/cpp/shared/templates/method.cpp, method::div0_getter, 3, DIVIDE_BY_ZERO, [start of procedure method::div0_getter(),start of procedure X2,return from a call to method::X2_X2,start of procedure Getter,return from a call to method::Getter_Getter,start of procedure get,start of procedure get,return from a call to method::X2_get,return from a call to method::Getter_get] +codetoanalyze/cpp/shared/templates/method.cpp, method::div0_getter_templ, 4, DIVIDE_BY_ZERO, [start of procedure method::div0_getter_templ(),start of procedure X2,return from a call to method::X2_X2,start of procedure X3,return from a call to method::X3_X3,start of procedure GetterTempl,return from a call to method::GetterTempl_GetterTempl,start of procedure get,start of procedure get,return from a call to method::X3_get,start of procedure get,return from a call to method::X2_get,return from a call to method::GetterTempl_get] +codetoanalyze/cpp/shared/templates/method.cpp, method::div0_getter_templ2, 4, DIVIDE_BY_ZERO, [start of procedure method::div0_getter_templ2(),start of procedure X2,return from a call to method::X2_X2,start of procedure X2,return from a call to method::X2_X2,start of procedure GetterTempl,return from a call to method::GetterTempl_GetterTempl,start of procedure get,start of procedure get,return from a call to method::X2_get,start of procedure get,return from a call to method::X2_get,return from a call to method::GetterTempl_get] +codetoanalyze/cpp/shared/types/inheritance_field.cpp, div0_b1, 2, DIVIDE_BY_ZERO, [start of procedure div0_b1()] +codetoanalyze/cpp/shared/types/inheritance_field.cpp, div0_b1_s, 3, DIVIDE_BY_ZERO, [start of procedure div0_b1_s()] +codetoanalyze/cpp/shared/types/inheritance_field.cpp, div0_b2, 2, DIVIDE_BY_ZERO, [start of procedure div0_b2()] +codetoanalyze/cpp/shared/types/inheritance_field.cpp, div0_cast, 3, DIVIDE_BY_ZERO, [start of procedure div0_cast()] +codetoanalyze/cpp/shared/types/inheritance_field.cpp, div0_cast_ref, 3, DIVIDE_BY_ZERO, [start of procedure div0_cast_ref()] +codetoanalyze/cpp/shared/types/inheritance_field.cpp, div0_s, 2, DIVIDE_BY_ZERO, [start of procedure div0_s()] +codetoanalyze/cpp/shared/types/inheritance_field.cpp, div0_s_b1, 3, DIVIDE_BY_ZERO, [start of procedure div0_s_b1()] +codetoanalyze/cpp/shared/types/operator_overload.cpp, div0_function_op, 3, DIVIDE_BY_ZERO, [start of procedure div0_function_op(),start of procedure operator*(),return from a call to operator*] +codetoanalyze/cpp/shared/types/operator_overload.cpp, div0_inheritted_op, 2, DIVIDE_BY_ZERO, [start of procedure div0_inheritted_op(),start of procedure operator[],return from a call to X_operator[]] +codetoanalyze/cpp/shared/types/operator_overload.cpp, div0_method, 3, DIVIDE_BY_ZERO, [start of procedure div0_method(),start of procedure operator[],return from a call to X_operator[]] +codetoanalyze/cpp/shared/types/operator_overload.cpp, div0_method_op, 3, DIVIDE_BY_ZERO, [start of procedure div0_method_op(),start of procedure operator[],return from a call to X_operator[]] +codetoanalyze/cpp/shared/types/operator_overload.cpp, div0_method_op_ptr, 0, DIVIDE_BY_ZERO, [start of procedure div0_method_op_ptr(),start of procedure operator[],return from a call to X_operator[]] +codetoanalyze/cpp/shared/types/return_struct.cpp, return_struct::get_div0, 2, DIVIDE_BY_ZERO, [start of procedure return_struct::get_div0(),start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X_X,start of procedure X,return from a call to return_struct::X_X,return from a call to return_struct::get,start of procedure X,return from a call to return_struct::X_X] +codetoanalyze/cpp/shared/types/return_struct.cpp, return_struct::get_field_div0, 2, DIVIDE_BY_ZERO, [start of procedure return_struct::get_field_div0(),start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X_X,start of procedure X,return from a call to return_struct::X_X,return from a call to return_struct::get,start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X_X,start of procedure X,return from a call to return_struct::X_X,return from a call to return_struct::get] +codetoanalyze/cpp/shared/types/return_struct.cpp, return_struct::get_method_div0, 0, DIVIDE_BY_ZERO, [start of procedure return_struct::get_method_div0(),start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X_X,start of procedure X,return from a call to return_struct::X_X,return from a call to return_struct::get,start of procedure div] +codetoanalyze/cpp/shared/types/struct_forward_declare.cpp, struct_forward_declare::X_Y_div0, 7, DIVIDE_BY_ZERO, [start of procedure struct_forward_declare::X_Y_div0(),start of procedure X,return from a call to struct_forward_declare::X_X,Condition is false,start of procedure getF,return from a call to struct_forward_declare::X_getF] +codetoanalyze/cpp/shared/types/struct_forward_declare.cpp, struct_forward_declare::X_div0, 3, DIVIDE_BY_ZERO, [start of procedure struct_forward_declare::X_div0(),start of procedure X,return from a call to struct_forward_declare::X_X,start of procedure getF,return from a call to struct_forward_declare::X_getF] +codetoanalyze/cpp/shared/types/struct_forward_declare.cpp, struct_forward_declare::X_ptr_div0, 2, DIVIDE_BY_ZERO, [start of procedure struct_forward_declare::X_ptr_div0(),start of procedure getF,return from a call to struct_forward_declare::X_getF] +codetoanalyze/cpp/shared/types/struct_forward_declare.cpp, struct_forward_declare::Z_div0, 3, DIVIDE_BY_ZERO, [start of procedure struct_forward_declare::Z_div0(),start of procedure Z,return from a call to struct_forward_declare::Z_Z,start of procedure getF,return from a call to struct_forward_declare::Z_getF] +codetoanalyze/cpp/shared/types/struct_forward_declare.cpp, struct_forward_declare::Z_ptr_div0, 5, DIVIDE_BY_ZERO, [start of procedure struct_forward_declare::Z_ptr_div0(),start of procedure getF,return from a call to struct_forward_declare::Z_getF] +codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::field_div0, 3, DIVIDE_BY_ZERO, [start of procedure struct_pass_by_value::field_div0(),start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure Y,start of procedure X,return from a call to struct_pass_by_value::X_X,return from a call to struct_pass_by_value::Y_Y,start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure struct_pass_by_value::get_f(),return from a call to struct_pass_by_value::get_f] +codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::param_get_copied_div0, 3, DIVIDE_BY_ZERO, [start of procedure struct_pass_by_value::param_get_copied_div0(),start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure struct_pass_by_value::set_f(),return from a call to struct_pass_by_value::set_f] +codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::temp_div0, 0, DIVIDE_BY_ZERO, [start of procedure struct_pass_by_value::temp_div0(),start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure struct_pass_by_value::get_f(),return from a call to struct_pass_by_value::get_f] +codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::var_div0, 2, DIVIDE_BY_ZERO, [start of procedure struct_pass_by_value::var_div0(),start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure X,return from a call to struct_pass_by_value::X_X,start of procedure struct_pass_by_value::get_f(),return from a call to struct_pass_by_value::get_f] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, employee_typeid, 3, MEMORY_LEAK, [start of procedure employee_typeid(),start of procedure Employee,start of procedure Person,return from a call to Person_Person,return from a call to Employee_Employee] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, employee_typeid, 4, DIVIDE_BY_ZERO, [start of procedure employee_typeid(),start of procedure Employee,start of procedure Person,return from a call to Person_Person,return from a call to Employee_Employee,Condition is true] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, person_ptr_typeid, 2, MEMORY_LEAK, [start of procedure person_ptr_typeid(),start of procedure Person,return from a call to Person_Person] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, person_ptr_typeid, 3, DIVIDE_BY_ZERO, [start of procedure person_ptr_typeid(),start of procedure Person,return from a call to Person_Person,Condition is true] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, person_typeid, 3, MEMORY_LEAK, [start of procedure person_typeid(),start of procedure Person,return from a call to Person_Person] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, person_typeid, 6, DIVIDE_BY_ZERO, [start of procedure person_typeid(),start of procedure Person,return from a call to Person_Person,Condition is false] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, person_typeid_name, 3, MEMORY_LEAK, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person_Person] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, person_typeid_name, 4, MEMORY_LEAK, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person_Person] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, person_typeid_name, 8, DIVIDE_BY_ZERO, [start of procedure person_typeid_name(),start of procedure Person,return from a call to Person_Person,Condition is false] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, template_type_id_person, 2, MEMORY_LEAK, [start of procedure template_type_id_person(),start of procedure Person,return from a call to Person_Person] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, template_type_id_person, 5, DIVIDE_BY_ZERO, [start of procedure template_type_id_person(),start of procedure Person,return from a call to Person_Person,Condition is false] +codetoanalyze/cpp/shared/types/typeid_expr.cpp, template_typeid, 2, MEMORY_LEAK, [start of procedure template_typeid(),start of procedure Person,return from a call to Person_Person,start of procedure Person,return from a call to Person_Person] diff --git a/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/assign_in_condition.cpp b/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/assign_in_condition.cpp new file mode 100644 index 000000000..2242943e5 --- /dev/null +++ b/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/assign_in_condition.cpp @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2013 - present Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +int foo(int* p) { + if ((*p = 0)) { + return 32; + } + return 52; +} diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/assign_in_condition.cpp.dot similarity index 100% rename from infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_in_condition.cpp.dot rename to infer/tests/codetoanalyze/cpp/frontend/nestedoperators/assign_in_condition.cpp.dot diff --git a/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/assign_with_increment.cpp b/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/assign_with_increment.cpp new file mode 100644 index 000000000..04f1bc73d --- /dev/null +++ b/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/assign_with_increment.cpp @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2015 - present Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +int test() { + int a = 3; + int b = ++a; + int c = a++; + int d = --a; + int e = a--; +} diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_with_increment.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/assign_with_increment.cpp.dot similarity index 100% rename from infer/tests/codetoanalyze/c/frontend/nestedoperators/assign_with_increment.cpp.dot rename to infer/tests/codetoanalyze/cpp/frontend/nestedoperators/assign_with_increment.cpp.dot diff --git a/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/union.cpp b/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/union.cpp new file mode 100644 index 000000000..18c9e2f6b --- /dev/null +++ b/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/union.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2013 - present Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +struct { + int a; + int b; +} * x; + +union { + int e; + int f; + + struct { + int w; + int u; + } g; + + int h; +} y; + +int main() { + int l; + + x->a = 1; + y.f = 7; + y.g.u = y.f; + + y.g.w = x->b; + return 0; +} diff --git a/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/union.cpp.dot similarity index 50% rename from infer/tests/codetoanalyze/c/frontend/nestedoperators/union.cpp.dot rename to infer/tests/codetoanalyze/cpp/frontend/nestedoperators/union.cpp.dot index d3155effc..b09f289d8 100644 --- a/infer/tests/codetoanalyze/c/frontend/nestedoperators/union.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/nestedoperators/union.cpp.dot @@ -1,47 +1,47 @@ /* @generated */ digraph iCFG { -"main.fad58de7366495db4650cfefac2fcd61_7" [label="7: BinaryOperatorStmt: Assign \n n$3=*&#GB$x:class anonymous_struct_nestedoperators_union.cpp:12:1* [line 32]\n *n$3.a:int=1 [line 32]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_7" [label="7: BinaryOperatorStmt: Assign \n n$3=*&#GB$x:class anonymous_struct_nestedoperators_union.cpp:10:1* [line 30]\n *n$3.a:int=1 [line 30]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_7" -> "main.fad58de7366495db4650cfefac2fcd61_6" ; -"main.fad58de7366495db4650cfefac2fcd61_6" [label="6: BinaryOperatorStmt: Assign \n *&#GB$y.f:int=7 [line 33]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_6" [label="6: BinaryOperatorStmt: Assign \n *&#GB$y.f:int=7 [line 31]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_6" -> "main.fad58de7366495db4650cfefac2fcd61_5" ; -"main.fad58de7366495db4650cfefac2fcd61_5" [label="5: BinaryOperatorStmt: Assign \n n$2=*&#GB$y.f:int [line 34]\n *&#GB$y.g.u:int=n$2 [line 34]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_5" [label="5: BinaryOperatorStmt: Assign \n n$2=*&#GB$y.f:int [line 32]\n *&#GB$y.g.u:int=n$2 [line 32]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_5" -> "main.fad58de7366495db4650cfefac2fcd61_4" ; -"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: BinaryOperatorStmt: Assign \n n$0=*&#GB$x:class anonymous_struct_nestedoperators_union.cpp:12:1* [line 36]\n n$1=*n$0.b:int [line 36]\n *&#GB$y.g.w:int=n$1 [line 36]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: BinaryOperatorStmt: Assign \n n$0=*&#GB$x:class anonymous_struct_nestedoperators_union.cpp:10:1* [line 34]\n n$1=*n$0.b:int [line 34]\n *&#GB$y.g.w:int=n$1 [line 34]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; -"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: Return Stmt \n *&return:int=0 [line 37]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: Return Stmt \n *&return:int=0 [line 35]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; "main.fad58de7366495db4650cfefac2fcd61_2" [label="2: Exit main \n " color=yellow style=filled] -"main.fad58de7366495db4650cfefac2fcd61_1" [label="1: Start main\nFormals: \nLocals: l:int \n DECLARE_LOCALS(&return,&l); [line 29]\n " color=yellow style=filled] +"main.fad58de7366495db4650cfefac2fcd61_1" [label="1: Start main\nFormals: \nLocals: l:int \n DECLARE_LOCALS(&return,&l); [line 27]\n " color=yellow style=filled] "main.fad58de7366495db4650cfefac2fcd61_1" -> "main.fad58de7366495db4650cfefac2fcd61_7" ; -"anonymous_union_nestedoperators_union.cpp:17:1_{_ZN3$_0C1Ev}.7872f3ad68b4dcc7dc45fed509da0ae0_2" [label="2: Exit anonymous_union_nestedoperators_union.cpp:17:1_ \n " color=yellow style=filled] +"anonymous_union_nestedoperators_union.cpp:15:1_{_ZN3$_0C1Ev}.a368a0a38a33cffb4fbe8f478ecc70a9_2" [label="2: Exit anonymous_union_nestedoperators_union.cpp:15:1_ \n " color=yellow style=filled] -"anonymous_union_nestedoperators_union.cpp:17:1_{_ZN3$_0C1Ev}.7872f3ad68b4dcc7dc45fed509da0ae0_1" [label="1: Start anonymous_union_nestedoperators_union.cpp:17:1_\nFormals: this:class anonymous_union_nestedoperators_union.cpp:17:1*\nLocals: \n DECLARE_LOCALS(&return); [line 17]\n " color=yellow style=filled] +"anonymous_union_nestedoperators_union.cpp:15:1_{_ZN3$_0C1Ev}.a368a0a38a33cffb4fbe8f478ecc70a9_1" [label="1: Start anonymous_union_nestedoperators_union.cpp:15:1_\nFormals: this:class anonymous_union_nestedoperators_union.cpp:15:1*\nLocals: \n DECLARE_LOCALS(&return); [line 15]\n " color=yellow style=filled] - "anonymous_union_nestedoperators_union.cpp:17:1_{_ZN3$_0C1Ev}.7872f3ad68b4dcc7dc45fed509da0ae0_1" -> "anonymous_union_nestedoperators_union.cpp:17:1_{_ZN3$_0C1Ev}.7872f3ad68b4dcc7dc45fed509da0ae0_2" ; -"__infer_globals_initializer_y.0ea250be2dd991733c9131c53abc3c54_3" [label="3: DeclStmt \n _fun_anonymous_union_nestedoperators_union.cpp:17:1_(&#GB$y:class anonymous_union_nestedoperators_union.cpp:17:1*) [line 27]\n " shape="box"] + "anonymous_union_nestedoperators_union.cpp:15:1_{_ZN3$_0C1Ev}.a368a0a38a33cffb4fbe8f478ecc70a9_1" -> "anonymous_union_nestedoperators_union.cpp:15:1_{_ZN3$_0C1Ev}.a368a0a38a33cffb4fbe8f478ecc70a9_2" ; +"__infer_globals_initializer_y.0ea250be2dd991733c9131c53abc3c54_3" [label="3: DeclStmt \n _fun_anonymous_union_nestedoperators_union.cpp:15:1_(&#GB$y:class anonymous_union_nestedoperators_union.cpp:15:1*) [line 25]\n " shape="box"] "__infer_globals_initializer_y.0ea250be2dd991733c9131c53abc3c54_3" -> "__infer_globals_initializer_y.0ea250be2dd991733c9131c53abc3c54_2" ; "__infer_globals_initializer_y.0ea250be2dd991733c9131c53abc3c54_2" [label="2: Exit __infer_globals_initializer_y \n " color=yellow style=filled] -"__infer_globals_initializer_y.0ea250be2dd991733c9131c53abc3c54_1" [label="1: Start __infer_globals_initializer_y\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 17]\n " color=yellow style=filled] +"__infer_globals_initializer_y.0ea250be2dd991733c9131c53abc3c54_1" [label="1: Start __infer_globals_initializer_y\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 15]\n " color=yellow style=filled] "__infer_globals_initializer_y.0ea250be2dd991733c9131c53abc3c54_1" -> "__infer_globals_initializer_y.0ea250be2dd991733c9131c53abc3c54_3" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/namespace/global_variable.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/namespace/global_variable.cpp.dot index 8893e22ed..809fafa9d 100644 --- a/infer/tests/codetoanalyze/cpp/shared/namespace/global_variable.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/namespace/global_variable.cpp.dot @@ -1,14 +1,14 @@ /* @generated */ digraph iCFG { -"div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_5" [label="5: BinaryOperatorStmt: Assign \n *&#GB$B::v:int=1 [line 35]\n " shape="box"] +"div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_5" [label="5: BinaryOperatorStmt: Assign \n *&#GB$B::v:int=1 [line 35]\n " shape="box"] "div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_5" -> "div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_4" ; -"div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_4" [label="4: BinaryOperatorStmt: Assign \n *&#GB$f1::A::v:int=-2 [line 36]\n " shape="box"] +"div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_4" [label="4: BinaryOperatorStmt: Assign \n *&#GB$f1::A::v:int=-2 [line 36]\n " shape="box"] "div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_4" -> "div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_3" ; -"div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_3" [label="3: Return Stmt \n n$0=*&#GB$f1::A::v:int [line 37]\n n$1=*&#GB$B::v:int [line 37]\n *&return:int=(1 / ((n$0 + n$1) + 1)) [line 37]\n " shape="box"] +"div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_3" [label="3: Return Stmt \n n$0=*&#GB$f1::A::v:int [line 37]\n n$1=*&#GB$B::v:int [line 37]\n *&return:int=(1 / ((n$0 + n$1) + 1)) [line 37]\n " shape="box"] "div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_3" -> "div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_2" ; @@ -19,15 +19,15 @@ digraph iCFG { "div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_1" -> "div0_static_field{d41d8cd98f00b204e9800998ecf8427e_Z17div0_static_fieldv}.2b766a8130513aeff8c7b57d55276390_5" ; -"div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_5" [label="5: BinaryOperatorStmt: Assign \n *&#GB$f1::A::v:int=1 [line 41]\n " shape="box"] +"div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_5" [label="5: BinaryOperatorStmt: Assign \n *&#GB$f1::A::v:int=1 [line 41]\n " shape="box"] "div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_5" -> "div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_4" ; -"div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_4" [label="4: BinaryOperatorStmt: Assign \n *&#GB$B::v:int=-2 [line 42]\n " shape="box"] +"div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_4" [label="4: BinaryOperatorStmt: Assign \n *&#GB$B::v:int=-2 [line 42]\n " shape="box"] "div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_4" -> "div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_3" ; -"div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_3" [label="3: Return Stmt \n n$0=*&#GB$f1::A::v:int [line 43]\n n$1=*&#GB$B::v:int [line 43]\n *&return:int=(1 / ((n$0 + n$1) + 1)) [line 43]\n " shape="box"] +"div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_3" [label="3: Return Stmt \n n$0=*&#GB$f1::A::v:int [line 43]\n n$1=*&#GB$B::v:int [line 43]\n *&return:int=(1 / ((n$0 + n$1) + 1)) [line 43]\n " shape="box"] "div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_3" -> "div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_2" ; @@ -38,15 +38,15 @@ digraph iCFG { "div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_1" -> "div0_static_field_member_access{d41d8cd98f00b204e9800998ecf8427e_Z31div0_static_field_member_accessP.d6c0556f2a96cd969b89d172f2ad72f4_5" ; -"div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_5" [label="5: BinaryOperatorStmt: Assign \n *&#GB$f1::val:int=1 [line 29]\n " shape="box"] +"div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_5" [label="5: BinaryOperatorStmt: Assign \n *&#GB$f1::val:int=1 [line 29]\n " shape="box"] "div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_5" -> "div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_4" ; -"div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_4" [label="4: BinaryOperatorStmt: Assign \n *&#GB$f2::val:int=-2 [line 30]\n " shape="box"] +"div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_4" [label="4: BinaryOperatorStmt: Assign \n *&#GB$f2::val:int=-2 [line 30]\n " shape="box"] "div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_4" -> "div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_3" ; -"div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_3" [label="3: Return Stmt \n n$0=*&#GB$f1::val:int [line 31]\n n$1=*&#GB$f2::val:int [line 31]\n *&return:int=(1 / ((n$0 + n$1) + 1)) [line 31]\n " shape="box"] +"div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_3" [label="3: Return Stmt \n n$0=*&#GB$f1::val:int [line 31]\n n$1=*&#GB$f2::val:int [line 31]\n *&return:int=(1 / ((n$0 + n$1) + 1)) [line 31]\n " shape="box"] "div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_3" -> "div0_namepace_res{d41d8cd98f00b204e9800998ecf8427e_Z17div0_namepace_resv}.8eb98b954d1902dd35b1783695fa021d_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/namespace/namespace.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/namespace/namespace.cpp.dot index 38c557e20..8950de4dc 100644 --- a/infer/tests/codetoanalyze/cpp/shared/namespace/namespace.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/namespace/namespace.cpp.dot @@ -18,7 +18,7 @@ digraph iCFG { "foo::Rectangle_Rectangle{_ZN3foo9RectangleC1Ev}.994e34698d49402781f481c8d7fa0e03_1" -> "foo::Rectangle_Rectangle{_ZN3foo9RectangleC1Ev}.994e34698d49402781f481c8d7fa0e03_2" ; -"__infer_globals_initializer_bar::rect.e5e9061ca63212fdc2fd329df6c073de_3" [label="3: DeclStmt \n _fun_bar::Rectangle_Rectangle(&#GB$bar::rect:class bar::Rectangle*) [line 38]\n " shape="box"] +"__infer_globals_initializer_bar::rect.e5e9061ca63212fdc2fd329df6c073de_3" [label="3: DeclStmt \n _fun_bar::Rectangle_Rectangle(&#GB$bar::rect:class bar::Rectangle*) [line 38]\n " shape="box"] "__infer_globals_initializer_bar::rect.e5e9061ca63212fdc2fd329df6c073de_3" -> "__infer_globals_initializer_bar::rect.e5e9061ca63212fdc2fd329df6c073de_2" ; @@ -36,7 +36,7 @@ digraph iCFG { "bar::Rectangle_Rectangle{_ZN3bar9RectangleC1Ev}.7f1dc038d9ffa5ed845a1ab3cd540788_1" -> "bar::Rectangle_Rectangle{_ZN3bar9RectangleC1Ev}.7f1dc038d9ffa5ed845a1ab3cd540788_2" ; -"bar::value{d41d8cd98f00b204e9800998ecf8427e_ZN3bar5valueEv}.d361dfc00f7d8608972ca0351bcfbf6c_3" [label="3: Return Stmt \n *&#GB$bar::pi:double=3.141600 [line 30]\n n$0=*&#GB$bar::pi:double [line 30]\n *&return:double=(2 * n$0) [line 30]\n " shape="box"] +"bar::value{d41d8cd98f00b204e9800998ecf8427e_ZN3bar5valueEv}.d361dfc00f7d8608972ca0351bcfbf6c_3" [label="3: Return Stmt \n *&#GB$bar::pi:double=3.141600 [line 30]\n n$0=*&#GB$bar::pi:double [line 30]\n *&return:double=(2 * n$0) [line 30]\n " shape="box"] "bar::value{d41d8cd98f00b204e9800998ecf8427e_ZN3bar5valueEv}.d361dfc00f7d8608972ca0351bcfbf6c_3" -> "bar::value{d41d8cd98f00b204e9800998ecf8427e_ZN3bar5valueEv}.d361dfc00f7d8608972ca0351bcfbf6c_2" ; @@ -79,7 +79,7 @@ digraph iCFG { "main.fad58de7366495db4650cfefac2fcd61_5" -> "main.fad58de7366495db4650cfefac2fcd61_4" ; -"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: BinaryOperatorStmt: Assign \n *&#GB$bar::pi:double=3.141600 [line 57]\n n$0=*&#GB$bar::pi:double [line 57]\n *&j:double=n$0 [line 57]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: BinaryOperatorStmt: Assign \n *&#GB$bar::pi:double=3.141600 [line 57]\n n$0=*&#GB$bar::pi:double [line 57]\n *&j:double=n$0 [line 57]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; @@ -101,7 +101,7 @@ digraph iCFG { "foo::my_record_{_ZN3foo9my_recordC1Ev}.1ae7127ddda2158b1422280789f801f9_1" -> "foo::my_record_{_ZN3foo9my_recordC1Ev}.1ae7127ddda2158b1422280789f801f9_2" ; -"__infer_globals_initializer_bar::pi.5a80e79e67d691b53e3a84f8d997acd8_3" [label="3: DeclStmt \n *&#GB$bar::pi:double=3.141600 [line 29]\n " shape="box"] +"__infer_globals_initializer_bar::pi.5a80e79e67d691b53e3a84f8d997acd8_3" [label="3: DeclStmt \n *&#GB$bar::pi:double=3.141600 [line 29]\n " shape="box"] "__infer_globals_initializer_bar::pi.5a80e79e67d691b53e3a84f8d997acd8_3" -> "__infer_globals_initializer_bar::pi.5a80e79e67d691b53e3a84f8d997acd8_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/reference/member_access_from_return.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/reference/member_access_from_return.cpp.dot index 3e02d8e92..d45c39be2 100644 --- a/infer/tests/codetoanalyze/cpp/shared/reference/member_access_from_return.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/reference/member_access_from_return.cpp.dot @@ -1,6 +1,6 @@ /* @generated */ digraph iCFG { -"__infer_globals_initializer_global.bdc08c089842ce08b974b22a75daf78e_3" [label="3: DeclStmt \n _fun_X_X(&#GB$global:class X*) [line 15]\n " shape="box"] +"__infer_globals_initializer_global.bdc08c089842ce08b974b22a75daf78e_3" [label="3: DeclStmt \n _fun_X_X(&#GB$global:class X*) [line 15]\n " shape="box"] "__infer_globals_initializer_global.bdc08c089842ce08b974b22a75daf78e_3" -> "__infer_globals_initializer_global.bdc08c089842ce08b974b22a75daf78e_2" ; @@ -18,7 +18,7 @@ digraph iCFG { "X_X{_ZN1XC1Ev}.dbc1390b15606562094682699e12caba_1" -> "X_X{_ZN1XC1Ev}.dbc1390b15606562094682699e12caba_2" ; -"get_ptr{d41d8cd98f00b204e9800998ecf8427e_Z7get_ptrv}.79c23fccc4af78490d3b790f3bfe4b4b_3" [label="3: Return Stmt \n *&return:class X*=&#GB$global [line 16]\n " shape="box"] +"get_ptr{d41d8cd98f00b204e9800998ecf8427e_Z7get_ptrv}.79c23fccc4af78490d3b790f3bfe4b4b_3" [label="3: Return Stmt \n *&return:class X*=&#GB$global [line 16]\n " shape="box"] "get_ptr{d41d8cd98f00b204e9800998ecf8427e_Z7get_ptrv}.79c23fccc4af78490d3b790f3bfe4b4b_3" -> "get_ptr{d41d8cd98f00b204e9800998ecf8427e_Z7get_ptrv}.79c23fccc4af78490d3b790f3bfe4b4b_2" ; @@ -44,7 +44,7 @@ digraph iCFG { "test_ref{d41d8cd98f00b204e9800998ecf8427e_Z8test_refv}.00ae903ec76106232cfb760d7c58e99e_1" -> "test_ref{d41d8cd98f00b204e9800998ecf8427e_Z8test_refv}.00ae903ec76106232cfb760d7c58e99e_4" ; -"get_ref{d41d8cd98f00b204e9800998ecf8427e_Z7get_refv}.bbbf241bd8d761aafd6f3adea16247b8_3" [label="3: Return Stmt \n *&return:class X&=&#GB$global [line 17]\n " shape="box"] +"get_ref{d41d8cd98f00b204e9800998ecf8427e_Z7get_refv}.bbbf241bd8d761aafd6f3adea16247b8_3" [label="3: Return Stmt \n *&return:class X&=&#GB$global [line 17]\n " shape="box"] "get_ref{d41d8cd98f00b204e9800998ecf8427e_Z7get_refv}.bbbf241bd8d761aafd6f3adea16247b8_3" -> "get_ref{d41d8cd98f00b204e9800998ecf8427e_Z7get_refv}.bbbf241bd8d761aafd6f3adea16247b8_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp.dot index 071eb1fb6..b3312c065 100644 --- a/infer/tests/codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/reference/reference_struct_e2e.cpp.dot @@ -96,7 +96,7 @@ digraph iCFG { "method_div0_ptr{d41d8cd98f00b204e9800998ecf8427e_Z15method_div0_ptrP1X}.f3e4b6dda73405cc6ef139c433f1be83_1" -> "method_div0_ptr{d41d8cd98f00b204e9800998ecf8427e_Z15method_div0_ptrP1X}.f3e4b6dda73405cc6ef139c433f1be83_5" ; "method_div0_ptr{d41d8cd98f00b204e9800998ecf8427e_Z15method_div0_ptrP1X}.f3e4b6dda73405cc6ef139c433f1be83_1" -> "method_div0_ptr{d41d8cd98f00b204e9800998ecf8427e_Z15method_div0_ptrP1X}.f3e4b6dda73405cc6ef139c433f1be83_6" ; -"__infer_globals_initializer_global.bdc08c089842ce08b974b22a75daf78e_3" [label="3: DeclStmt \n _fun_X_X(&#GB$global:class X*) [line 29]\n " shape="box"] +"__infer_globals_initializer_global.bdc08c089842ce08b974b22a75daf78e_3" [label="3: DeclStmt \n _fun_X_X(&#GB$global:class X*) [line 29]\n " shape="box"] "__infer_globals_initializer_global.bdc08c089842ce08b974b22a75daf78e_3" -> "__infer_globals_initializer_global.bdc08c089842ce08b974b22a75daf78e_2" ; @@ -137,7 +137,7 @@ digraph iCFG { "get_global_ref_div1_field{d41d8cd98f00b204e9800998ecf8427e_Z25get_global_ref_div1_fieldv}.8607dfe596d93bdff8ef4771a2860768_1" -> "get_global_ref_div1_field{d41d8cd98f00b204e9800998ecf8427e_Z25get_global_ref_div1_fieldv}.8607dfe596d93bdff8ef4771a2860768_5" ; -"get_global_ref{d41d8cd98f00b204e9800998ecf8427e_Z14get_global_refv}.f4b7019d054deab282b87afe2627508e_3" [label="3: Return Stmt \n *&return:class X&=&#GB$global [line 31]\n " shape="box"] +"get_global_ref{d41d8cd98f00b204e9800998ecf8427e_Z14get_global_refv}.f4b7019d054deab282b87afe2627508e_3" [label="3: Return Stmt \n *&return:class X&=&#GB$global [line 31]\n " shape="box"] "get_global_ref{d41d8cd98f00b204e9800998ecf8427e_Z14get_global_refv}.f4b7019d054deab282b87afe2627508e_3" -> "get_global_ref{d41d8cd98f00b204e9800998ecf8427e_Z14get_global_refv}.f4b7019d054deab282b87afe2627508e_2" ; @@ -236,7 +236,7 @@ digraph iCFG { "method_div1_ptr{d41d8cd98f00b204e9800998ecf8427e_Z15method_div1_ptrP1X}.1c0e973f73df66029a031ece1247cb9b_1" -> "method_div1_ptr{d41d8cd98f00b204e9800998ecf8427e_Z15method_div1_ptrP1X}.1c0e973f73df66029a031ece1247cb9b_5" ; "method_div1_ptr{d41d8cd98f00b204e9800998ecf8427e_Z15method_div1_ptrP1X}.1c0e973f73df66029a031ece1247cb9b_1" -> "method_div1_ptr{d41d8cd98f00b204e9800998ecf8427e_Z15method_div1_ptrP1X}.1c0e973f73df66029a031ece1247cb9b_6" ; -"get_global_ptr{d41d8cd98f00b204e9800998ecf8427e_Z14get_global_ptrv}.2c09171c0890ad0c015390a6138a2db9_3" [label="3: Return Stmt \n *&return:class X*=&#GB$global [line 30]\n " shape="box"] +"get_global_ptr{d41d8cd98f00b204e9800998ecf8427e_Z14get_global_ptrv}.2c09171c0890ad0c015390a6138a2db9_3" [label="3: Return Stmt \n *&return:class X*=&#GB$global [line 30]\n " shape="box"] "get_global_ptr{d41d8cd98f00b204e9800998ecf8427e_Z14get_global_ptrv}.2c09171c0890ad0c015390a6138a2db9_3" -> "get_global_ptr{d41d8cd98f00b204e9800998ecf8427e_Z14get_global_ptrv}.2c09171c0890ad0c015390a6138a2db9_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/templates/sizeof_pack.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/templates/sizeof_pack.cpp.dot index 7710018a7..969790994 100644 --- a/infer/tests/codetoanalyze/cpp/shared/templates/sizeof_pack.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/templates/sizeof_pack.cpp.dot @@ -11,7 +11,7 @@ digraph iCFG { "MyHasher_hash(_ZN8MyHasher4hashEi).eb9ae99d1fcb0f8714448f416948e011_1" -> "MyHasher_hash(_ZN8MyHasher4hashEi).eb9ae99d1fcb0f8714448f416948e011_3" ; -"__infer_globals_initializer_test.19c6153ea70b713d8d2a1a0fd4ae91e3_3" [label="3: DeclStmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$0:int=0 [line 23]\n *&0$?%__sil_tmpSIL_materialize_temp__n$1:int=0 [line 23]\n *&0$?%__sil_tmpSIL_materialize_temp__n$2:int=0 [line 23]\n n$3=_fun_hash_combine_generic(&0$?%__sil_tmpSIL_materialize_temp__n$0:int&,&0$?%__sil_tmpSIL_materialize_temp__n$1:int&,&0$?%__sil_tmpSIL_materialize_temp__n$2:int&) [line 23]\n *&#GB$test:int=n$3 [line 23]\n " shape="box"] +"__infer_globals_initializer_test.19c6153ea70b713d8d2a1a0fd4ae91e3_3" [label="3: DeclStmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$0:int=0 [line 23]\n *&0$?%__sil_tmpSIL_materialize_temp__n$1:int=0 [line 23]\n *&0$?%__sil_tmpSIL_materialize_temp__n$2:int=0 [line 23]\n n$3=_fun_hash_combine_generic(&0$?%__sil_tmpSIL_materialize_temp__n$0:int&,&0$?%__sil_tmpSIL_materialize_temp__n$1:int&,&0$?%__sil_tmpSIL_materialize_temp__n$2:int&) [line 23]\n *&#GB$test:int=n$3 [line 23]\n " shape="box"] "__infer_globals_initializer_test.19c6153ea70b713d8d2a1a0fd4ae91e3_3" -> "__infer_globals_initializer_test.19c6153ea70b713d8d2a1a0fd4ae91e3_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/types/typeid_expr.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/types/typeid_expr.cpp.dot index f354e9e3a..85e9d7c84 100644 --- a/infer/tests/codetoanalyze/cpp/shared/types/typeid_expr.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/types/typeid_expr.cpp.dot @@ -236,7 +236,7 @@ digraph iCFG { "Employee_~Employee(_ZN6PersonD0Ev).74f3bba15ec35ceae1c235a49d9fbfbd_1" -> "Employee_~Employee(_ZN6PersonD0Ev).74f3bba15ec35ceae1c235a49d9fbfbd_2" ; -"__infer_globals_initializer_std::__1::__numeric_type::value.57c383a785ca57f6432142c6cac8d773_3" [label="3: DeclStmt \n *&#GB$std::__1::__numeric_type::value:_Bool=1 [line 1697]\n " shape="box"] +"__infer_globals_initializer_std::__1::__numeric_type::value.57c383a785ca57f6432142c6cac8d773_3" [label="3: DeclStmt \n *&#GB$std::__1::__numeric_type::value:_Bool=1 [line 1697]\n " shape="box"] "__infer_globals_initializer_std::__1::__numeric_type::value.57c383a785ca57f6432142c6cac8d773_3" -> "__infer_globals_initializer_std::__1::__numeric_type::value.57c383a785ca57f6432142c6cac8d773_2" ; diff --git a/infer/tests/codetoanalyze/java/tracing/issues.exp b/infer/tests/codetoanalyze/java/tracing/issues.exp index 6fa528c3e..02b6a2577 100644 --- a/infer/tests/codetoanalyze/java/tracing/issues.exp +++ b/infer/tests/codetoanalyze/java/tracing/issues.exp @@ -1,19 +1,53 @@ +codetoanalyze/java/infer/ArrayOutOfBounds.java, int ArrayOutOfBounds.arrayOutOfBounds(), 2, java.lang.ArrayIndexOutOfBoundsException, [start of procedure arrayOutOfBounds(),Taking true branch,exception java.lang.ArrayIndexOutOfBoundsException,return from a call to int ArrayOutOfBounds.arrayOutOfBounds()] +codetoanalyze/java/infer/ClassCastExceptions.java, int ClassCastExceptions.classCastExceptionImplementsInterface(), 0, java.lang.ClassCastException, [start of procedure classCastExceptionImplementsInterface(),start of procedure AnotherImplementationOfInterface(),return from a call to AnotherImplementationOfInterface.(),start of procedure classCastExceptionImplementsInterfaceCallee(...),exception java.lang.ClassCastException,return from a call to int ClassCastExceptions.classCastExceptionImplementsInterfaceCallee(AnotherImplementationOfInterface),exception java.lang.ClassCastException,return from a call to int ClassCastExceptions.classCastExceptionImplementsInterface()] +codetoanalyze/java/infer/ClassCastExceptions.java, void ClassCastExceptions.classCastException(), 3, java.lang.ClassCastException, [start of procedure classCastException(),start of procedure SubClassA(),start of procedure SuperClass(),return from a call to SuperClass.(),return from a call to SubClassA.(),exception java.lang.ClassCastException,return from a call to void ClassCastExceptions.classCastException()] +codetoanalyze/java/infer/ClassCastExceptions.java, void ClassCastExceptions.openHttpURLConnection(), 4, java.lang.ClassCastException, [start of procedure openHttpURLConnection(),start of procedure getURL(),return from a call to String ClassCastExceptions.getURL(),Taking true branch,exception java.lang.ClassCastException,return from a call to void ClassCastExceptions.openHttpURLConnection()] +codetoanalyze/java/infer/CloseableAsResourceExample.java, T CloseableAsResourceExample.sourceOfNullWithResourceLeak(), 1, RESOURCE_LEAK, [start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.()] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.failToCloseWithCloseQuietly(), 5, RESOURCE_LEAK, [start of procedure failToCloseWithCloseQuietly(),start of procedure SomeResource(),return from a call to SomeResource.(),Taking true branch,start of procedure doSomething(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),Taking true branch,exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.leakFoundWhenIndirectlyImplementingCloseable(), 1, RESOURCE_LEAK, [start of procedure leakFoundWhenIndirectlyImplementingCloseable(),start of procedure CloseableAsResourceExample$MyResource(...),return from a call to CloseableAsResourceExample$MyResource.(CloseableAsResourceExample)] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.notClosingCloseable(), 1, RESOURCE_LEAK, [start of procedure notClosingCloseable(),start of procedure SomeResource(),return from a call to SomeResource.()] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.notClosingWrapper(), 2, RESOURCE_LEAK, [start of procedure notClosingWrapper(),start of procedure Resource(),return from a call to Resource.(),start of procedure Sub(...),start of procedure Wrapper(...),return from a call to Wrapper.(Resource),return from a call to Sub.(Resource),Taking true branch,Taking true branch,start of procedure close(),return from a call to void Resource.close()] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.skippedVritualCallDoesNotCloseResourceOnReceiver(), 2, RESOURCE_LEAK, [start of procedure skippedVritualCallDoesNotCloseResourceOnReceiver(),start of procedure SomeResource(),return from a call to SomeResource.(),Taking true branch] +codetoanalyze/java/infer/CloseableAsResourceExample.java, void CloseableAsResourceExample.withException(), 4, RESOURCE_LEAK, [start of procedure withException(),start of procedure SomeResource(),return from a call to SomeResource.(),Taking true branch,start of procedure doSomething(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),Taking true branch,exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] +codetoanalyze/java/infer/NullPointerExceptions.java, String NullPointerExceptions.testSystemGetPropertyArgument(), 1, NULL_DEREFERENCE, [start of procedure testSystemGetPropertyArgument()] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.nullListFiles(String), 3, java.lang.NullPointerException, [start of procedure nullListFiles(...),Taking true branch,exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullListFiles(String)] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerException(), 2, java.lang.NullPointerException, [start of procedure nullPointerException(),exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerException()] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionInterProc(), 2, java.lang.NullPointerException, [start of procedure nullPointerExceptionInterProc(),start of procedure canReturnNullObject(...),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),Taking false branch,return from a call to NullPointerExceptions$A NullPointerExceptions.canReturnNullObject(boolean),exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerExceptionInterProc()] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C), 2, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithAChainOfFields(...),start of procedure NullPointerExceptions$B(...),return from a call to NullPointerExceptions$B.(NullPointerExceptions),Taking true branch,Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C)] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C), 2, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithAChainOfFields(...),start of procedure NullPointerExceptions$B(...),return from a call to NullPointerExceptions$B.(NullPointerExceptions),Taking true branch,Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C)] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithArray(), 3, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithArray(),Taking true branch,Taking true branch,Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerExceptionWithArray()] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean), 5, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithExceptionHandling(...),Taking true branch,exception java.lang.Exception,Switch condition is true. Entering switch case,exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean)] +codetoanalyze/java/infer/NullPointerExceptions.java, int NullPointerExceptions.preconditionCheckStateTest(NullPointerExceptions$D), 1, PRECONDITION_NOT_MET, [start of procedure preconditionCheckStateTest(...),Taking false branch] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars(), 3, java.lang.NullPointerException, [start of procedure npeWithDollars(),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.badCheckShouldCauseNPE(), 2, java.lang.NullPointerException, [start of procedure badCheckShouldCauseNPE(),start of procedure getBool(),Taking false branch,return from a call to Boolean NullPointerExceptions.getBool(),Taking false branch,return from a call to void NullPointerExceptions.badCheckShouldCauseNPE()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.derefNonThisGetterAfterCheckShouldNotCauseNPE(), 5, java.lang.NullPointerException, [start of procedure derefNonThisGetterAfterCheckShouldNotCauseNPE(),start of procedure NullPointerExceptions(),return from a call to NullPointerExceptions.(),Taking true branch,start of procedure getObj(),Taking false branch,return from a call to Object NullPointerExceptions.getObj(),Taking false branch,return from a call to void NullPointerExceptions.derefNonThisGetterAfterCheckShouldNotCauseNPE()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.derefNull(), 3, java.lang.NullPointerException, [start of procedure derefNull(),start of procedure derefUndefinedCallee(),start of procedure retUndefined(),Taking true branch,return from a call to Object NullPointerExceptions.retUndefined(),Taking true branch,return from a call to Object NullPointerExceptions.derefUndefinedCallee(),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.derefNull()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.derefUndefNullableRetWrapper(), 2, java.lang.NullPointerException, [start of procedure derefUndefNullableRetWrapper(),start of procedure undefNullableWrapper(),return from a call to Object NullPointerExceptions.undefNullableWrapper(),Taking true branch,return from a call to void NullPointerExceptions.derefUndefNullableRetWrapper()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L), 3, java.lang.NullPointerException, [start of procedure dereferenceAfterLoopOnList(...),start of procedure returnsNullAfterLoopOnList(...),Taking true branch,Taking true branch,Taking true branch,Taking true branch,Taking false branch,return from a call to Object NullPointerExceptions.returnsNullAfterLoopOnList(NullPointerExceptions$L),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L), 3, java.lang.NullPointerException, [start of procedure dereferenceAfterLoopOnList(...),start of procedure returnsNullAfterLoopOnList(...),Taking true branch,Taking true branch,Taking true branch,Taking true branch,Taking false branch,return from a call to Object NullPointerExceptions.returnsNullAfterLoopOnList(NullPointerExceptions$L),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock1(Lock), 5, java.lang.NullPointerException, [start of procedure dereferenceAfterUnlock1(...),Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterUnlock1(Lock)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock1(Lock), 5, java.lang.NullPointerException, [start of procedure dereferenceAfterUnlock1(...),Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterUnlock1(Lock)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock2(Lock), 7, java.lang.NullPointerException, [start of procedure dereferenceAfterUnlock2(...),Taking true branch,Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterUnlock2(Lock)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock2(Lock), 7, java.lang.NullPointerException, [start of procedure dereferenceAfterUnlock2(...),Taking true branch,Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterUnlock2(Lock)] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.noNullPointerExceptionAfterSkipFunction(), 4, RETURN_VALUE_IGNORED, [start of procedure noNullPointerExceptionAfterSkipFunction(),Taking true branch,start of procedure genericMethodSomewhereCheckingForNull(...),Taking false branch,return from a call to void NullPointerExceptions.genericMethodSomewhereCheckingForNull(String),Taking true branch] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionArrayLength(), 3, java.lang.NullPointerException, [start of procedure nullPointerExceptionArrayLength(),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionArrayLength()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod(), 3, java.lang.NullPointerException, [start of procedure nullPointerExceptionCallArrayReadMethod(),Taking true branch,Taking true branch,start of procedure arrayReadShouldNotCauseSymexMemoryError(...),Taking true branch,Taking true branch,Taking true branch,return from a call to Object NullPointerExceptions.arrayReadShouldNotCauseSymexMemoryError(int),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod(), 3, java.lang.NullPointerException, [start of procedure nullPointerExceptionCallArrayReadMethod(),Taking true branch,Taking true branch,start of procedure arrayReadShouldNotCauseSymexMemoryError(...),Taking true branch,Taking true branch,Taking true branch,return from a call to Object NullPointerExceptions.arrayReadShouldNotCauseSymexMemoryError(int),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFailingFileOutputStreamConstructor(), 9, java.lang.NullPointerException, [start of procedure nullPointerExceptionFromFailingFileOutputStreamConstructor(),Taking true branch,return from a call to void NullPointerExceptions.nullPointerExceptionFromFailingFileOutputStreamConstructor()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFaillingResourceConstructor(), 8, java.lang.NullPointerException, [start of procedure nullPointerExceptionFromFaillingResourceConstructor(),Taking true branch,return from a call to void NullPointerExceptions.nullPointerExceptionFromFaillingResourceConstructor()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionUnlessFrameFails(), 6, java.lang.NullPointerException, [start of procedure nullPointerExceptionUnlessFrameFails(),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),start of procedure frame(...),start of procedure id_generics(...),Taking true branch,return from a call to Object NullPointerExceptions.id_generics(NullPointerExceptions$A),Taking true branch,return from a call to NullPointerExceptions$A NullPointerExceptions.frame(NullPointerExceptions$A),Taking true branch,exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionUnlessFrameFails()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullArrayParameter(), 2, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithNullArrayParameter(),start of procedure expectNotNullArrayParameter(...),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.expectNotNullArrayParameter(codetoanalyze.java.infer.NullPointerExceptions$A[]),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionWithNullArrayParameter()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullObjectParameter(), 2, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithNullObjectParameter(),start of procedure expectNotNullObjectParameter(...),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.expectNotNullObjectParameter(NullPointerExceptions$A),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionWithNullObjectParameter()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.nullableNonNullStringAfterTextUtilsIsEmptyCheckShouldNotCauseNPE(String), 2, RETURN_VALUE_IGNORED, [start of procedure nullableNonNullStringAfterTextUtilsIsEmptyCheckShouldNotCauseNPE(...),Taking true branch,Taking true branch] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.someNPEAfterResourceLeak(), 3, java.lang.NullPointerException, [start of procedure someNPEAfterResourceLeak(),start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.(),return from a call to T CloseableAsResourceExample.sourceOfNullWithResourceLeak(),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.someNPEAfterResourceLeak()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.stringConstantEqualsFalseNotNPE_FP(), 11, java.lang.NullPointerException, [start of procedure stringConstantEqualsFalseNotNPE_FP(),Taking true branch,Taking true branch,Taking true branch,return from a call to void NullPointerExceptions.stringConstantEqualsFalseNotNPE_FP()] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.testSystemGetPropertyReturn(), 2, RETURN_VALUE_IGNORED, [start of procedure testSystemGetPropertyReturn(),Taking true branch] +codetoanalyze/java/infer/NullPointerExceptions.java, void NullPointerExceptions.testSystemGetPropertyReturn(), 3, java.lang.NullPointerException, [start of procedure testSystemGetPropertyReturn(),Taking true branch,return from a call to void NullPointerExceptions.testSystemGetPropertyReturn()] codetoanalyze/java/tracing/ArrayIndexOutOfBoundsExceptionExample.java, void ArrayIndexOutOfBoundsExceptionExample.arrayIndexOutOfBoundsInCallee(), 3, java.lang.ArrayIndexOutOfBoundsException, [start of procedure arrayIndexOutOfBoundsInCallee(),start of procedure withFixedIndex(...),start of procedure callMethodFromArray(...),Taking true branch,Taking true branch,Taking true branch,Taking true branch,Taking true branch,Taking true branch,start of procedure f(),return from a call to void T2.f(),return from a call to void ArrayIndexOutOfBoundsExceptionExample.callMethodFromArray(codetoanalyze.java.tracing.T2[],int),return from a call to void ArrayIndexOutOfBoundsExceptionExample.withFixedIndex(codetoanalyze.java.tracing.T2[]),return from a call to void ArrayIndexOutOfBoundsExceptionExample.arrayIndexOutOfBoundsInCallee()] codetoanalyze/java/tracing/ArrayIndexOutOfBoundsExceptionExample.java, void ArrayIndexOutOfBoundsExceptionExample.callOutOfBound(), 3, java.lang.ArrayIndexOutOfBoundsException, [start of procedure callOutOfBound(),start of procedure callMethodFromArray(...),Taking true branch,exception java.lang.ArrayIndexOutOfBoundsException,return from a call to void ArrayIndexOutOfBoundsExceptionExample.callMethodFromArray(codetoanalyze.java.tracing.T2[],int),exception java.lang.ArrayIndexOutOfBoundsException,return from a call to void ArrayIndexOutOfBoundsExceptionExample.callOutOfBound()] codetoanalyze/java/tracing/ArrayIndexOutOfBoundsExceptionExample.java, void ArrayIndexOutOfBoundsExceptionExample.missingCheckOnIndex(codetoanalyze.java.tracing.T2[],int), 6, java.lang.ArrayIndexOutOfBoundsException, [start of procedure missingCheckOnIndex(...),Taking true branch,Taking true branch,Taking true branch,start of procedure callMethodFromArray(...),Taking true branch,exception java.lang.ArrayIndexOutOfBoundsException,return from a call to void ArrayIndexOutOfBoundsExceptionExample.callMethodFromArray(codetoanalyze.java.tracing.T2[],int),exception java.lang.ArrayIndexOutOfBoundsException,return from a call to void ArrayIndexOutOfBoundsExceptionExample.missingCheckOnIndex(codetoanalyze.java.tracing.T2[],int)] -codetoanalyze/java/tracing/ArrayOutOfBounds.java, int ArrayOutOfBounds.arrayOutOfBounds(), 2, java.lang.ArrayIndexOutOfBoundsException, [start of procedure arrayOutOfBounds(),Taking true branch,exception java.lang.ArrayIndexOutOfBoundsException,return from a call to int ArrayOutOfBounds.arrayOutOfBounds()] codetoanalyze/java/tracing/ClassCastExceptionExample.java, S ClassCastExceptionExample.bar(int), 4, java.lang.ClassCastException, [start of procedure bar(...),Taking true branch,Taking true branch,exception java.lang.ClassCastException,return from a call to S ClassCastExceptionExample.bar(int)] codetoanalyze/java/tracing/ClassCastExceptionExample.java, void ClassCastExceptionExample.foo(), 4, java.lang.ClassCastException, [start of procedure foo(),start of procedure T2(),return from a call to T2.(),start of procedure cast(...),exception java.lang.ClassCastException,return from a call to S ClassCastExceptionExample.cast(T2),exception java.lang.ClassCastException,return from a call to void ClassCastExceptionExample.foo()] -codetoanalyze/java/tracing/ClassCastExceptions.java, int ClassCastExceptions.classCastExceptionImplementsInterface(), 0, java.lang.ClassCastException, [start of procedure classCastExceptionImplementsInterface(),start of procedure AnotherImplementationOfInterface(),return from a call to AnotherImplementationOfInterface.(),start of procedure classCastExceptionImplementsInterfaceCallee(...),exception java.lang.ClassCastException,return from a call to int ClassCastExceptions.classCastExceptionImplementsInterfaceCallee(AnotherImplementationOfInterface),exception java.lang.ClassCastException,return from a call to int ClassCastExceptions.classCastExceptionImplementsInterface()] -codetoanalyze/java/tracing/ClassCastExceptions.java, void ClassCastExceptions.classCastException(), 3, java.lang.ClassCastException, [start of procedure classCastException(),start of procedure SubClassA(),start of procedure SuperClass(),return from a call to SuperClass.(),return from a call to SubClassA.(),exception java.lang.ClassCastException,return from a call to void ClassCastExceptions.classCastException()] -codetoanalyze/java/tracing/ClassCastExceptions.java, void ClassCastExceptions.openHttpURLConnection(), 4, java.lang.ClassCastException, [start of procedure openHttpURLConnection(),start of procedure getURL(),return from a call to String ClassCastExceptions.getURL(),Taking true branch,exception java.lang.ClassCastException,return from a call to void ClassCastExceptions.openHttpURLConnection()] -codetoanalyze/java/tracing/CloseableAsResourceExample.java, T CloseableAsResourceExample.sourceOfNullWithResourceLeak(), 1, RESOURCE_LEAK, [start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.()] -codetoanalyze/java/tracing/CloseableAsResourceExample.java, void CloseableAsResourceExample.failToCloseWithCloseQuietly(), 5, RESOURCE_LEAK, [start of procedure failToCloseWithCloseQuietly(),start of procedure SomeResource(),return from a call to SomeResource.(),Taking true branch,start of procedure doSomething(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),Taking true branch,exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] -codetoanalyze/java/tracing/CloseableAsResourceExample.java, void CloseableAsResourceExample.leakFoundWhenIndirectlyImplementingCloseable(), 1, RESOURCE_LEAK, [start of procedure leakFoundWhenIndirectlyImplementingCloseable(),start of procedure CloseableAsResourceExample$MyResource(...),return from a call to CloseableAsResourceExample$MyResource.(CloseableAsResourceExample)] -codetoanalyze/java/tracing/CloseableAsResourceExample.java, void CloseableAsResourceExample.notClosingCloseable(), 1, RESOURCE_LEAK, [start of procedure notClosingCloseable(),start of procedure SomeResource(),return from a call to SomeResource.()] -codetoanalyze/java/tracing/CloseableAsResourceExample.java, void CloseableAsResourceExample.notClosingWrapper(), 2, RESOURCE_LEAK, [start of procedure notClosingWrapper(),start of procedure Resource(),return from a call to Resource.(),start of procedure Sub(...),start of procedure Wrapper(...),return from a call to Wrapper.(Resource),return from a call to Sub.(Resource),Taking true branch,Taking true branch,start of procedure close(),return from a call to void Resource.close()] -codetoanalyze/java/tracing/CloseableAsResourceExample.java, void CloseableAsResourceExample.skippedVritualCallDoesNotCloseResourceOnReceiver(), 2, RESOURCE_LEAK, [start of procedure skippedVritualCallDoesNotCloseResourceOnReceiver(),start of procedure SomeResource(),return from a call to SomeResource.(),Taking true branch] -codetoanalyze/java/tracing/CloseableAsResourceExample.java, void CloseableAsResourceExample.withException(), 4, RESOURCE_LEAK, [start of procedure withException(),start of procedure SomeResource(),return from a call to SomeResource.(),Taking true branch,start of procedure doSomething(),Taking true branch,start of procedure LocalException(),return from a call to LocalException.(),Taking true branch,exception codetoanalyze.java.infer.LocalException,return from a call to void SomeResource.doSomething()] codetoanalyze/java/tracing/LazyDynamicDispatchExample.java, void LazyDynamicDispatchExample.callWithSubtype(), 3, java.lang.NullPointerException, [start of procedure callWithSubtype(),start of procedure B(),start of procedure A(),return from a call to A.(),return from a call to B.(),start of procedure fromSupertype(...),Taking true branch,start of procedure get(),return from a call to T2 B.get(),return from a call to T2 LazyDynamicDispatchExample.fromSupertype(B),exception java.lang.NullPointerException,return from a call to void LazyDynamicDispatchExample.callWithSubtype()] codetoanalyze/java/tracing/LazyDynamicDispatchExample.java, void LazyDynamicDispatchExample.shouldReportLocalVarTypeIsKnown(), 3, java.lang.NullPointerException, [start of procedure shouldReportLocalVarTypeIsKnown(),start of procedure B(),start of procedure A(),return from a call to A.(),return from a call to B.(),start of procedure fromInterface(...),Taking true branch,start of procedure get(),return from a call to T2 B.get(),return from a call to T2 LazyDynamicDispatchExample.fromInterface(B),exception java.lang.NullPointerException,return from a call to void LazyDynamicDispatchExample.shouldReportLocalVarTypeIsKnown()] codetoanalyze/java/tracing/LocallyDefinedExceptionExample.java, void LocallyDefinedExceptionExample.fieldInvariant(), 8, codetoanalyze.java.tracing.LocallyDefinedException, [start of procedure fieldInvariant(),Taking true branch,Taking true branch,Taking true branch,start of procedure LocallyDefinedException(...),return from a call to LocallyDefinedException.(String),Taking true branch,exception codetoanalyze.java.tracing.LocallyDefinedException,return from a call to void LocallyDefinedExceptionExample.fieldInvariant()] @@ -21,40 +55,6 @@ codetoanalyze/java/tracing/NullPointerExceptionExample.java, void NullPointerExc codetoanalyze/java/tracing/NullPointerExceptionExample.java, void NullPointerExceptionExample.callLeadToNpe(), 2, java.lang.NullPointerException, [start of procedure callLeadToNpe(),start of procedure callDeref(...),Taking true branch,start of procedure deref(...),exception java.lang.NullPointerException,return from a call to void NullPointerExceptionExample.deref(T2),exception java.lang.NullPointerException,return from a call to void NullPointerExceptionExample.callDeref(T2,boolean),exception java.lang.NullPointerException,return from a call to void NullPointerExceptionExample.callLeadToNpe()] codetoanalyze/java/tracing/NullPointerExceptionExample.java, void NullPointerExceptionExample.npeOnBothBranches(int), 6, java.lang.NullPointerException, [start of procedure npeOnBothBranches(...),Taking true branch,Taking true branch,Taking true branch,start of procedure callDeref(...),Taking true branch,start of procedure deref(...),exception java.lang.NullPointerException,return from a call to void NullPointerExceptionExample.deref(T2),exception java.lang.NullPointerException,return from a call to void NullPointerExceptionExample.callDeref(T2,boolean),exception java.lang.NullPointerException,return from a call to void NullPointerExceptionExample.npeOnBothBranches(int)] codetoanalyze/java/tracing/NullPointerExceptionExample.java, void NullPointerExceptionExample.npeOnBothBranches(int), 6, java.lang.NullPointerException, [start of procedure npeOnBothBranches(...),Taking true branch,Taking true branch,Taking true branch,start of procedure callDeref(...),Taking true branch,start of procedure deref(...),exception java.lang.NullPointerException,return from a call to void NullPointerExceptionExample.deref(T2),exception java.lang.NullPointerException,return from a call to void NullPointerExceptionExample.callDeref(T2,boolean),exception java.lang.NullPointerException,return from a call to void NullPointerExceptionExample.npeOnBothBranches(int)] -codetoanalyze/java/tracing/NullPointerExceptions.java, String NullPointerExceptions.testSystemGetPropertyArgument(), 1, NULL_DEREFERENCE, [start of procedure testSystemGetPropertyArgument()] -codetoanalyze/java/tracing/NullPointerExceptions.java, int NullPointerExceptions.nullListFiles(String), 3, java.lang.NullPointerException, [start of procedure nullListFiles(...),Taking true branch,exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullListFiles(String)] -codetoanalyze/java/tracing/NullPointerExceptions.java, int NullPointerExceptions.nullPointerException(), 2, java.lang.NullPointerException, [start of procedure nullPointerException(),exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerException()] -codetoanalyze/java/tracing/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionInterProc(), 2, java.lang.NullPointerException, [start of procedure nullPointerExceptionInterProc(),start of procedure canReturnNullObject(...),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),Taking false branch,return from a call to NullPointerExceptions$A NullPointerExceptions.canReturnNullObject(boolean),exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerExceptionInterProc()] -codetoanalyze/java/tracing/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C), 2, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithAChainOfFields(...),start of procedure NullPointerExceptions$B(...),return from a call to NullPointerExceptions$B.(NullPointerExceptions),Taking true branch,Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C)] -codetoanalyze/java/tracing/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C), 2, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithAChainOfFields(...),start of procedure NullPointerExceptions$B(...),return from a call to NullPointerExceptions$B.(NullPointerExceptions),Taking true branch,Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerExceptionWithAChainOfFields(NullPointerExceptions$C)] -codetoanalyze/java/tracing/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithArray(), 3, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithArray(),Taking true branch,Taking true branch,Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerExceptionWithArray()] -codetoanalyze/java/tracing/NullPointerExceptions.java, int NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean), 5, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithExceptionHandling(...),Taking true branch,exception java.lang.Exception,Switch condition is true. Entering switch case,exception java.lang.NullPointerException,return from a call to int NullPointerExceptions.nullPointerExceptionWithExceptionHandling(boolean)] -codetoanalyze/java/tracing/NullPointerExceptions.java, int NullPointerExceptions.preconditionCheckStateTest(NullPointerExceptions$D), 1, PRECONDITION_NOT_MET, [start of procedure preconditionCheckStateTest(...),Taking false branch] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars(), 3, java.lang.NullPointerException, [start of procedure npeWithDollars(),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions$$$Class$Name$With$Dollars.npeWithDollars()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.badCheckShouldCauseNPE(), 2, java.lang.NullPointerException, [start of procedure badCheckShouldCauseNPE(),start of procedure getBool(),Taking false branch,return from a call to Boolean NullPointerExceptions.getBool(),Taking false branch,return from a call to void NullPointerExceptions.badCheckShouldCauseNPE()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.derefNonThisGetterAfterCheckShouldNotCauseNPE(), 5, java.lang.NullPointerException, [start of procedure derefNonThisGetterAfterCheckShouldNotCauseNPE(),start of procedure NullPointerExceptions(),return from a call to NullPointerExceptions.(),Taking true branch,start of procedure getObj(),Taking false branch,return from a call to Object NullPointerExceptions.getObj(),Taking false branch,return from a call to void NullPointerExceptions.derefNonThisGetterAfterCheckShouldNotCauseNPE()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.derefNull(), 3, java.lang.NullPointerException, [start of procedure derefNull(),start of procedure derefUndefinedCallee(),start of procedure retUndefined(),Taking true branch,return from a call to Object NullPointerExceptions.retUndefined(),Taking true branch,return from a call to Object NullPointerExceptions.derefUndefinedCallee(),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.derefNull()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.derefUndefNullableRetWrapper(), 2, java.lang.NullPointerException, [start of procedure derefUndefNullableRetWrapper(),start of procedure undefNullableWrapper(),return from a call to Object NullPointerExceptions.undefNullableWrapper(),Taking true branch,return from a call to void NullPointerExceptions.derefUndefNullableRetWrapper()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L), 3, java.lang.NullPointerException, [start of procedure dereferenceAfterLoopOnList(...),start of procedure returnsNullAfterLoopOnList(...),Taking true branch,Taking true branch,Taking true branch,Taking true branch,Taking false branch,return from a call to Object NullPointerExceptions.returnsNullAfterLoopOnList(NullPointerExceptions$L),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L)] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L), 3, java.lang.NullPointerException, [start of procedure dereferenceAfterLoopOnList(...),start of procedure returnsNullAfterLoopOnList(...),Taking true branch,Taking true branch,Taking true branch,Taking true branch,Taking false branch,return from a call to Object NullPointerExceptions.returnsNullAfterLoopOnList(NullPointerExceptions$L),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterLoopOnList(NullPointerExceptions$L)] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock1(Lock), 5, java.lang.NullPointerException, [start of procedure dereferenceAfterUnlock1(...),Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterUnlock1(Lock)] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock1(Lock), 5, java.lang.NullPointerException, [start of procedure dereferenceAfterUnlock1(...),Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterUnlock1(Lock)] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock2(Lock), 7, java.lang.NullPointerException, [start of procedure dereferenceAfterUnlock2(...),Taking true branch,Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterUnlock2(Lock)] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.dereferenceAfterUnlock2(Lock), 7, java.lang.NullPointerException, [start of procedure dereferenceAfterUnlock2(...),Taking true branch,Taking true branch,Taking true branch,exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.dereferenceAfterUnlock2(Lock)] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.noNullPointerExceptionAfterSkipFunction(), 4, RETURN_VALUE_IGNORED, [start of procedure noNullPointerExceptionAfterSkipFunction(),Taking true branch,start of procedure genericMethodSomewhereCheckingForNull(...),Taking false branch,return from a call to void NullPointerExceptions.genericMethodSomewhereCheckingForNull(String),Taking true branch] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionArrayLength(), 3, java.lang.NullPointerException, [start of procedure nullPointerExceptionArrayLength(),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionArrayLength()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod(), 3, java.lang.NullPointerException, [start of procedure nullPointerExceptionCallArrayReadMethod(),Taking true branch,Taking true branch,start of procedure arrayReadShouldNotCauseSymexMemoryError(...),Taking true branch,Taking true branch,Taking true branch,return from a call to Object NullPointerExceptions.arrayReadShouldNotCauseSymexMemoryError(int),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod(), 3, java.lang.NullPointerException, [start of procedure nullPointerExceptionCallArrayReadMethod(),Taking true branch,Taking true branch,start of procedure arrayReadShouldNotCauseSymexMemoryError(...),Taking true branch,Taking true branch,Taking true branch,return from a call to Object NullPointerExceptions.arrayReadShouldNotCauseSymexMemoryError(int),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionCallArrayReadMethod()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFailingFileOutputStreamConstructor(), 9, java.lang.NullPointerException, [start of procedure nullPointerExceptionFromFailingFileOutputStreamConstructor(),Taking true branch,return from a call to void NullPointerExceptions.nullPointerExceptionFromFailingFileOutputStreamConstructor()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionFromFaillingResourceConstructor(), 8, java.lang.NullPointerException, [start of procedure nullPointerExceptionFromFaillingResourceConstructor(),Taking true branch,return from a call to void NullPointerExceptions.nullPointerExceptionFromFaillingResourceConstructor()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionUnlessFrameFails(), 6, java.lang.NullPointerException, [start of procedure nullPointerExceptionUnlessFrameFails(),start of procedure NullPointerExceptions$A(...),return from a call to NullPointerExceptions$A.(NullPointerExceptions),start of procedure frame(...),start of procedure id_generics(...),Taking true branch,return from a call to Object NullPointerExceptions.id_generics(NullPointerExceptions$A),Taking true branch,return from a call to NullPointerExceptions$A NullPointerExceptions.frame(NullPointerExceptions$A),Taking true branch,exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionUnlessFrameFails()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullArrayParameter(), 2, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithNullArrayParameter(),start of procedure expectNotNullArrayParameter(...),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.expectNotNullArrayParameter(codetoanalyze.java.infer.NullPointerExceptions$A[]),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionWithNullArrayParameter()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.nullPointerExceptionWithNullObjectParameter(), 2, java.lang.NullPointerException, [start of procedure nullPointerExceptionWithNullObjectParameter(),start of procedure expectNotNullObjectParameter(...),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.expectNotNullObjectParameter(NullPointerExceptions$A),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.nullPointerExceptionWithNullObjectParameter()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.nullableNonNullStringAfterTextUtilsIsEmptyCheckShouldNotCauseNPE(String), 2, RETURN_VALUE_IGNORED, [start of procedure nullableNonNullStringAfterTextUtilsIsEmptyCheckShouldNotCauseNPE(...),Taking true branch,Taking true branch] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.someNPEAfterResourceLeak(), 3, java.lang.NullPointerException, [start of procedure someNPEAfterResourceLeak(),start of procedure sourceOfNullWithResourceLeak(),start of procedure SomeResource(),return from a call to SomeResource.(),return from a call to T CloseableAsResourceExample.sourceOfNullWithResourceLeak(),exception java.lang.NullPointerException,return from a call to void NullPointerExceptions.someNPEAfterResourceLeak()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.stringConstantEqualsFalseNotNPE_FP(), 11, java.lang.NullPointerException, [start of procedure stringConstantEqualsFalseNotNPE_FP(),Taking true branch,Taking true branch,Taking true branch,return from a call to void NullPointerExceptions.stringConstantEqualsFalseNotNPE_FP()] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.testSystemGetPropertyReturn(), 2, RETURN_VALUE_IGNORED, [start of procedure testSystemGetPropertyReturn(),Taking true branch] -codetoanalyze/java/tracing/NullPointerExceptions.java, void NullPointerExceptions.testSystemGetPropertyReturn(), 3, java.lang.NullPointerException, [start of procedure testSystemGetPropertyReturn(),Taking true branch,return from a call to void NullPointerExceptions.testSystemGetPropertyReturn()] codetoanalyze/java/tracing/ReportOnMainExample.java, void ReportOnMainExample.main(java.lang.String[]), 3, java.lang.NullPointerException, [start of procedure main(...),start of procedure ReportOnMainExample(),return from a call to ReportOnMainExample.(),Taking true branch,start of procedure foo(),Taking true branch,Taking true branch,return from a call to void ReportOnMainExample.foo(),return from a call to void ReportOnMainExample.main(java.lang.String[])] codetoanalyze/java/tracing/UnavoidableExceptionExample.java, void UnavoidableExceptionExample.cannotAvoidNPE(), 3, java.lang.NullPointerException, [start of procedure cannotAvoidNPE(),start of procedure create(),return from a call to T2 UnavoidableExceptionExample.create(),exception java.lang.NullPointerException,return from a call to void UnavoidableExceptionExample.cannotAvoidNPE()] codetoanalyze/java/tracing/UnavoidableExceptionExample.java, void UnavoidableExceptionExample.unavoidableNPEWithParameter(boolean), 3, java.lang.NullPointerException, [start of procedure unavoidableNPEWithParameter(...),start of procedure create(),return from a call to T2 UnavoidableExceptionExample.create(),exception java.lang.NullPointerException,return from a call to void UnavoidableExceptionExample.unavoidableNPEWithParameter(boolean)] diff --git a/infer/tests/codetoanalyze/objc/errors/issues.exp b/infer/tests/codetoanalyze/objc/errors/issues.exp index 837a4aba1..b1dbf435c 100644 --- a/infer/tests/codetoanalyze/objc/errors/issues.exp +++ b/infer/tests/codetoanalyze/objc/errors/issues.exp @@ -14,33 +14,33 @@ codetoanalyze/objc/errors/procdescs/main.c, call_nslog, 2, MEMORY_LEAK, [start o codetoanalyze/objc/errors/procdescs/main.c, call_nslog, 3, MEMORY_LEAK, [start of procedure call_nslog()] codetoanalyze/objc/errors/property/main.c, property_main, 2, MEMORY_LEAK, [start of procedure property_main()] codetoanalyze/objc/errors/property/main.c, property_main, 3, MEMORY_LEAK, [start of procedure property_main()] -codetoanalyze/objc/errors/shared/assertions/NSAssert_example.m, NSAssert_addTarget:, 1, MEMORY_LEAK, [start of procedure addTarget:,Condition is false,Condition is true,Condition is true] -codetoanalyze/objc/errors/shared/assertions/NSAssert_example.m, NSAssert_initWithRequest:, 1, MEMORY_LEAK, [start of procedure initWithRequest:,Condition is false,Condition is true,Condition is true] -codetoanalyze/objc/errors/shared/assertions/NSAssert_example.m, test1, 1, MEMORY_LEAK, [start of procedure test1(),Condition is false,Condition is true,Condition is true,Condition is true] -codetoanalyze/objc/errors/shared/assertions/NSAssert_example.m, test1, 1, MEMORY_LEAK, [start of procedure test1(),Condition is false,Condition is true,Condition is true] -codetoanalyze/objc/errors/shared/assertions/NSAssert_example.m, test2, 1, MEMORY_LEAK, [start of procedure test2(),Condition is false,Condition is true,Condition is true] -codetoanalyze/objc/errors/shared/assertions/NSAssert_example.m, test2, 1, MEMORY_LEAK, [start of procedure test2(),Condition is false,Condition is true,Condition is true,Condition is true] -codetoanalyze/objc/errors/shared/block/BlockVar.m, BlockVar_blockPostBad, 5, NULL_DEREFERENCE, [start of procedure blockPostBad,start of procedure block,return from a call to __objc_anonymous_block_BlockVar_blockPostBad______2] -codetoanalyze/objc/errors/shared/block/BlockVar.m, BlockVar_capturedNullDeref, 5, NULL_DEREFERENCE, [start of procedure capturedNullDeref,start of procedure block] -codetoanalyze/objc/errors/shared/block/BlockVar.m, BlockVar_navigateToURLInBackground, 8, NULL_DEREFERENCE, [start of procedure navigateToURLInBackground,start of procedure block,start of procedure test,return from a call to BlockVar_test,return from a call to __objc_anonymous_block_BlockVar_navigateToURLInBackground______1,Condition is true] -codetoanalyze/objc/errors/shared/block/block.m, main1, 31, DIVIDE_BY_ZERO, [start of procedure main1(),start of procedure block,start of procedure block,return from a call to __objc_anonymous_block___objc_anonymous_block_main1______2______3,return from a call to __objc_anonymous_block_main1______2,start of procedure block,return from a call to __objc_anonymous_block_main1______1] -codetoanalyze/objc/errors/shared/block/block_no_args.m, My_manager_m, 10, NULL_DEREFERENCE, [start of procedure m,start of procedure block,return from a call to __objc_anonymous_block_My_manager_m______1,Condition is true] -codetoanalyze/objc/errors/shared/block/block_release.m, My_manager_blockReleaseTODO, 5, MEMORY_LEAK, [start of procedure blockReleaseTODO] -codetoanalyze/objc/errors/shared/category_procdesc/main.c, CategoryProcdescMain, 2, MEMORY_LEAK, [start of procedure CategoryProcdescMain()] -codetoanalyze/objc/errors/shared/category_procdesc/main.c, CategoryProcdescMain, 3, MEMORY_LEAK, [start of procedure CategoryProcdescMain()] -codetoanalyze/objc/errors/shared/field_superclass/SuperExample.m, ASuper_init, 2, NULL_DEREFERENCE, [start of procedure init,start of procedure init,return from a call to BSuper_init] -codetoanalyze/objc/errors/shared/field_superclass/SuperExample.m, super_example_main, 2, MEMORY_LEAK, [start of procedure super_example_main()] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/RetainReleaseExample2.m, test3, 0, MEMORY_LEAK, [start of procedure test3(),start of procedure retain_release2_test(),start of procedure init,return from a call to RR2_init,return from a call to retain_release2_test] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/RetainReleaseExample2.m, test3, 0, RETURN_VALUE_IGNORED, [start of procedure test3()] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/RetainReleaseExample2.m, test4, 3, MEMORY_LEAK, [start of procedure test4(),start of procedure retain_release2_test(),start of procedure init,return from a call to RR2_init,return from a call to retain_release2_test] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/RetainReleaseExample2.m, test5, 2, MEMORY_LEAK, [start of procedure test5(),start of procedure init,return from a call to RR2_init] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/RetainReleaseExample2.m, test6, 3, MEMORY_LEAK, [start of procedure test6(),start of procedure init,return from a call to RR2_init] codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder_FBAudioInputCallbackChain:, 2, IVAR_NOT_NULL_CHECKED, [start of procedure FBAudioInputCallbackChain:,Message recordState with receiver nil returns nil.] codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder_FBAudioInputCallbackChain:, 2, PARAMETER_NOT_NULL_CHECKED, [start of procedure FBAudioInputCallbackChain:,Message recorder with receiver nil returns nil. Message recordState with receiver nil returns nil.] codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder_FBAudioInputCallbackField, 2, IVAR_NOT_NULL_CHECKED, [start of procedure FBAudioInputCallbackField,Message recordState with receiver nil returns nil.] codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder_FBAudioInputCallbackSimple:, 2, PARAMETER_NOT_NULL_CHECKED, [start of procedure FBAudioInputCallbackSimple:,Message recordState with receiver nil returns nil.] codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder_FBAudioInputCallbackSimpleAliasing:, 3, PARAMETER_NOT_NULL_CHECKED, [start of procedure FBAudioInputCallbackSimpleAliasing:,Message recordState with receiver nil returns nil.] codetoanalyze/objc/errors/warnings/ParameterNotNullableExample.m, FBAudioRecorder_test, 3, NULL_DEREFERENCE, [start of procedure test,Message recordState with receiver nil returns nil.] +codetoanalyze/objc/shared/assertions/NSAssert_example.m, NSAssert_addTarget:, 1, MEMORY_LEAK, [start of procedure addTarget:,Condition is false,Condition is true,Condition is true] +codetoanalyze/objc/shared/assertions/NSAssert_example.m, NSAssert_initWithRequest:, 1, MEMORY_LEAK, [start of procedure initWithRequest:,Condition is false,Condition is true,Condition is true] +codetoanalyze/objc/shared/assertions/NSAssert_example.m, test1, 1, MEMORY_LEAK, [start of procedure test1(),Condition is false,Condition is true,Condition is true,Condition is true] +codetoanalyze/objc/shared/assertions/NSAssert_example.m, test1, 1, MEMORY_LEAK, [start of procedure test1(),Condition is false,Condition is true,Condition is true] +codetoanalyze/objc/shared/assertions/NSAssert_example.m, test2, 1, MEMORY_LEAK, [start of procedure test2(),Condition is false,Condition is true,Condition is true,Condition is true] +codetoanalyze/objc/shared/assertions/NSAssert_example.m, test2, 1, MEMORY_LEAK, [start of procedure test2(),Condition is false,Condition is true,Condition is true] +codetoanalyze/objc/shared/block/BlockVar.m, BlockVar_blockPostBad, 5, NULL_DEREFERENCE, [start of procedure blockPostBad,start of procedure block,return from a call to __objc_anonymous_block_BlockVar_blockPostBad______2] +codetoanalyze/objc/shared/block/BlockVar.m, BlockVar_capturedNullDeref, 5, NULL_DEREFERENCE, [start of procedure capturedNullDeref,start of procedure block] +codetoanalyze/objc/shared/block/BlockVar.m, BlockVar_navigateToURLInBackground, 8, NULL_DEREFERENCE, [start of procedure navigateToURLInBackground,start of procedure block,start of procedure test,return from a call to BlockVar_test,return from a call to __objc_anonymous_block_BlockVar_navigateToURLInBackground______1,Condition is true] +codetoanalyze/objc/shared/block/block.m, main1, 31, DIVIDE_BY_ZERO, [start of procedure main1(),start of procedure block,start of procedure block,return from a call to __objc_anonymous_block___objc_anonymous_block_main1______2______3,return from a call to __objc_anonymous_block_main1______2,start of procedure block,return from a call to __objc_anonymous_block_main1______1] +codetoanalyze/objc/shared/block/block_no_args.m, My_manager_m, 10, NULL_DEREFERENCE, [start of procedure m,start of procedure block,return from a call to __objc_anonymous_block_My_manager_m______1,Condition is true] +codetoanalyze/objc/shared/block/block_release.m, My_manager_blockReleaseTODO, 5, MEMORY_LEAK, [start of procedure blockReleaseTODO] +codetoanalyze/objc/shared/category_procdesc/main.c, CategoryProcdescMain, 2, MEMORY_LEAK, [start of procedure CategoryProcdescMain()] +codetoanalyze/objc/shared/category_procdesc/main.c, CategoryProcdescMain, 3, MEMORY_LEAK, [start of procedure CategoryProcdescMain()] +codetoanalyze/objc/shared/field_superclass/SuperExample.m, ASuper_init, 2, NULL_DEREFERENCE, [start of procedure init,start of procedure init,return from a call to BSuper_init] +codetoanalyze/objc/shared/field_superclass/SuperExample.m, super_example_main, 2, MEMORY_LEAK, [start of procedure super_example_main()] +codetoanalyze/objc/shared/memory_leaks_benchmark/RetainReleaseExample2.m, test3, 0, MEMORY_LEAK, [start of procedure test3(),start of procedure retain_release2_test(),start of procedure init,return from a call to RR2_init,return from a call to retain_release2_test] +codetoanalyze/objc/shared/memory_leaks_benchmark/RetainReleaseExample2.m, test3, 0, RETURN_VALUE_IGNORED, [start of procedure test3()] +codetoanalyze/objc/shared/memory_leaks_benchmark/RetainReleaseExample2.m, test4, 3, MEMORY_LEAK, [start of procedure test4(),start of procedure retain_release2_test(),start of procedure init,return from a call to RR2_init,return from a call to retain_release2_test] +codetoanalyze/objc/shared/memory_leaks_benchmark/RetainReleaseExample2.m, test5, 2, MEMORY_LEAK, [start of procedure test5(),start of procedure init,return from a call to RR2_init] +codetoanalyze/objc/shared/memory_leaks_benchmark/RetainReleaseExample2.m, test6, 3, MEMORY_LEAK, [start of procedure test6(),start of procedure init,return from a call to RR2_init] codetoanalyze/objc/errors/field_superclass/SubtypingExample.m, Employee_initWithName:andAge:andEducation:, 3, NULL_TEST_AFTER_DEREFERENCE, [start of procedure initWithName:andAge:andEducation:,start of procedure initWithName:andAge:,return from a call to Person_initWithName:andAge:,Condition is false] codetoanalyze/objc/errors/field_superclass/SubtypingExample.m, Employee_initWithName:andAge:andEducation:, 6, DIVIDE_BY_ZERO, [start of procedure initWithName:andAge:andEducation:,start of procedure initWithName:andAge:,return from a call to Person_initWithName:andAge:,Condition is true] codetoanalyze/objc/errors/field_superclass/SubtypingExample.m, subtyping_test, 0, DIVIDE_BY_ZERO, [start of procedure subtyping_test(),start of procedure testFields(),start of procedure setEmployeeEducation:,return from a call to Employee_setEmployeeEducation:,start of procedure setAge:,return from a call to Person_setAge:,start of procedure setEmployeeEducation:,return from a call to Employee_setEmployeeEducation:,start of procedure getAge,return from a call to Person_getAge,return from a call to testFields] @@ -81,13 +81,13 @@ codetoanalyze/objc/errors/npe/nullable.m, derefNullableParamIndirect, 2, NULL_DE codetoanalyze/objc/errors/npe/nullable.m, parameter_nullable_bug, 5, NULL_DEREFERENCE, [start of procedure parameter_nullable_bug()] codetoanalyze/objc/errors/property/ExplicitIvarName.m, ExplicitIvarNameA_testDefaultName, 7, NULL_DEREFERENCE, [start of procedure testDefaultName,Condition is true] codetoanalyze/objc/errors/property/ExplicitIvarName.m, ExplicitIvarNameA_testExplicit, 6, NULL_DEREFERENCE, [start of procedure testExplicit,Condition is true] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/TollBridgeExample.m, TollBridgeExample_brideRetained, 2, MEMORY_LEAK, [start of procedure brideRetained] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/TollBridgeExample.m, TollBridgeExample_bridge, 2, MEMORY_LEAK, [start of procedure bridge] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/TollBridgeExample.m, bridgeDictionaryNoLeak, 1, UNINITIALIZED_VALUE, [start of procedure bridgeDictionaryNoLeak()] codetoanalyze/objc/errors/subtyping/KindOfClassExample.m, shouldThrowDivideByZero1, 2, DIVIDE_BY_ZERO, [start of procedure shouldThrowDivideByZero1(),start of procedure init,return from a call to Base_init,start of procedure returnsZero1:,Condition is true,return from a call to Base_returnsZero1:] codetoanalyze/objc/errors/subtyping/KindOfClassExample.m, shouldThrowDivideByZero2, 2, DIVIDE_BY_ZERO, [start of procedure shouldThrowDivideByZero2(),start of procedure init,return from a call to Base_init,start of procedure returnsZero2(),Condition is false,return from a call to returnsZero2] codetoanalyze/objc/errors/subtyping/KindOfClassExample.m, shouldThrowDivideByZero3, 3, DIVIDE_BY_ZERO, [start of procedure shouldThrowDivideByZero3(),start of procedure init,return from a call to Derived_init,Condition is true] codetoanalyze/objc/errors/variadic_methods/premature_nil_termination.m, PrematureNilTermA_nilInArrayWithObjects, 5, PREMATURE_NIL_TERMINATION_ARGUMENT, [start of procedure nilInArrayWithObjects] +codetoanalyze/objc/shared/memory_leaks_benchmark/TollBridgeExample.m, TollBridgeExample_brideRetained, 2, MEMORY_LEAK, [start of procedure brideRetained] +codetoanalyze/objc/shared/memory_leaks_benchmark/TollBridgeExample.m, TollBridgeExample_bridge, 2, MEMORY_LEAK, [start of procedure bridge] +codetoanalyze/objc/shared/memory_leaks_benchmark/TollBridgeExample.m, bridgeDictionaryNoLeak, 1, UNINITIALIZED_VALUE, [start of procedure bridgeDictionaryNoLeak()] codetoanalyze/objc/errors/memory_leaks_benchmark/NSStringInitWithBytesNoCopyExample.m, StringInitA_macForIV:, 2, MEMORY_LEAK, [start of procedure macForIV:] codetoanalyze/objc/errors/memory_leaks_benchmark/NSStringInitWithBytesNoCopyExample.m, createURLQueryStringBodyEscaping, 6, PRECONDITION_NOT_MET, [start of procedure createURLQueryStringBodyEscaping(),Condition is true] codetoanalyze/objc/errors/memory_leaks_benchmark/NSStringInitWithBytesNoCopyExample.m, createURLQueryStringBodyEscaping, 11, UNINITIALIZED_VALUE, [start of procedure createURLQueryStringBodyEscaping(),Condition is false] @@ -105,22 +105,22 @@ codetoanalyze/objc/errors/npe/block.m, BlockA_foo4:, 6, NULL_DEREFERENCE, [start codetoanalyze/objc/errors/npe/block.m, BlockA_foo7, 2, IVAR_NOT_NULL_CHECKED, [start of procedure foo7] codetoanalyze/objc/errors/npe/skip_method_with_nil_object.m, SkipMethodNilA_testBug:, 6, PARAMETER_NOT_NULL_CHECKED, [start of procedure testBug:,Message get_a with receiver nil returns nil.,Message skip_method with receiver nil returns nil.,Condition is false] codetoanalyze/objc/errors/property/main.c, property_main, 3, MEMORY_LEAK, [start of procedure property_main()] -codetoanalyze/objc/errors/shared/block/block-it.m, __objc_anonymous_block_MyBlock_array______1, 5, UNINITIALIZED_VALUE, [start of procedure block,Condition is false] -codetoanalyze/objc/errors/shared/block/block-it.m, __objc_anonymous_block_MyBlock_array_trans______2, 4, UNINITIALIZED_VALUE, [start of procedure block,Condition is false] -codetoanalyze/objc/errors/shared/block/dispatch.m, DispatchA_dispatch_a_block_variable_from_macro_delivers_initialised_object, 3, DIVIDE_BY_ZERO, [start of procedure dispatch_a_block_variable_from_macro_delivers_initialised_object,start of procedure dispatch_a_block_variable_from_macro,start of procedure block,start of procedure init,return from a call to DispatchA_init,return from a call to __objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4,return from a call to DispatchA_dispatch_a_block_variable_from_macro] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_blockCapturedVarLeak, 3, MEMORY_LEAK, [start of procedure blockCapturedVarLeak] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_blockFreeNoLeakTODO, 3, MEMORY_LEAK, [start of procedure blockFreeNoLeakTODO] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_createCloseCrossGlyph:, 2, MEMORY_LEAK, [start of procedure createCloseCrossGlyph:] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_createCloseCrossGlyphNoLeak:, 5, Assert_failure, [start of procedure createCloseCrossGlyphNoLeak:] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_measureFrameSizeForText, 1, MEMORY_LEAK, [start of procedure measureFrameSizeForText] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_measureFrameSizeForTextNoLeak, 3, Assert_failure, [start of procedure measureFrameSizeForTextNoLeak] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_regularLeak, 3, MEMORY_LEAK, [start of procedure regularLeak] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_test, 3, MEMORY_LEAK, [start of procedure test] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_test1:, 1, MEMORY_LEAK, [start of procedure test1:] -codetoanalyze/objc/errors/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_test2:, 1, MEMORY_LEAK, [start of procedure test2:] -codetoanalyze/objc/errors/shared/npe/Nonnull_attribute_example.m, NonnullC_initWithCoder:and:, 2, UNINITIALIZED_VALUE, [start of procedure initWithCoder:and:,start of procedure getA,return from a call to NonnullA_getA] codetoanalyze/objc/errors/taint/sources.m, testNSHTTPCookie1, 5, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testNSHTTPCookie1()] codetoanalyze/objc/errors/taint/sources.m, testNSHTTPCookie2, 5, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testNSHTTPCookie2()] codetoanalyze/objc/errors/taint/sources.m, testNSHTTPCookie3, 5, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testNSHTTPCookie3()] codetoanalyze/objc/errors/taint/sources.m, testNSHTTPCookie4, 5, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure testNSHTTPCookie4()] codetoanalyze/objc/errors/taint/viewController.m, ExampleDelegate_application:openURL:sourceApplication:annotation:, 7, TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION, [start of procedure application:openURL:sourceApplication:annotation:,start of procedure init,return from a call to VCA_init,start of procedure ExampleSanitizer(),Condition is false,return from a call to ExampleSanitizer,Condition is false,Condition is true] +codetoanalyze/objc/shared/block/block-it.m, __objc_anonymous_block_MyBlock_array______1, 5, UNINITIALIZED_VALUE, [start of procedure block,Condition is false] +codetoanalyze/objc/shared/block/block-it.m, __objc_anonymous_block_MyBlock_array_trans______2, 4, UNINITIALIZED_VALUE, [start of procedure block,Condition is false] +codetoanalyze/objc/shared/block/dispatch.m, DispatchA_dispatch_a_block_variable_from_macro_delivers_initialised_object, 3, DIVIDE_BY_ZERO, [start of procedure dispatch_a_block_variable_from_macro_delivers_initialised_object,start of procedure dispatch_a_block_variable_from_macro,start of procedure block,start of procedure init,return from a call to DispatchA_init,return from a call to __objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4,return from a call to DispatchA_dispatch_a_block_variable_from_macro] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_blockCapturedVarLeak, 3, MEMORY_LEAK, [start of procedure blockCapturedVarLeak] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_blockFreeNoLeakTODO, 3, MEMORY_LEAK, [start of procedure blockFreeNoLeakTODO] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_createCloseCrossGlyph:, 2, MEMORY_LEAK, [start of procedure createCloseCrossGlyph:] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_createCloseCrossGlyphNoLeak:, 5, Assert_failure, [start of procedure createCloseCrossGlyphNoLeak:] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_measureFrameSizeForText, 1, MEMORY_LEAK, [start of procedure measureFrameSizeForText] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_measureFrameSizeForTextNoLeak, 3, Assert_failure, [start of procedure measureFrameSizeForTextNoLeak] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_regularLeak, 3, MEMORY_LEAK, [start of procedure regularLeak] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_test, 3, MEMORY_LEAK, [start of procedure test] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_test1:, 1, MEMORY_LEAK, [start of procedure test1:] +codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample_test2:, 1, MEMORY_LEAK, [start of procedure test2:] +codetoanalyze/objc/shared/npe/Nonnull_attribute_example.m, NonnullC_initWithCoder:and:, 2, UNINITIALIZED_VALUE, [start of procedure initWithCoder:and:,start of procedure getA,return from a call to NonnullA_getA] diff --git a/infer/tests/codetoanalyze/objc/shared/block/block.m.dot b/infer/tests/codetoanalyze/objc/shared/block/block.m.dot index 5a8ac106d..8d1549f8a 100644 --- a/infer/tests/codetoanalyze/objc/shared/block/block.m.dot +++ b/infer/tests/codetoanalyze/objc/shared/block/block.m.dot @@ -1,6 +1,6 @@ /* @generated */ digraph iCFG { -"__objc_anonymous_block___objc_anonymous_block_main1______2______3.6d1e0725e2965c4b9fdfca6faccef5e0_3" [label="3: Return Stmt \n n$19=*&z:int [line 25]\n n$20=*&#GB$main1_s:int [line 25]\n n$21=*&x:int [line 25]\n n$22=*&bla:int [line 25]\n *&return:int=(((n$19 + n$20) + n$21) + n$22) [line 25]\n " shape="box"] +"__objc_anonymous_block___objc_anonymous_block_main1______2______3.6d1e0725e2965c4b9fdfca6faccef5e0_3" [label="3: Return Stmt \n n$19=*&z:int [line 25]\n n$20=*&#GB$main1_s:int [line 25]\n n$21=*&x:int [line 25]\n n$22=*&bla:int [line 25]\n *&return:int=(((n$19 + n$20) + n$21) + n$22) [line 25]\n " shape="box"] "__objc_anonymous_block___objc_anonymous_block_main1______2______3.6d1e0725e2965c4b9fdfca6faccef5e0_3" -> "__objc_anonymous_block___objc_anonymous_block_main1______2______3.6d1e0725e2965c4b9fdfca6faccef5e0_2" ; @@ -15,7 +15,7 @@ digraph iCFG { "__objc_anonymous_block_main1______2.5623c8c0e39082421999af7ffad7371b_6" -> "__objc_anonymous_block_main1______2.5623c8c0e39082421999af7ffad7371b_5" ; -"__objc_anonymous_block_main1______2.5623c8c0e39082421999af7ffad7371b_5" [label="5: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block___objc_anonymous_block_main1______2______3); [line 24]\n n$23=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block___objc_anonymous_block_main1______2______3):unsigned long) [line 24]\n *&__objc_anonymous_block___objc_anonymous_block_main1______2______3:class __objc_anonymous_block___objc_anonymous_block_main1______2______3=n$23 [line 24]\n n$24=*&x:int [line 24]\n n$25=*&bla:int [line 24]\n n$26=*&#GB$main1_s:int [line 24]\n *n$23.x:int=n$24 [line 24]\n *n$23.bla:int=n$25 [line 24]\n *n$23.main1_s:int=n$26 [line 24]\n n$17=*&x:int [line 24]\n n$18=*&bla:int [line 24]\n *&addblock2:_fn_(*)=(_fun___objc_anonymous_block___objc_anonymous_block_main1______2______3,n$17,n$18) [line 24]\n " shape="box"] +"__objc_anonymous_block_main1______2.5623c8c0e39082421999af7ffad7371b_5" [label="5: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block___objc_anonymous_block_main1______2______3); [line 24]\n n$23=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block___objc_anonymous_block_main1______2______3):unsigned long) [line 24]\n *&__objc_anonymous_block___objc_anonymous_block_main1______2______3:class __objc_anonymous_block___objc_anonymous_block_main1______2______3=n$23 [line 24]\n n$24=*&x:int [line 24]\n n$25=*&bla:int [line 24]\n n$26=*&#GB$main1_s:int [line 24]\n *n$23.x:int=n$24 [line 24]\n *n$23.bla:int=n$25 [line 24]\n *n$23.main1_s:int=n$26 [line 24]\n n$17=*&x:int [line 24]\n n$18=*&bla:int [line 24]\n *&addblock2:_fn_(*)=(_fun___objc_anonymous_block___objc_anonymous_block_main1______2______3,n$17,n$18) [line 24]\n " shape="box"] "__objc_anonymous_block_main1______2.5623c8c0e39082421999af7ffad7371b_5" -> "__objc_anonymous_block_main1______2.5623c8c0e39082421999af7ffad7371b_4" ; @@ -45,7 +45,7 @@ digraph iCFG { "BlockMain.116013dceff9629776ec833c9d43561d_1" -> "BlockMain.116013dceff9629776ec833c9d43561d_3" ; -"__objc_anonymous_block_main1______1.1ad2c5f7d31875243a1bd27c2e3ec82e_3" [label="3: Return Stmt \n n$5=*&e:int [line 35]\n n$6=*&#GB$main1_s:int [line 35]\n *&return:int=(n$5 - n$6) [line 35]\n " shape="box"] +"__objc_anonymous_block_main1______1.1ad2c5f7d31875243a1bd27c2e3ec82e_3" [label="3: Return Stmt \n n$5=*&e:int [line 35]\n n$6=*&#GB$main1_s:int [line 35]\n *&return:int=(n$5 - n$6) [line 35]\n " shape="box"] "__objc_anonymous_block_main1______1.1ad2c5f7d31875243a1bd27c2e3ec82e_3" -> "__objc_anonymous_block_main1______1.1ad2c5f7d31875243a1bd27c2e3ec82e_2" ; @@ -56,7 +56,7 @@ digraph iCFG { "__objc_anonymous_block_main1______1.1ad2c5f7d31875243a1bd27c2e3ec82e_1" -> "__objc_anonymous_block_main1______1.1ad2c5f7d31875243a1bd27c2e3ec82e_3" ; -"main1.38f534a9576db7ec6ebcbca8c111f942_10" [label="10: DeclStmt \n *&#GB$main1_s:int=3 [line 12]\n " shape="box"] +"main1.38f534a9576db7ec6ebcbca8c111f942_10" [label="10: DeclStmt \n *&#GB$main1_s:int=3 [line 12]\n " shape="box"] "main1.38f534a9576db7ec6ebcbca8c111f942_10" -> "main1.38f534a9576db7ec6ebcbca8c111f942_9" ; @@ -72,7 +72,7 @@ digraph iCFG { "main1.38f534a9576db7ec6ebcbca8c111f942_7" -> "main1.38f534a9576db7ec6ebcbca8c111f942_6" ; -"main1.38f534a9576db7ec6ebcbca8c111f942_6" [label="6: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_main1______1); [line 34]\n n$7=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_main1______1):unsigned long) [line 34]\n *&__objc_anonymous_block_main1______1:class __objc_anonymous_block_main1______1=n$7 [line 34]\n n$8=*&#GB$main1_s:int [line 34]\n *n$7.main1_s:int=n$8 [line 34]\n *&addblock:_fn_(*)=(_fun___objc_anonymous_block_main1______1) [line 34]\n " shape="box"] +"main1.38f534a9576db7ec6ebcbca8c111f942_6" [label="6: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_main1______1); [line 34]\n n$7=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_main1______1):unsigned long) [line 34]\n *&__objc_anonymous_block_main1______1:class __objc_anonymous_block_main1______1=n$7 [line 34]\n n$8=*&#GB$main1_s:int [line 34]\n *n$7.main1_s:int=n$8 [line 34]\n *&addblock:_fn_(*)=(_fun___objc_anonymous_block_main1______1) [line 34]\n " shape="box"] "main1.38f534a9576db7ec6ebcbca8c111f942_6" -> "main1.38f534a9576db7ec6ebcbca8c111f942_5" ; diff --git a/infer/tests/codetoanalyze/objc/shared/block/block_no_args.m.dot b/infer/tests/codetoanalyze/objc/shared/block/block_no_args.m.dot index 055f4d06a..f36a6f526 100644 --- a/infer/tests/codetoanalyze/objc/shared/block/block_no_args.m.dot +++ b/infer/tests/codetoanalyze/objc/shared/block/block_no_args.m.dot @@ -1,6 +1,6 @@ /* @generated */ digraph iCFG { -"My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_14" [label="14: BinaryOperatorStmt: Assign \n *&#GB$g:int=7 [line 22]\n " shape="box"] +"My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_14" [label="14: BinaryOperatorStmt: Assign \n *&#GB$g:int=7 [line 22]\n " shape="box"] "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_14" -> "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_13" ; @@ -8,7 +8,7 @@ digraph iCFG { "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_13" -> "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_12" ; -"My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_12" [label="12: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_My_manager_m______1); [line 25]\n n$7=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_My_manager_m______1):unsigned long) [line 25]\n *&__objc_anonymous_block_My_manager_m______1:class __objc_anonymous_block_My_manager_m______1=n$7 [line 25]\n n$8=*&z:int [line 25]\n n$9=*&#GB$g:int [line 25]\n *n$7.z:int=n$8 [line 25]\n *n$7.g:int=n$9 [line 25]\n n$5=*&z:int [line 25]\n *&b:_fn_(*)=(_fun___objc_anonymous_block_My_manager_m______1,n$5) [line 25]\n " shape="box"] +"My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_12" [label="12: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&__objc_anonymous_block_My_manager_m______1); [line 25]\n n$7=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_My_manager_m______1):unsigned long) [line 25]\n *&__objc_anonymous_block_My_manager_m______1:class __objc_anonymous_block_My_manager_m______1=n$7 [line 25]\n n$8=*&z:int [line 25]\n n$9=*&#GB$g:int [line 25]\n *n$7.z:int=n$8 [line 25]\n *n$7.g:int=n$9 [line 25]\n n$5=*&z:int [line 25]\n *&b:_fn_(*)=(_fun___objc_anonymous_block_My_manager_m______1,n$5) [line 25]\n " shape="box"] "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_12" -> "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_11" ; @@ -36,7 +36,7 @@ digraph iCFG { "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_6" -> "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_8" ; -"My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_5" [label="5: BinaryOperatorStmt: EQ \n n$0=*&#GB$g:int [line 30]\n " shape="box"] +"My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_5" [label="5: BinaryOperatorStmt: EQ \n n$0=*&#GB$g:int [line 30]\n " shape="box"] "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_5" -> "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_6" ; @@ -56,7 +56,7 @@ digraph iCFG { "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_1" -> "My_manager_minstance.ec3b234dca60e6a1d3cb3362178416b6_14" ; -"__objc_anonymous_block_My_manager_m______1.3cc413211d47d071e2197fcf824430cb_3" [label="3: BinaryOperatorStmt: Assign \n n$6=*&z:int [line 26]\n *&#GB$g:int=(n$6 + 3) [line 26]\n " shape="box"] +"__objc_anonymous_block_My_manager_m______1.3cc413211d47d071e2197fcf824430cb_3" [label="3: BinaryOperatorStmt: Assign \n n$6=*&z:int [line 26]\n *&#GB$g:int=(n$6 + 3) [line 26]\n " shape="box"] "__objc_anonymous_block_My_manager_m______1.3cc413211d47d071e2197fcf824430cb_3" -> "__objc_anonymous_block_My_manager_m______1.3cc413211d47d071e2197fcf824430cb_2" ; diff --git a/infer/tests/codetoanalyze/objc/shared/block/dispatch.m.dot b/infer/tests/codetoanalyze/objc/shared/block/dispatch.m.dot index 42837f45d..40e1096d0 100644 --- a/infer/tests/codetoanalyze/objc/shared/block/dispatch.m.dot +++ b/infer/tests/codetoanalyze/objc/shared/block/dispatch.m.dot @@ -19,7 +19,7 @@ digraph iCFG { "DispatchA_dispatch_a_block_variable_from_macro_delivers_initialised_objectclass.a40b698fe8052f5a0518056e9384ff2c_1" -> "DispatchA_dispatch_a_block_variable_from_macro_delivers_initialised_objectclass.a40b698fe8052f5a0518056e9384ff2c_5" ; -"__objc_anonymous_block_DispatchA_dispatch_a_block_variable______3.9c4c8eed871dc8fb1938edcd3d194533_3" [label="3: BinaryOperatorStmt: Assign \n n$16=_fun___objc_alloc_no_fail(sizeof(class DispatchA):unsigned long) [line 48]\n n$17=_fun_DispatchA_init(n$16:class DispatchA*) virtual [line 48]\n *&#GB$DispatchA_dispatch_a_block_variable_static_storage__:struct objc_object*=n$17 [line 48]\n " shape="box"] +"__objc_anonymous_block_DispatchA_dispatch_a_block_variable______3.9c4c8eed871dc8fb1938edcd3d194533_3" [label="3: BinaryOperatorStmt: Assign \n n$16=_fun___objc_alloc_no_fail(sizeof(class DispatchA):unsigned long) [line 48]\n n$17=_fun_DispatchA_init(n$16:class DispatchA*) virtual [line 48]\n *&#GB$DispatchA_dispatch_a_block_variable_static_storage__:struct objc_object*=n$17 [line 48]\n " shape="box"] "__objc_anonymous_block_DispatchA_dispatch_a_block_variable______3.9c4c8eed871dc8fb1938edcd3d194533_3" -> "__objc_anonymous_block_DispatchA_dispatch_a_block_variable______3.9c4c8eed871dc8fb1938edcd3d194533_2" ; @@ -30,7 +30,7 @@ digraph iCFG { "__objc_anonymous_block_DispatchA_dispatch_a_block_variable______3.9c4c8eed871dc8fb1938edcd3d194533_1" -> "__objc_anonymous_block_DispatchA_dispatch_a_block_variable______3.9c4c8eed871dc8fb1938edcd3d194533_3" ; -"__objc_anonymous_block_DispatchA_trans______2.8ca180fe9a17b86cb599eced71242770_3" [label="3: BinaryOperatorStmt: Assign \n n$9=_fun___objc_alloc_no_fail(sizeof(class DispatchA):unsigned long) [line 39]\n n$10=_fun_DispatchA_init(n$9:class DispatchA*) virtual [line 39]\n *&#GB$DispatchA_trans_sharedInstance:struct objc_object*=n$10 [line 39]\n " shape="box"] +"__objc_anonymous_block_DispatchA_trans______2.8ca180fe9a17b86cb599eced71242770_3" [label="3: BinaryOperatorStmt: Assign \n n$9=_fun___objc_alloc_no_fail(sizeof(class DispatchA):unsigned long) [line 39]\n n$10=_fun_DispatchA_init(n$9:class DispatchA*) virtual [line 39]\n *&#GB$DispatchA_trans_sharedInstance:struct objc_object*=n$10 [line 39]\n " shape="box"] "__objc_anonymous_block_DispatchA_trans______2.8ca180fe9a17b86cb599eced71242770_3" -> "__objc_anonymous_block_DispatchA_trans______2.8ca180fe9a17b86cb599eced71242770_2" ; @@ -41,7 +41,7 @@ digraph iCFG { "__objc_anonymous_block_DispatchA_trans______2.8ca180fe9a17b86cb599eced71242770_1" -> "__objc_anonymous_block_DispatchA_trans______2.8ca180fe9a17b86cb599eced71242770_3" ; -"__objc_anonymous_block_DispatchA_sharedInstance______1.4a2e89fcdf390871f5277dca0d16c43b_3" [label="3: BinaryOperatorStmt: Assign \n n$2=_fun___objc_alloc_no_fail(sizeof(class DispatchA):unsigned long) [line 31]\n n$3=_fun_DispatchA_init(n$2:class DispatchA*) virtual [line 31]\n *&#GB$DispatchA_sharedInstance_sharedInstance:struct objc_object*=n$3 [line 31]\n " shape="box"] +"__objc_anonymous_block_DispatchA_sharedInstance______1.4a2e89fcdf390871f5277dca0d16c43b_3" [label="3: BinaryOperatorStmt: Assign \n n$2=_fun___objc_alloc_no_fail(sizeof(class DispatchA):unsigned long) [line 31]\n n$3=_fun_DispatchA_init(n$2:class DispatchA*) virtual [line 31]\n *&#GB$DispatchA_sharedInstance_sharedInstance:struct objc_object*=n$3 [line 31]\n " shape="box"] "__objc_anonymous_block_DispatchA_sharedInstance______1.4a2e89fcdf390871f5277dca0d16c43b_3" -> "__objc_anonymous_block_DispatchA_sharedInstance______1.4a2e89fcdf390871f5277dca0d16c43b_2" ; @@ -107,7 +107,7 @@ digraph iCFG { "DispatchMain.f6461dbdaeaf9a114cbe40f5f72fbb3f_1" -> "DispatchMain.f6461dbdaeaf9a114cbe40f5f72fbb3f_11" ; -"DispatchA_dispatch_a_block_variable_from_macroclass.4c1ce7640004cb2174c1010961271e4a_3" [label="3: Return Stmt \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4); [line 58]\n n$25=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4):unsigned long) [line 58]\n *&__objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4:class __objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4=n$25 [line 58]\n n$26=*&#GB$DispatchA_dispatch_a_block_variable_from_macro_static_storage__:struct objc_object* [line 58]\n *n$25.DispatchA_dispatch_a_block_variable_from_macro_static_storage__:struct objc_object*=n$26 [line 58]\n *&initialization_block__:_fn_(*)=(_fun___objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4) [line 58]\n n$21=*&initialization_block__:_fn_(*) [line 62]\n n$22=n$21() [line 62]\n n$20=*&#GB$DispatchA_dispatch_a_block_variable_from_macro_static_storage__:struct objc_object* [line 63]\n *&return:struct objc_object*=n$20 [line 56]\n " shape="box"] +"DispatchA_dispatch_a_block_variable_from_macroclass.4c1ce7640004cb2174c1010961271e4a_3" [label="3: Return Stmt \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4); [line 58]\n n$25=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4):unsigned long) [line 58]\n *&__objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4:class __objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4=n$25 [line 58]\n n$26=*&#GB$DispatchA_dispatch_a_block_variable_from_macro_static_storage__:struct objc_object* [line 58]\n *n$25.DispatchA_dispatch_a_block_variable_from_macro_static_storage__:struct objc_object*=n$26 [line 58]\n *&initialization_block__:_fn_(*)=(_fun___objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4) [line 58]\n n$21=*&initialization_block__:_fn_(*) [line 62]\n n$22=n$21() [line 62]\n n$20=*&#GB$DispatchA_dispatch_a_block_variable_from_macro_static_storage__:struct objc_object* [line 63]\n *&return:struct objc_object*=n$20 [line 56]\n " shape="box"] "DispatchA_dispatch_a_block_variable_from_macroclass.4c1ce7640004cb2174c1010961271e4a_3" -> "DispatchA_dispatch_a_block_variable_from_macroclass.4c1ce7640004cb2174c1010961271e4a_2" ; @@ -118,7 +118,7 @@ digraph iCFG { "DispatchA_dispatch_a_block_variable_from_macroclass.4c1ce7640004cb2174c1010961271e4a_1" -> "DispatchA_dispatch_a_block_variable_from_macroclass.4c1ce7640004cb2174c1010961271e4a_3" ; -"DispatchA_transclass.873660bac717ee103f8564f0a0307a74_5" [label="5: DeclStmt \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchA_trans______2); [line 38]\n n$11=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchA_trans______2):unsigned long) [line 38]\n *&__objc_anonymous_block_DispatchA_trans______2:class __objc_anonymous_block_DispatchA_trans______2=n$11 [line 38]\n n$12=*&#GB$DispatchA_trans_sharedInstance:struct objc_object* [line 38]\n *n$11.DispatchA_trans_sharedInstance:struct objc_object*=n$12 [line 38]\n *&dummy_block:_fn_(*)=(_fun___objc_anonymous_block_DispatchA_trans______2) [line 38]\n " shape="box"] +"DispatchA_transclass.873660bac717ee103f8564f0a0307a74_5" [label="5: DeclStmt \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchA_trans______2); [line 38]\n n$11=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchA_trans______2):unsigned long) [line 38]\n *&__objc_anonymous_block_DispatchA_trans______2:class __objc_anonymous_block_DispatchA_trans______2=n$11 [line 38]\n n$12=*&#GB$DispatchA_trans_sharedInstance:struct objc_object* [line 38]\n *n$11.DispatchA_trans_sharedInstance:struct objc_object*=n$12 [line 38]\n *&dummy_block:_fn_(*)=(_fun___objc_anonymous_block_DispatchA_trans______2) [line 38]\n " shape="box"] "DispatchA_transclass.873660bac717ee103f8564f0a0307a74_5" -> "DispatchA_transclass.873660bac717ee103f8564f0a0307a74_4" ; @@ -126,7 +126,7 @@ digraph iCFG { "DispatchA_transclass.873660bac717ee103f8564f0a0307a74_4" -> "DispatchA_transclass.873660bac717ee103f8564f0a0307a74_3" ; -"DispatchA_transclass.873660bac717ee103f8564f0a0307a74_3" [label="3: Return Stmt \n n$7=*&#GB$DispatchA_trans_sharedInstance:struct objc_object* [line 42]\n *&return:struct objc_object*=n$7 [line 42]\n " shape="box"] +"DispatchA_transclass.873660bac717ee103f8564f0a0307a74_3" [label="3: Return Stmt \n n$7=*&#GB$DispatchA_trans_sharedInstance:struct objc_object* [line 42]\n *&return:struct objc_object*=n$7 [line 42]\n " shape="box"] "DispatchA_transclass.873660bac717ee103f8564f0a0307a74_3" -> "DispatchA_transclass.873660bac717ee103f8564f0a0307a74_2" ; @@ -137,7 +137,7 @@ digraph iCFG { "DispatchA_transclass.873660bac717ee103f8564f0a0307a74_1" -> "DispatchA_transclass.873660bac717ee103f8564f0a0307a74_5" ; -"__objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4.82bfd971252ed3dd1cbfd850406db887_3" [label="3: BinaryOperatorStmt: Assign \n n$23=_fun___objc_alloc_no_fail(sizeof(class DispatchA):unsigned long) [line 59]\n n$24=_fun_DispatchA_init(n$23:class DispatchA*) virtual [line 59]\n *&#GB$DispatchA_dispatch_a_block_variable_from_macro_static_storage__:struct objc_object*=n$24 [line 59]\n " shape="box"] +"__objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4.82bfd971252ed3dd1cbfd850406db887_3" [label="3: BinaryOperatorStmt: Assign \n n$23=_fun___objc_alloc_no_fail(sizeof(class DispatchA):unsigned long) [line 59]\n n$24=_fun_DispatchA_init(n$23:class DispatchA*) virtual [line 59]\n *&#GB$DispatchA_dispatch_a_block_variable_from_macro_static_storage__:struct objc_object*=n$24 [line 59]\n " shape="box"] "__objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4.82bfd971252ed3dd1cbfd850406db887_3" -> "__objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4.82bfd971252ed3dd1cbfd850406db887_2" ; @@ -148,11 +148,11 @@ digraph iCFG { "__objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4.82bfd971252ed3dd1cbfd850406db887_1" -> "__objc_anonymous_block_DispatchA_dispatch_a_block_variable_from_macro______4.82bfd971252ed3dd1cbfd850406db887_3" ; -"DispatchA_sharedInstanceclass.1cbcd092f7dafd9879cdd8ce8fdac1b0_4" [label="4: Call (_fun___objc_anonymous_block_DispatchA_sharedInstance______1) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchA_sharedInstance______1); [line 30]\n n$4=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchA_sharedInstance______1):unsigned long) [line 30]\n *&__objc_anonymous_block_DispatchA_sharedInstance______1:class __objc_anonymous_block_DispatchA_sharedInstance______1=n$4 [line 30]\n n$5=*&#GB$DispatchA_sharedInstance_sharedInstance:struct objc_object* [line 30]\n *n$4.DispatchA_sharedInstance_sharedInstance:struct objc_object*=n$5 [line 30]\n n$6=(_fun___objc_anonymous_block_DispatchA_sharedInstance______1)() [line 30]\n " shape="box"] +"DispatchA_sharedInstanceclass.1cbcd092f7dafd9879cdd8ce8fdac1b0_4" [label="4: Call (_fun___objc_anonymous_block_DispatchA_sharedInstance______1) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchA_sharedInstance______1); [line 30]\n n$4=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchA_sharedInstance______1):unsigned long) [line 30]\n *&__objc_anonymous_block_DispatchA_sharedInstance______1:class __objc_anonymous_block_DispatchA_sharedInstance______1=n$4 [line 30]\n n$5=*&#GB$DispatchA_sharedInstance_sharedInstance:struct objc_object* [line 30]\n *n$4.DispatchA_sharedInstance_sharedInstance:struct objc_object*=n$5 [line 30]\n n$6=(_fun___objc_anonymous_block_DispatchA_sharedInstance______1)() [line 30]\n " shape="box"] "DispatchA_sharedInstanceclass.1cbcd092f7dafd9879cdd8ce8fdac1b0_4" -> "DispatchA_sharedInstanceclass.1cbcd092f7dafd9879cdd8ce8fdac1b0_3" ; -"DispatchA_sharedInstanceclass.1cbcd092f7dafd9879cdd8ce8fdac1b0_3" [label="3: Return Stmt \n n$1=*&#GB$DispatchA_sharedInstance_sharedInstance:struct objc_object* [line 33]\n *&return:struct objc_object*=n$1 [line 33]\n " shape="box"] +"DispatchA_sharedInstanceclass.1cbcd092f7dafd9879cdd8ce8fdac1b0_3" [label="3: Return Stmt \n n$1=*&#GB$DispatchA_sharedInstance_sharedInstance:struct objc_object* [line 33]\n *&return:struct objc_object*=n$1 [line 33]\n " shape="box"] "DispatchA_sharedInstanceclass.1cbcd092f7dafd9879cdd8ce8fdac1b0_3" -> "DispatchA_sharedInstanceclass.1cbcd092f7dafd9879cdd8ce8fdac1b0_2" ; @@ -163,7 +163,7 @@ digraph iCFG { "DispatchA_sharedInstanceclass.1cbcd092f7dafd9879cdd8ce8fdac1b0_1" -> "DispatchA_sharedInstanceclass.1cbcd092f7dafd9879cdd8ce8fdac1b0_4" ; -"DispatchA_dispatch_a_block_variableclass.e931bb4f1c295d89acf6b725d9103d59_5" [label="5: DeclStmt \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchA_dispatch_a_block_variable______3); [line 47]\n n$18=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchA_dispatch_a_block_variable______3):unsigned long) [line 47]\n *&__objc_anonymous_block_DispatchA_dispatch_a_block_variable______3:class __objc_anonymous_block_DispatchA_dispatch_a_block_variable______3=n$18 [line 47]\n n$19=*&#GB$DispatchA_dispatch_a_block_variable_static_storage__:struct objc_object* [line 47]\n *n$18.DispatchA_dispatch_a_block_variable_static_storage__:struct objc_object*=n$19 [line 47]\n *&initialization_block__:_fn_(*)=(_fun___objc_anonymous_block_DispatchA_dispatch_a_block_variable______3) [line 47]\n " shape="box"] +"DispatchA_dispatch_a_block_variableclass.e931bb4f1c295d89acf6b725d9103d59_5" [label="5: DeclStmt \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchA_dispatch_a_block_variable______3); [line 47]\n n$18=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchA_dispatch_a_block_variable______3):unsigned long) [line 47]\n *&__objc_anonymous_block_DispatchA_dispatch_a_block_variable______3:class __objc_anonymous_block_DispatchA_dispatch_a_block_variable______3=n$18 [line 47]\n n$19=*&#GB$DispatchA_dispatch_a_block_variable_static_storage__:struct objc_object* [line 47]\n *n$18.DispatchA_dispatch_a_block_variable_static_storage__:struct objc_object*=n$19 [line 47]\n *&initialization_block__:_fn_(*)=(_fun___objc_anonymous_block_DispatchA_dispatch_a_block_variable______3) [line 47]\n " shape="box"] "DispatchA_dispatch_a_block_variableclass.e931bb4f1c295d89acf6b725d9103d59_5" -> "DispatchA_dispatch_a_block_variableclass.e931bb4f1c295d89acf6b725d9103d59_4" ; @@ -171,7 +171,7 @@ digraph iCFG { "DispatchA_dispatch_a_block_variableclass.e931bb4f1c295d89acf6b725d9103d59_4" -> "DispatchA_dispatch_a_block_variableclass.e931bb4f1c295d89acf6b725d9103d59_3" ; -"DispatchA_dispatch_a_block_variableclass.e931bb4f1c295d89acf6b725d9103d59_3" [label="3: Return Stmt \n n$13=*&#GB$DispatchA_dispatch_a_block_variable_static_storage__:struct objc_object* [line 52]\n *&return:struct objc_object*=n$13 [line 52]\n " shape="box"] +"DispatchA_dispatch_a_block_variableclass.e931bb4f1c295d89acf6b725d9103d59_3" [label="3: Return Stmt \n n$13=*&#GB$DispatchA_dispatch_a_block_variable_static_storage__:struct objc_object* [line 52]\n *&return:struct objc_object*=n$13 [line 52]\n " shape="box"] "DispatchA_dispatch_a_block_variableclass.e931bb4f1c295d89acf6b725d9103d59_3" -> "DispatchA_dispatch_a_block_variableclass.e931bb4f1c295d89acf6b725d9103d59_2" ; diff --git a/infer/tests/codetoanalyze/objc/shared/block/dispatch_examples.m.dot b/infer/tests/codetoanalyze/objc/shared/block/dispatch_examples.m.dot index 0280d0021..135c4a8e6 100644 --- a/infer/tests/codetoanalyze/objc/shared/block/dispatch_examples.m.dot +++ b/infer/tests/codetoanalyze/objc/shared/block/dispatch_examples.m.dot @@ -1,10 +1,10 @@ /* @generated */ digraph iCFG { -"__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6.f3e27d4badebf4adf9313b39c9688c30_4" [label="4: BinaryOperatorStmt: Assign \n n$44=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 78]\n n$45=_fun_DispatchEx_init(n$44:class DispatchEx*) virtual [line 78]\n *&#GB$DispatchEx_dispatch_barrier_example_a:class DispatchEx*=n$45 [line 78]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6.f3e27d4badebf4adf9313b39c9688c30_4" [label="4: BinaryOperatorStmt: Assign \n n$44=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 78]\n n$45=_fun_DispatchEx_init(n$44:class DispatchEx*) virtual [line 78]\n *&#GB$DispatchEx_dispatch_barrier_example_a:class DispatchEx*=n$45 [line 78]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6.f3e27d4badebf4adf9313b39c9688c30_4" -> "__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6.f3e27d4badebf4adf9313b39c9688c30_3" ; -"__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6.f3e27d4badebf4adf9313b39c9688c30_3" [label="3: BinaryOperatorStmt: Assign \n n$43=*&#GB$DispatchEx_dispatch_barrier_example_a:class DispatchEx* [line 79]\n *n$43.x:int=10 [line 79]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6.f3e27d4badebf4adf9313b39c9688c30_3" [label="3: BinaryOperatorStmt: Assign \n n$43=*&#GB$DispatchEx_dispatch_barrier_example_a:class DispatchEx* [line 79]\n *n$43.x:int=10 [line 79]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6.f3e27d4badebf4adf9313b39c9688c30_3" -> "__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6.f3e27d4badebf4adf9313b39c9688c30_2" ; @@ -15,11 +15,11 @@ digraph iCFG { "__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6.f3e27d4badebf4adf9313b39c9688c30_1" -> "__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6.f3e27d4badebf4adf9313b39c9688c30_4" ; -"__objc_anonymous_block_DispatchEx_dispatch_after_example______3.2346df1c3bc37dee82860aa53ebe3ece_4" [label="4: BinaryOperatorStmt: Assign \n n$20=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 51]\n n$21=_fun_DispatchEx_init(n$20:class DispatchEx*) virtual [line 51]\n *&#GB$DispatchEx_dispatch_after_example_a:class DispatchEx*=n$21 [line 51]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_after_example______3.2346df1c3bc37dee82860aa53ebe3ece_4" [label="4: BinaryOperatorStmt: Assign \n n$20=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 51]\n n$21=_fun_DispatchEx_init(n$20:class DispatchEx*) virtual [line 51]\n *&#GB$DispatchEx_dispatch_after_example_a:class DispatchEx*=n$21 [line 51]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_after_example______3.2346df1c3bc37dee82860aa53ebe3ece_4" -> "__objc_anonymous_block_DispatchEx_dispatch_after_example______3.2346df1c3bc37dee82860aa53ebe3ece_3" ; -"__objc_anonymous_block_DispatchEx_dispatch_after_example______3.2346df1c3bc37dee82860aa53ebe3ece_3" [label="3: BinaryOperatorStmt: Assign \n n$19=*&#GB$DispatchEx_dispatch_after_example_a:class DispatchEx* [line 52]\n *n$19.x:int=10 [line 52]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_after_example______3.2346df1c3bc37dee82860aa53ebe3ece_3" [label="3: BinaryOperatorStmt: Assign \n n$19=*&#GB$DispatchEx_dispatch_after_example_a:class DispatchEx* [line 52]\n *n$19.x:int=10 [line 52]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_after_example______3.2346df1c3bc37dee82860aa53ebe3ece_3" -> "__objc_anonymous_block_DispatchEx_dispatch_after_example______3.2346df1c3bc37dee82860aa53ebe3ece_2" ; @@ -30,15 +30,15 @@ digraph iCFG { "__objc_anonymous_block_DispatchEx_dispatch_after_example______3.2346df1c3bc37dee82860aa53ebe3ece_1" -> "__objc_anonymous_block_DispatchEx_dispatch_after_example______3.2346df1c3bc37dee82860aa53ebe3ece_4" ; -"DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_once_example_a:class DispatchEx*=0 [line 25]\n " shape="box"] +"DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_once_example_a:class DispatchEx*=0 [line 25]\n " shape="box"] "DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_5" -> "DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_4" ; -"DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_once_example______1) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_once_example______1); [line 29]\n n$6=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_once_example______1):unsigned long) [line 29]\n *&__objc_anonymous_block_DispatchEx_dispatch_once_example______1:class __objc_anonymous_block_DispatchEx_dispatch_once_example______1=n$6 [line 29]\n n$7=*&#GB$DispatchEx_dispatch_once_example_a:class DispatchEx* [line 29]\n *n$6.DispatchEx_dispatch_once_example_a:class DispatchEx*=n$7 [line 29]\n n$8=(_fun___objc_anonymous_block_DispatchEx_dispatch_once_example______1)() [line 29]\n " shape="box"] +"DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_once_example______1) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_once_example______1); [line 29]\n n$6=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_once_example______1):unsigned long) [line 29]\n *&__objc_anonymous_block_DispatchEx_dispatch_once_example______1:class __objc_anonymous_block_DispatchEx_dispatch_once_example______1=n$6 [line 29]\n n$7=*&#GB$DispatchEx_dispatch_once_example_a:class DispatchEx* [line 29]\n *n$6.DispatchEx_dispatch_once_example_a:class DispatchEx*=n$7 [line 29]\n n$8=(_fun___objc_anonymous_block_DispatchEx_dispatch_once_example______1)() [line 29]\n " shape="box"] "DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_4" -> "DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_3" ; -"DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_3" [label="3: Return Stmt \n n$1=*&#GB$DispatchEx_dispatch_once_example_a:class DispatchEx* [line 33]\n n$2=*n$1.x:int [line 33]\n *&return:int=n$2 [line 33]\n " shape="box"] +"DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_3" [label="3: Return Stmt \n n$1=*&#GB$DispatchEx_dispatch_once_example_a:class DispatchEx* [line 33]\n n$2=*n$1.x:int [line 33]\n *&return:int=n$2 [line 33]\n " shape="box"] "DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_3" -> "DispatchEx_dispatch_once_exampleclass.88a04a143c416b36a948e54f9a79492f_2" ; @@ -60,15 +60,15 @@ digraph iCFG { "DispatchEx_initinstance.f373aa3094c26cef9aa20d4a9edafd64_1" -> "DispatchEx_initinstance.f373aa3094c26cef9aa20d4a9edafd64_3" ; -"DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_group_notify_example_a:class DispatchEx*=0 [line 67]\n " shape="box"] +"DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_group_notify_example_a:class DispatchEx*=0 [line 67]\n " shape="box"] "DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_5" -> "DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_4" ; -"DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5); [line 68]\n n$38=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5):unsigned long) [line 68]\n *&__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5:class __objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5=n$38 [line 68]\n n$39=*&#GB$DispatchEx_dispatch_group_notify_example_a:class DispatchEx* [line 68]\n *n$38.DispatchEx_dispatch_group_notify_example_a:class DispatchEx*=n$39 [line 68]\n n$40=(_fun___objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5)() [line 68]\n " shape="box"] +"DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5); [line 68]\n n$38=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5):unsigned long) [line 68]\n *&__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5:class __objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5=n$38 [line 68]\n n$39=*&#GB$DispatchEx_dispatch_group_notify_example_a:class DispatchEx* [line 68]\n *n$38.DispatchEx_dispatch_group_notify_example_a:class DispatchEx*=n$39 [line 68]\n n$40=(_fun___objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5)() [line 68]\n " shape="box"] "DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_4" -> "DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_3" ; -"DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_3" [label="3: Return Stmt \n n$33=*&#GB$DispatchEx_dispatch_group_notify_example_a:class DispatchEx* [line 72]\n n$34=*n$33.x:int [line 72]\n *&return:int=n$34 [line 72]\n " shape="box"] +"DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_3" [label="3: Return Stmt \n n$33=*&#GB$DispatchEx_dispatch_group_notify_example_a:class DispatchEx* [line 72]\n n$34=*n$33.x:int [line 72]\n *&return:int=n$34 [line 72]\n " shape="box"] "DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_3" -> "DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_2" ; @@ -79,11 +79,11 @@ digraph iCFG { "DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_1" -> "DispatchEx_dispatch_group_notify_exampleclass.5abe79ad37e26b374978dd23ea90b0f0_5" ; -"__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5.7a26e229a9d9a9dcb5d0d430f7cacd00_4" [label="4: BinaryOperatorStmt: Assign \n n$36=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 69]\n n$37=_fun_DispatchEx_init(n$36:class DispatchEx*) virtual [line 69]\n *&#GB$DispatchEx_dispatch_group_notify_example_a:class DispatchEx*=n$37 [line 69]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5.7a26e229a9d9a9dcb5d0d430f7cacd00_4" [label="4: BinaryOperatorStmt: Assign \n n$36=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 69]\n n$37=_fun_DispatchEx_init(n$36:class DispatchEx*) virtual [line 69]\n *&#GB$DispatchEx_dispatch_group_notify_example_a:class DispatchEx*=n$37 [line 69]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5.7a26e229a9d9a9dcb5d0d430f7cacd00_4" -> "__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5.7a26e229a9d9a9dcb5d0d430f7cacd00_3" ; -"__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5.7a26e229a9d9a9dcb5d0d430f7cacd00_3" [label="3: BinaryOperatorStmt: Assign \n n$35=*&#GB$DispatchEx_dispatch_group_notify_example_a:class DispatchEx* [line 70]\n *n$35.x:int=10 [line 70]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5.7a26e229a9d9a9dcb5d0d430f7cacd00_3" [label="3: BinaryOperatorStmt: Assign \n n$35=*&#GB$DispatchEx_dispatch_group_notify_example_a:class DispatchEx* [line 70]\n *n$35.x:int=10 [line 70]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5.7a26e229a9d9a9dcb5d0d430f7cacd00_3" -> "__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5.7a26e229a9d9a9dcb5d0d430f7cacd00_2" ; @@ -94,15 +94,15 @@ digraph iCFG { "__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5.7a26e229a9d9a9dcb5d0d430f7cacd00_1" -> "__objc_anonymous_block_DispatchEx_dispatch_group_notify_example______5.7a26e229a9d9a9dcb5d0d430f7cacd00_4" ; -"DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_after_example_a:class DispatchEx*=0 [line 47]\n " shape="box"] +"DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_after_example_a:class DispatchEx*=0 [line 47]\n " shape="box"] "DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_5" -> "DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_4" ; -"DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_after_example______3) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_after_example______3); [line 50]\n n$22=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_after_example______3):unsigned long) [line 50]\n *&__objc_anonymous_block_DispatchEx_dispatch_after_example______3:class __objc_anonymous_block_DispatchEx_dispatch_after_example______3=n$22 [line 50]\n n$23=*&#GB$DispatchEx_dispatch_after_example_a:class DispatchEx* [line 50]\n *n$22.DispatchEx_dispatch_after_example_a:class DispatchEx*=n$23 [line 50]\n n$24=(_fun___objc_anonymous_block_DispatchEx_dispatch_after_example______3)() [line 48]\n " shape="box"] +"DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_after_example______3) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_after_example______3); [line 50]\n n$22=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_after_example______3):unsigned long) [line 50]\n *&__objc_anonymous_block_DispatchEx_dispatch_after_example______3:class __objc_anonymous_block_DispatchEx_dispatch_after_example______3=n$22 [line 50]\n n$23=*&#GB$DispatchEx_dispatch_after_example_a:class DispatchEx* [line 50]\n *n$22.DispatchEx_dispatch_after_example_a:class DispatchEx*=n$23 [line 50]\n n$24=(_fun___objc_anonymous_block_DispatchEx_dispatch_after_example______3)() [line 48]\n " shape="box"] "DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_4" -> "DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_3" ; -"DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_3" [label="3: Return Stmt \n n$17=*&#GB$DispatchEx_dispatch_after_example_a:class DispatchEx* [line 54]\n n$18=*n$17.x:int [line 54]\n *&return:int=n$18 [line 54]\n " shape="box"] +"DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_3" [label="3: Return Stmt \n n$17=*&#GB$DispatchEx_dispatch_after_example_a:class DispatchEx* [line 54]\n n$18=*n$17.x:int [line 54]\n *&return:int=n$18 [line 54]\n " shape="box"] "DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_3" -> "DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_2" ; @@ -113,11 +113,11 @@ digraph iCFG { "DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_1" -> "DispatchEx_dispatch_after_exampleclass.35e428c2a33c639058e557baad5fb3b1_5" ; -"__objc_anonymous_block_DispatchEx_dispatch_once_example______1.158d97f9901ded6a43590bdae67c9275_4" [label="4: BinaryOperatorStmt: Assign \n n$4=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 30]\n n$5=_fun_DispatchEx_init(n$4:class DispatchEx*) virtual [line 30]\n *&#GB$DispatchEx_dispatch_once_example_a:class DispatchEx*=n$5 [line 30]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_once_example______1.158d97f9901ded6a43590bdae67c9275_4" [label="4: BinaryOperatorStmt: Assign \n n$4=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 30]\n n$5=_fun_DispatchEx_init(n$4:class DispatchEx*) virtual [line 30]\n *&#GB$DispatchEx_dispatch_once_example_a:class DispatchEx*=n$5 [line 30]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_once_example______1.158d97f9901ded6a43590bdae67c9275_4" -> "__objc_anonymous_block_DispatchEx_dispatch_once_example______1.158d97f9901ded6a43590bdae67c9275_3" ; -"__objc_anonymous_block_DispatchEx_dispatch_once_example______1.158d97f9901ded6a43590bdae67c9275_3" [label="3: BinaryOperatorStmt: Assign \n n$3=*&#GB$DispatchEx_dispatch_once_example_a:class DispatchEx* [line 31]\n *n$3.x:int=10 [line 31]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_once_example______1.158d97f9901ded6a43590bdae67c9275_3" [label="3: BinaryOperatorStmt: Assign \n n$3=*&#GB$DispatchEx_dispatch_once_example_a:class DispatchEx* [line 31]\n *n$3.x:int=10 [line 31]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_once_example______1.158d97f9901ded6a43590bdae67c9275_3" -> "__objc_anonymous_block_DispatchEx_dispatch_once_example______1.158d97f9901ded6a43590bdae67c9275_2" ; @@ -128,11 +128,11 @@ digraph iCFG { "__objc_anonymous_block_DispatchEx_dispatch_once_example______1.158d97f9901ded6a43590bdae67c9275_1" -> "__objc_anonymous_block_DispatchEx_dispatch_once_example______1.158d97f9901ded6a43590bdae67c9275_4" ; -"__objc_anonymous_block_DispatchEx_dispatch_async_example______2.188fa4ba6cec1621d948ea1747df2c34_4" [label="4: BinaryOperatorStmt: Assign \n n$12=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 40]\n n$13=_fun_DispatchEx_init(n$12:class DispatchEx*) virtual [line 40]\n *&#GB$DispatchEx_dispatch_async_example_a:class DispatchEx*=n$13 [line 40]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_async_example______2.188fa4ba6cec1621d948ea1747df2c34_4" [label="4: BinaryOperatorStmt: Assign \n n$12=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 40]\n n$13=_fun_DispatchEx_init(n$12:class DispatchEx*) virtual [line 40]\n *&#GB$DispatchEx_dispatch_async_example_a:class DispatchEx*=n$13 [line 40]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_async_example______2.188fa4ba6cec1621d948ea1747df2c34_4" -> "__objc_anonymous_block_DispatchEx_dispatch_async_example______2.188fa4ba6cec1621d948ea1747df2c34_3" ; -"__objc_anonymous_block_DispatchEx_dispatch_async_example______2.188fa4ba6cec1621d948ea1747df2c34_3" [label="3: BinaryOperatorStmt: Assign \n n$11=*&#GB$DispatchEx_dispatch_async_example_a:class DispatchEx* [line 41]\n *n$11.x:int=10 [line 41]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_async_example______2.188fa4ba6cec1621d948ea1747df2c34_3" [label="3: BinaryOperatorStmt: Assign \n n$11=*&#GB$DispatchEx_dispatch_async_example_a:class DispatchEx* [line 41]\n *n$11.x:int=10 [line 41]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_async_example______2.188fa4ba6cec1621d948ea1747df2c34_3" -> "__objc_anonymous_block_DispatchEx_dispatch_async_example______2.188fa4ba6cec1621d948ea1747df2c34_2" ; @@ -143,15 +143,15 @@ digraph iCFG { "__objc_anonymous_block_DispatchEx_dispatch_async_example______2.188fa4ba6cec1621d948ea1747df2c34_1" -> "__objc_anonymous_block_DispatchEx_dispatch_async_example______2.188fa4ba6cec1621d948ea1747df2c34_4" ; -"DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_group_example_a:class DispatchEx*=0 [line 58]\n " shape="box"] +"DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_group_example_a:class DispatchEx*=0 [line 58]\n " shape="box"] "DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_5" -> "DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_4" ; -"DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_group_example______4) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_group_example______4); [line 59]\n n$30=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_group_example______4):unsigned long) [line 59]\n *&__objc_anonymous_block_DispatchEx_dispatch_group_example______4:class __objc_anonymous_block_DispatchEx_dispatch_group_example______4=n$30 [line 59]\n n$31=*&#GB$DispatchEx_dispatch_group_example_a:class DispatchEx* [line 59]\n *n$30.DispatchEx_dispatch_group_example_a:class DispatchEx*=n$31 [line 59]\n n$32=(_fun___objc_anonymous_block_DispatchEx_dispatch_group_example______4)() [line 59]\n " shape="box"] +"DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_group_example______4) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_group_example______4); [line 59]\n n$30=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_group_example______4):unsigned long) [line 59]\n *&__objc_anonymous_block_DispatchEx_dispatch_group_example______4:class __objc_anonymous_block_DispatchEx_dispatch_group_example______4=n$30 [line 59]\n n$31=*&#GB$DispatchEx_dispatch_group_example_a:class DispatchEx* [line 59]\n *n$30.DispatchEx_dispatch_group_example_a:class DispatchEx*=n$31 [line 59]\n n$32=(_fun___objc_anonymous_block_DispatchEx_dispatch_group_example______4)() [line 59]\n " shape="box"] "DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_4" -> "DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_3" ; -"DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_3" [label="3: Return Stmt \n n$25=*&#GB$DispatchEx_dispatch_group_example_a:class DispatchEx* [line 63]\n n$26=*n$25.x:int [line 63]\n *&return:int=n$26 [line 63]\n " shape="box"] +"DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_3" [label="3: Return Stmt \n n$25=*&#GB$DispatchEx_dispatch_group_example_a:class DispatchEx* [line 63]\n n$26=*n$25.x:int [line 63]\n *&return:int=n$26 [line 63]\n " shape="box"] "DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_3" -> "DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_2" ; @@ -162,15 +162,15 @@ digraph iCFG { "DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_1" -> "DispatchEx_dispatch_group_exampleclass.1dab66f0b4786a24195536869b8cbf4c_5" ; -"DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_async_example_a:class DispatchEx*=0 [line 37]\n " shape="box"] +"DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_async_example_a:class DispatchEx*=0 [line 37]\n " shape="box"] "DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_5" -> "DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_4" ; -"DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_async_example______2) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_async_example______2); [line 39]\n n$14=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_async_example______2):unsigned long) [line 39]\n *&__objc_anonymous_block_DispatchEx_dispatch_async_example______2:class __objc_anonymous_block_DispatchEx_dispatch_async_example______2=n$14 [line 39]\n n$15=*&#GB$DispatchEx_dispatch_async_example_a:class DispatchEx* [line 39]\n *n$14.DispatchEx_dispatch_async_example_a:class DispatchEx*=n$15 [line 39]\n n$16=(_fun___objc_anonymous_block_DispatchEx_dispatch_async_example______2)() [line 38]\n " shape="box"] +"DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_async_example______2) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_async_example______2); [line 39]\n n$14=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_async_example______2):unsigned long) [line 39]\n *&__objc_anonymous_block_DispatchEx_dispatch_async_example______2:class __objc_anonymous_block_DispatchEx_dispatch_async_example______2=n$14 [line 39]\n n$15=*&#GB$DispatchEx_dispatch_async_example_a:class DispatchEx* [line 39]\n *n$14.DispatchEx_dispatch_async_example_a:class DispatchEx*=n$15 [line 39]\n n$16=(_fun___objc_anonymous_block_DispatchEx_dispatch_async_example______2)() [line 38]\n " shape="box"] "DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_4" -> "DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_3" ; -"DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_3" [label="3: Return Stmt \n n$9=*&#GB$DispatchEx_dispatch_async_example_a:class DispatchEx* [line 43]\n n$10=*n$9.x:int [line 43]\n *&return:int=n$10 [line 43]\n " shape="box"] +"DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_3" [label="3: Return Stmt \n n$9=*&#GB$DispatchEx_dispatch_async_example_a:class DispatchEx* [line 43]\n n$10=*n$9.x:int [line 43]\n *&return:int=n$10 [line 43]\n " shape="box"] "DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_3" -> "DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_2" ; @@ -181,15 +181,15 @@ digraph iCFG { "DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_1" -> "DispatchEx_dispatch_async_exampleclass.d0682454f92c478110c2967d9b66ce4f_5" ; -"DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_barrier_example_a:class DispatchEx*=0 [line 76]\n " shape="box"] +"DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_5" [label="5: DeclStmt \n *&#GB$DispatchEx_dispatch_barrier_example_a:class DispatchEx*=0 [line 76]\n " shape="box"] "DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_5" -> "DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_4" ; -"DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_barrier_example______6) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6); [line 77]\n n$46=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_barrier_example______6):unsigned long) [line 77]\n *&__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6:class __objc_anonymous_block_DispatchEx_dispatch_barrier_example______6=n$46 [line 77]\n n$47=*&#GB$DispatchEx_dispatch_barrier_example_a:class DispatchEx* [line 77]\n *n$46.DispatchEx_dispatch_barrier_example_a:class DispatchEx*=n$47 [line 77]\n n$48=(_fun___objc_anonymous_block_DispatchEx_dispatch_barrier_example______6)() [line 77]\n " shape="box"] +"DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_4" [label="4: Call (_fun___objc_anonymous_block_DispatchEx_dispatch_barrier_example______6) \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6); [line 77]\n n$46=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchEx_dispatch_barrier_example______6):unsigned long) [line 77]\n *&__objc_anonymous_block_DispatchEx_dispatch_barrier_example______6:class __objc_anonymous_block_DispatchEx_dispatch_barrier_example______6=n$46 [line 77]\n n$47=*&#GB$DispatchEx_dispatch_barrier_example_a:class DispatchEx* [line 77]\n *n$46.DispatchEx_dispatch_barrier_example_a:class DispatchEx*=n$47 [line 77]\n n$48=(_fun___objc_anonymous_block_DispatchEx_dispatch_barrier_example______6)() [line 77]\n " shape="box"] "DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_4" -> "DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_3" ; -"DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_3" [label="3: Return Stmt \n n$41=*&#GB$DispatchEx_dispatch_barrier_example_a:class DispatchEx* [line 81]\n n$42=*n$41.x:int [line 81]\n *&return:int=n$42 [line 81]\n " shape="box"] +"DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_3" [label="3: Return Stmt \n n$41=*&#GB$DispatchEx_dispatch_barrier_example_a:class DispatchEx* [line 81]\n n$42=*n$41.x:int [line 81]\n *&return:int=n$42 [line 81]\n " shape="box"] "DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_3" -> "DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_2" ; @@ -200,11 +200,11 @@ digraph iCFG { "DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_1" -> "DispatchEx_dispatch_barrier_exampleclass.1a42e144a2ace9fe8e8014b0d6fa2d0d_5" ; -"__objc_anonymous_block_DispatchEx_dispatch_group_example______4.4458b8e68269255e8dd6690cdc49ab76_4" [label="4: BinaryOperatorStmt: Assign \n n$28=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 60]\n n$29=_fun_DispatchEx_init(n$28:class DispatchEx*) virtual [line 60]\n *&#GB$DispatchEx_dispatch_group_example_a:class DispatchEx*=n$29 [line 60]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_group_example______4.4458b8e68269255e8dd6690cdc49ab76_4" [label="4: BinaryOperatorStmt: Assign \n n$28=_fun___objc_alloc_no_fail(sizeof(class DispatchEx):unsigned long) [line 60]\n n$29=_fun_DispatchEx_init(n$28:class DispatchEx*) virtual [line 60]\n *&#GB$DispatchEx_dispatch_group_example_a:class DispatchEx*=n$29 [line 60]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_group_example______4.4458b8e68269255e8dd6690cdc49ab76_4" -> "__objc_anonymous_block_DispatchEx_dispatch_group_example______4.4458b8e68269255e8dd6690cdc49ab76_3" ; -"__objc_anonymous_block_DispatchEx_dispatch_group_example______4.4458b8e68269255e8dd6690cdc49ab76_3" [label="3: BinaryOperatorStmt: Assign \n n$27=*&#GB$DispatchEx_dispatch_group_example_a:class DispatchEx* [line 61]\n *n$27.x:int=10 [line 61]\n " shape="box"] +"__objc_anonymous_block_DispatchEx_dispatch_group_example______4.4458b8e68269255e8dd6690cdc49ab76_3" [label="3: BinaryOperatorStmt: Assign \n n$27=*&#GB$DispatchEx_dispatch_group_example_a:class DispatchEx* [line 61]\n *n$27.x:int=10 [line 61]\n " shape="box"] "__objc_anonymous_block_DispatchEx_dispatch_group_example______4.4458b8e68269255e8dd6690cdc49ab76_3" -> "__objc_anonymous_block_DispatchEx_dispatch_group_example______4.4458b8e68269255e8dd6690cdc49ab76_2" ; diff --git a/infer/tests/codetoanalyze/objc/shared/block/dispatch_in_macro.m.dot b/infer/tests/codetoanalyze/objc/shared/block/dispatch_in_macro.m.dot index a7bd71302..ba262b24e 100644 --- a/infer/tests/codetoanalyze/objc/shared/block/dispatch_in_macro.m.dot +++ b/infer/tests/codetoanalyze/objc/shared/block/dispatch_in_macro.m.dot @@ -1,6 +1,6 @@ /* @generated */ digraph iCFG { -"DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_3" [label="3: Return Stmt \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchInMacroTest______1); [line 23]\n n$3=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchInMacroTest______1):unsigned long) [line 23]\n *&__objc_anonymous_block_DispatchInMacroTest______1:class __objc_anonymous_block_DispatchInMacroTest______1=n$3 [line 23]\n n$4=*&#GB$DispatchInMacroTest_static_storage:class NSObject* [line 23]\n *n$3.DispatchInMacroTest_static_storage:class NSObject*=n$4 [line 23]\n n$5=(_fun___objc_anonymous_block_DispatchInMacroTest______1)() [line 23]\n n$0=*&#GB$DispatchInMacroTest_static_storage:class NSObject* [line 23]\n *&return:struct objc_object*=n$0 [line 23]\n " shape="box"] +"DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_3" [label="3: Return Stmt \n DECLARE_LOCALS(&__objc_anonymous_block_DispatchInMacroTest______1); [line 23]\n n$3=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_DispatchInMacroTest______1):unsigned long) [line 23]\n *&__objc_anonymous_block_DispatchInMacroTest______1:class __objc_anonymous_block_DispatchInMacroTest______1=n$3 [line 23]\n n$4=*&#GB$DispatchInMacroTest_static_storage:class NSObject* [line 23]\n *n$3.DispatchInMacroTest_static_storage:class NSObject*=n$4 [line 23]\n n$5=(_fun___objc_anonymous_block_DispatchInMacroTest______1)() [line 23]\n n$0=*&#GB$DispatchInMacroTest_static_storage:class NSObject* [line 23]\n *&return:struct objc_object*=n$0 [line 23]\n " shape="box"] "DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_3" -> "DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_2" ; @@ -11,7 +11,7 @@ digraph iCFG { "DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_1" -> "DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_3" ; -"__objc_anonymous_block_DispatchInMacroTest______1.db6c315d2cd0e3514d444428887908e2_3" [label="3: BinaryOperatorStmt: Assign \n n$1=_fun___objc_alloc_no_fail(sizeof(class NSObject):unsigned long) [line 23]\n n$2=_fun_NSObject_init(n$1:class NSObject*) virtual [line 23]\n *&#GB$DispatchInMacroTest_static_storage:class NSObject*=n$2 [line 23]\n " shape="box"] +"__objc_anonymous_block_DispatchInMacroTest______1.db6c315d2cd0e3514d444428887908e2_3" [label="3: BinaryOperatorStmt: Assign \n n$1=_fun___objc_alloc_no_fail(sizeof(class NSObject):unsigned long) [line 23]\n n$2=_fun_NSObject_init(n$1:class NSObject*) virtual [line 23]\n *&#GB$DispatchInMacroTest_static_storage:class NSObject*=n$2 [line 23]\n " shape="box"] "__objc_anonymous_block_DispatchInMacroTest______1.db6c315d2cd0e3514d444428887908e2_3" -> "__objc_anonymous_block_DispatchInMacroTest______1.db6c315d2cd0e3514d444428887908e2_2" ; diff --git a/infer/tests/codetoanalyze/objc/shared/memory_leaks_benchmark/RetainReleaseExample2.m.dot b/infer/tests/codetoanalyze/objc/shared/memory_leaks_benchmark/RetainReleaseExample2.m.dot index f0dbbf138..2441dda31 100644 --- a/infer/tests/codetoanalyze/objc/shared/memory_leaks_benchmark/RetainReleaseExample2.m.dot +++ b/infer/tests/codetoanalyze/objc/shared/memory_leaks_benchmark/RetainReleaseExample2.m.dot @@ -126,7 +126,7 @@ digraph iCFG { "retain_release2_test2.d890a0d9955e2ed8f58dd806f8d8d78c_4" -> "retain_release2_test2.d890a0d9955e2ed8f58dd806f8d8d78c_3" ; -"retain_release2_test2.d890a0d9955e2ed8f58dd806f8d8d78c_3" [label="3: BinaryOperatorStmt: Assign \n n$0=*&b:class RR2* [line 40]\n *&#GB$g:class RR2*=n$0 [line 40]\n " shape="box"] +"retain_release2_test2.d890a0d9955e2ed8f58dd806f8d8d78c_3" [label="3: BinaryOperatorStmt: Assign \n n$0=*&b:class RR2* [line 40]\n *&#GB$g:class RR2*=n$0 [line 40]\n " shape="box"] "retain_release2_test2.d890a0d9955e2ed8f58dd806f8d8d78c_3" -> "retain_release2_test2.d890a0d9955e2ed8f58dd806f8d8d78c_2" ;