Summary:
Move the implementation of implicit getters and setters from the biabduction to the clang frontend so these methods are accessible to all the checkers.
*Background*: In Objective-C when properties are created in the interface of a class, the compiler creates automatically the instance variable for it and also the getter and setter in the implementation of the class. In the frontend we collect the information about which method is the implicit getter and setter of which instance variable (we get the method declaration but not the implementation), and here we add the implicit implementation.
Reviewed By: skcho
Differential Revision: D22187238
fbshipit-source-id: 76e0508ed
master
Dulma Churchill4 years agocommitted byFacebook GitHub Bot
build_systems/codetoanalyze/objc_getters_setters/B.m, B.calling_c_function_with_block_parameters_sets_fields_correctly, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure calling_c_function_with_block_parameters_sets_fields_correctly,start of procedure calling_c_function_with_block_parameters,start of procedure c_function(),start of procedure block,return from a call to objc_blockB.calling_c_function_with_block_parameters_3,start of procedure block,return from a call to objc_blockB.calling_c_function_with_block_parameters_4,return from a call to c_function_objc_blockB.calling_c_function_with_block_parameters_3_objc_blockB.calling_c_function_with_block_parameters_4,return from a call to B.calling_c_function_with_block_parameters,Taking true branch]
build_systems/codetoanalyze/objc_getters_setters/B.m, B.calling_c_function_with_block_parameters_sets_fields_correctly, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure calling_c_function_with_block_parameters_sets_fields_correctly,start of procedure calling_c_function_with_block_parameters,start of procedure c_function(),start of procedure block,return from a call to objc_blockB.calling_c_function_with_block_parameters_3,start of procedure block,return from a call to objc_blockB.calling_c_function_with_block_parameters_4,return from a call to c_function_objc_blockB.calling_c_function_with_block_parameters_3_objc_blockB.calling_c_function_with_block_parameters_4,return from a call to B.calling_c_function_with_block_parameters,Taking true branch]
build_systems/codetoanalyze/objc_getters_setters/B.m, B.calling_method_with_block_parameters_sets_fields_correctly, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure calling_method_with_block_parameters_sets_fields_correctly,start of procedure calling_method_with_block_parameters,start of procedure foo:and:and_also:and:,start of procedure block,return from a call to objc_blockB.calling_method_with_block_parameters_1,start of procedure block,return from a call to objc_blockB.calling_method_with_block_parameters_2,return from a call to A.foo:and:and_also:and:_objc_blockB.calling_method_with_block_parameters_1_objc_blockB.calling_method_with_block_parameters_2,return from a call to B.calling_method_with_block_parameters,Taking true branch]
build_systems/codetoanalyze/objc_getters_setters/B.m, B.calling_method_with_block_parameters_sets_fields_correctly, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure calling_method_with_block_parameters_sets_fields_correctly,start of procedure calling_method_with_block_parameters,start of procedure foo:and:and_also:and:,start of procedure block,return from a call to objc_blockB.calling_method_with_block_parameters_1,start of procedure block,return from a call to objc_blockB.calling_method_with_block_parameters_2,return from a call to A.foo:and:and_also:and:_objc_blockB.calling_method_with_block_parameters_1_objc_blockB.calling_method_with_block_parameters_2,return from a call to B.calling_method_with_block_parameters,Taking true branch]
build_systems/codetoanalyze/objc_getters_setters/B.m, B.npe_no_bad_footprint_in_getter:, 3, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure npe_no_bad_footprint_in_getter:,start of procedure metadata,return from a call to A.metadata]
build_systems/codetoanalyze/objc_getters_setters/B.m, B.npe_no_bad_footprint_in_setter:andMetadata:, 3, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure npe_no_bad_footprint_in_setter:andMetadata:,start of procedure setMetadata:,return from a call to A.setMetadata:]
build_systems/codetoanalyze/objc_getters_setters/B.m, B.npe_no_precondition_not_met:, 4, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure npe_no_precondition_not_met:,start of procedure infer_field_get_spec:,start of procedure withMetadata:,return from a call to A.withMetadata:,return from a call to B.infer_field_get_spec:,start of procedure getX,return from a call to A.getX,Taking true branch]
build_systems/codetoanalyze/objc_getters_setters/B.m, B.npe_no_precondition_not_met:, 4, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure npe_no_precondition_not_met:,start of procedure infer_field_get_spec:,start of procedure withMetadata:,return from a call to A.withMetadata:,return from a call to B.infer_field_get_spec:,start of procedure getX,return from a call to A.getX,Taking true branch]
build_systems/codetoanalyze/objc_missing_fld/A.m, badOnlyOneNDA, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure badOnlyOneNDA(),start of procedure predA(),start of procedure implOnlyFn:,return from a call to A.implOnlyFn:,Executing synthesized getter delegate,Condition is true,return from a call to predA,Taking false branch]
build_systems/codetoanalyze/objc_missing_fld/A.m, badOnlyOneNDA, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure badOnlyOneNDA(),start of procedure predA(),start of procedure implOnlyFn:,return from a call to A.implOnlyFn:,start of procedure delegate,return from a call to A.delegate,Condition is true,return from a call to predA,Taking false branch]
build_systems/codetoanalyze/objc_missing_fld/B.m, badOnlyOneNDB, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure badOnlyOneNDB(),start of procedure predB(),start of procedure implOnlyFn:,return from a call to A.implOnlyFn:,Executing synthesized getter delegate,Condition is true,return from a call to predB,Taking false branch]
build_systems/codetoanalyze/objc_missing_fld/B.m, badOnlyOneNDB, 5, NULL_DEREFERENCE, no_bucket, ERROR, [start of procedure badOnlyOneNDB(),start of procedure predB(),start of procedure implOnlyFn:,return from a call to A.implOnlyFn:,start of procedure delegate,return from a call to A.delegate,Condition is true,return from a call to predB,Taking false branch]
build_systems/codetoanalyze/objc_retain_cycles_weak/TimeSpent.m, TimeSpent.init_bad, 2, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure init_bad,Taking true branch,start of procedure setDataSourceStrong:,return from a call to ListAdapter.setDataSourceStrong:]
build_systems/codetoanalyze/objc_retain_cycles_weak/TimeSpent.m, TimeSpent.init_bad, 2, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure init_bad,Taking true branch,start of procedure setDataSourceStrong:,return from a call to ListAdapter.setDataSourceStrong:]
build_systems/codetoanalyze/objc_retain_cycles_weak/TimeSpent.m, retain_cycle_weak_bad, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure retain_cycle_weak_bad(),start of procedure init,start of procedure initWithDelegate:,Executing synthesized setter setDelegate:,return from a call to AnalyticsTimeSpent.initWithDelegate:,return from a call to TimeSpent.init,start of procedure initWithStrongDelegate:,return from a call to AnalyticsTimeSpent.initWithStrongDelegate:,start of procedure setAnalyticsTimeSpent:,return from a call to TimeSpent.setAnalyticsTimeSpent:]
build_systems/codetoanalyze/objc_retain_cycles_weak/TimeSpent.m, retain_cycle_weak_bad, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure retain_cycle_weak_bad(),start of procedure init,start of procedure initWithDelegate:,start of procedure setDelegate:,return from a call to AnalyticsTimeSpent.setDelegate:,return from a call to AnalyticsTimeSpent.initWithDelegate:,return from a call to TimeSpent.init,start of procedure initWithStrongDelegate:,return from a call to AnalyticsTimeSpent.initWithStrongDelegate:,start of procedure setAnalyticsTimeSpent:,return from a call to TimeSpent.setAnalyticsTimeSpent:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleStaticVar.m, RetainCSV.foo, 13, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure foo,start of procedure setHandler:,return from a call to RetainCSV.setHandler:_objc_blockRetainCSV.foo_1]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleStaticVar.m, RetainCSV.foo, 13, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure foo,start of procedure setHandler:,return from a call to RetainCSV.setHandler:_objc_blockRetainCSV.foo_1]
codetoanalyze/objc/biabduction/npe/null_returned_by_method.m, NullReturnedByMethodA.test1, 1, NULL_DEREFERENCE, B5, ERROR, [start of procedure test1,start of procedure test,return from a call to NullReturnedByMethodA.test]
codetoanalyze/objc/biabduction/npe/null_returned_by_method.m, NullReturnedByMethodA.test1, 1, NULL_DEREFERENCE, B5, ERROR, [start of procedure test1,start of procedure test,return from a call to NullReturnedByMethodA.test]
codetoanalyze/objc/biabduction/procdescs/main.c, ProcdescMain, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure ProcdescMain(),Skipping plusX:andY:: method has no implementation]
codetoanalyze/objc/biabduction/procdescs/main.c, ProcdescMain, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure ProcdescMain(),Skipping plusX:andY:: method has no implementation]
codetoanalyze/objc/biabduction/procdescs/main.c, call_nslog, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure call_nslog(),Skipping NSLog(): method has no implementation]
codetoanalyze/objc/biabduction/procdescs/main.c, call_nslog, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure call_nslog(),Skipping NSLog(): method has no implementation]
codetoanalyze/objc/biabduction/property/main.c, property_main, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure property_main(),Skipping aProperty: method has no implementation]
codetoanalyze/objc/biabduction/property/main.c, property_main, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure property_main(),Skipping aProperty: method has no implementation]
codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder.FBAudioInputCallbackChain:, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure FBAudioInputCallbackChain:,Executing synthesized getter recorder Message recordState with receiver nil returns nil.]
codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder.FBAudioInputCallbackChain:, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure FBAudioInputCallbackChain:,start of procedure recorder,return from a call to FBAudioRecorder.recorder]
codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder.FBAudioInputCallbackChain:, 2, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure FBAudioInputCallbackChain:,Message recorder with receiver nil returns nil. Message recordState with receiver nil returns nil.]
codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder.FBAudioInputCallbackChain:, 2, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure FBAudioInputCallbackChain:,Message recorder with receiver nil returns nil. Message recordState with receiver nil returns nil.]
codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder.FBAudioInputCallbackField, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure FBAudioInputCallbackField,Message recordState with receiver nil returns nil.]
codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder.FBAudioInputCallbackField, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure FBAudioInputCallbackField,Message recordState with receiver nil returns nil.]
codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder.FBAudioInputCallbackSimple:, 2, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure FBAudioInputCallbackSimple:,Message recordState with receiver nil returns nil.]
codetoanalyze/objc/biabduction/warnings/ParameterNotNullableExample.m, FBAudioRecorder.FBAudioInputCallbackSimple:, 2, PARAMETER_NOT_NULL_CHECKED, B2, WARNING, [start of procedure FBAudioInputCallbackSimple:,Message recordState with receiver nil returns nil.]
@ -23,7 +23,7 @@ codetoanalyze/objc/shared/block/block.m, main1, 30, DIVIDE_BY_ZERO, no_bucket, E
codetoanalyze/objc/shared/block/block_no_args.m, Block_no_args.m, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure m,start of procedure block,return from a call to objc_blockBlock_no_args.m_1,Taking true branch]
codetoanalyze/objc/shared/block/block_no_args.m, Block_no_args.m, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure m,start of procedure block,return from a call to objc_blockBlock_no_args.m_1,Taking true branch]
codetoanalyze/objc/shared/category_procdesc/main.c, CategoryProcdescMain, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure CategoryProcdescMain(),Skipping performDaysWork: method has no implementation]
codetoanalyze/objc/shared/category_procdesc/main.c, CategoryProcdescMain, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure CategoryProcdescMain(),Skipping performDaysWork: method has no implementation]
codetoanalyze/objc/shared/field_superclass/SuperExample.m, ASuper.init, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure init]
codetoanalyze/objc/shared/field_superclass/SuperExample.m, ASuper.init, 2, NULL_DEREFERENCE, B2, ERROR, [start of procedure init]
codetoanalyze/objc/biabduction/blocks_in_heap/BlockInHeap.m, block_in_heap_executed_after_bi_abduction_ok_test, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure block_in_heap_executed_after_bi_abduction_ok_test(),start of procedure block_in_heap_executed_after_bi_abduction_ok_no_retain_cycle(),start of procedure assign_block_to_ivar,Executing synthesized setter setHandler:,return from a call to BlockInHeap.assign_block_to_ivar,Executing synthesized getter handler,start of procedure block,return from a call to objc_blockBlockInHeap.assign_block_to_ivar_1,return from a call to block_in_heap_executed_after_bi_abduction_ok_no_retain_cycle,Taking true branch]
codetoanalyze/objc/biabduction/blocks_in_heap/BlockInHeap.m, block_in_heap_executed_after_bi_abduction_ok_test, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure block_in_heap_executed_after_bi_abduction_ok_test(),start of procedure block_in_heap_executed_after_bi_abduction_ok_no_retain_cycle(),start of procedure assign_block_to_ivar,start of procedure setHandler:,return from a call to BlockInHeap.setHandler:_objc_blockBlockInHeap.assign_block_to_ivar_1,return from a call to BlockInHeap.assign_block_to_ivar,start of procedure handler,return from a call to BlockInHeap.handler,start of procedure block,return from a call to objc_blockBlockInHeap.assign_block_to_ivar_1,return from a call to block_in_heap_executed_after_bi_abduction_ok_no_retain_cycle,Taking true branch]
codetoanalyze/objc/biabduction/field_superclass/SubtypingExample.m, Employee.initWithName:andAge:andEducation:, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure initWithName:andAge:andEducation:,start of procedure initWithName:andAge:,return from a call to Person.initWithName:andAge:,Taking true branch]
codetoanalyze/objc/biabduction/field_superclass/SubtypingExample.m, Employee.initWithName:andAge:andEducation:, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure initWithName:andAge:andEducation:,start of procedure initWithName:andAge:,return from a call to Person.initWithName:andAge:,Taking true branch]
codetoanalyze/objc/biabduction/field_superclass/SubtypingExample.m, subtyping_test, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure subtyping_test(),start of procedure testFields(),start of procedure setEmployeeEducation:,return from a call to Employee.setEmployeeEducation:,start of procedure setAge:,return from a call to Person.setAge:,start of procedure setEmployeeEducation:,return from a call to Employee.setEmployeeEducation:,start of procedure getAge,return from a call to Person.getAge,return from a call to testFields]
codetoanalyze/objc/biabduction/field_superclass/SubtypingExample.m, subtyping_test, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure subtyping_test(),start of procedure testFields(),start of procedure setEmployeeEducation:,return from a call to Employee.setEmployeeEducation:,start of procedure setAge:,return from a call to Person.setAge:,start of procedure setEmployeeEducation:,return from a call to Employee.setEmployeeEducation:,start of procedure getAge,return from a call to Person.getAge,return from a call to testFields]
codetoanalyze/objc/biabduction/initialization/struct_initlistexpr.c, field_set_correctly, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure field_set_correctly()]
codetoanalyze/objc/biabduction/initialization/struct_initlistexpr.c, field_set_correctly, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure field_set_correctly()]
codetoanalyze/objc/biabduction/initialization/struct_initlistexpr.c, point_coords_set_correctly, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure point_coords_set_correctly()]
codetoanalyze/objc/biabduction/initialization/struct_initlistexpr.c, point_coords_set_correctly, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure point_coords_set_correctly()]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockAsParameter.m, FBSomeDataManager.fetchNewData, 2, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure fetchNewData,start of procedure initWithCompletionBlock:,return from a call to Fetcher.initWithCompletionBlock:_objc_blockFBSomeDataManager.fetchNewData_1]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockAsParameter.m, FBSomeDataManager.fetchNewData, 2, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure fetchNewData,start of procedure initWithCompletionBlock:,return from a call to Fetcher.initWithCompletionBlock:_objc_blockFBSomeDataManager.fetchNewData_1]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockAsParameter.m, FBSomeDataManager.fetchNewData, 2, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure fetchNewData,start of procedure initWithCompletionBlock:,return from a call to Fetcher.initWithCompletionBlock:_objc_blockFBSomeDataManager.fetchNewData_1]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockAsParameter.m, FBSomeDataManager.fetchNewData, 2, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure fetchNewData,start of procedure initWithCompletionBlock:,return from a call to Fetcher.initWithCompletionBlock:_objc_blockFBSomeDataManager.fetchNewData_1]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockCapturedVar.m, LinkResolver.test_bad, 3, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure test_bad,start of procedure setDidFinishLoad:,return from a call to Listener.setDidFinishLoad:_objc_blockLinkResolver.test_bad_1]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlockCapturedVar.m, LinkResolver.test_bad, 3, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure test_bad,start of procedure setDidFinishLoad:,return from a call to Listener.setDidFinishLoad:_objc_blockLinkResolver.test_bad_1]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlocks.m, RCBlock.retain_self_in_block, 1, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure retain_self_in_block,start of procedure setHandler:,return from a call to RCBlock.setHandler:_objc_blockRCBlock.retain_self_in_block_1]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlocks.m, RCBlock.retain_self_in_block, 1, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure retain_self_in_block,start of procedure setHandler:,return from a call to RCBlock.setHandler:_objc_blockRCBlock.retain_self_in_block_1]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlocks.m, objc_blockretain_a_in_block_cycle_3, 1, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure block,start of procedure setChild:,return from a call to RCBlockAA.setChild:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlocks.m, objc_blockretain_a_in_block_cycle_3, 1, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure block,start of procedure setChild:,return from a call to RCBlockAA.setChild:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlocks.m, retain_a_in_block_cycle, 4, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure retain_a_in_block_cycle(),start of procedure setB:,return from a call to RCBlockAA.setB:,start of procedure setA:,return from a call to RCBlock.setA:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleBlocks.m, retain_a_in_block_cycle, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure retain_a_in_block_cycle(),start of procedure setB:,return from a call to RCBlockAA.setB:,start of procedure setA:,return from a call to RCBlock.setA:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleDeduplication.m, CViewController.setCaptureInteractionController:, 4, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure setCaptureInteractionController:,Taking true branch,start of procedure setDelegate:,return from a call to CaptureController.setDelegate:,start of procedure setDelegate:,return from a call to CaptureController.setDelegate:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleDeduplication.m, CViewController.setCaptureInteractionController:, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure setCaptureInteractionController:,Taking true branch,start of procedure setDelegate:,return from a call to CaptureController.setDelegate:,start of procedure setDelegate:,return from a call to CaptureController.setDelegate:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, Delegate.setStrong_delegate:, 0, Bad_footprint, no_bucket, ERROR, [start of procedure setStrong_delegate:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, Delegate.strong_delegate, 0, Bad_footprint, no_bucket, ERROR, [start of procedure strong_delegate]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle.m, strongcycle, 6, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure strongcycle(),start of procedure setB:,return from a call to AA.setB:,start of procedure setA:,return from a call to BBStrong.setA:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle.m, strongcycle, 6, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle(),start of procedure setB:,return from a call to AA.setB:,start of procedure setA:,return from a call to BBStrong.setA:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle2.m, strongcycle2, 4, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure strongcycle2(),start of procedure init,return from a call to Parent.init,start of procedure init,return from a call to Child.init,start of procedure setChild:,return from a call to Parent.setChild:,start of procedure setParent:,return from a call to Child.setParent:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle2.m, strongcycle2, 4, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure strongcycle2(),start of procedure init,return from a call to Parent.init,start of procedure init,return from a call to Child.init,start of procedure setChild:,return from a call to Parent.setChild:,start of procedure setParent:,return from a call to Child.setParent:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle2.m, strongcycle2, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle2(),start of procedure init,return from a call to Parent.init,start of procedure init,return from a call to Child.init,start of procedure setChild:,return from a call to Parent.setChild:,start of procedure setParent:,return from a call to Child.setParent:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle2.m, strongcycle2, 4, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle2(),start of procedure init,return from a call to Parent.init,start of procedure init,return from a call to Child.init,start of procedure setChild:,return from a call to Parent.setChild:,start of procedure setParent:,return from a call to Child.setParent:]
codetoanalyze/objc/biabduction/npe/UpdateDict.m, add_nil_in_dict, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure add_nil_in_dict(),Skipping dictionaryWithObjectsAndKeys:: method has no implementation]
codetoanalyze/objc/biabduction/npe/UpdateDict.m, add_nil_in_dict, 10, NULL_DEREFERENCE, B1, ERROR, [start of procedure add_nil_in_dict(),Skipping dictionaryWithObjectsAndKeys:: method has no implementation]
codetoanalyze/objc/biabduction/property/ExplicitIvarName.m, ExplicitIvarNameA.testExplicit, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure testExplicit,start of procedure x,return from a call to ExplicitIvarNameA.x,Taking true branch]
codetoanalyze/objc/biabduction/subtyping/KindOfClassExample.m, shouldThrowDivideByZero1, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero1(),start of procedure init,return from a call to Base.init,start of procedure returnsZero1:,Taking true branch,return from a call to Base.returnsZero1:]
codetoanalyze/objc/biabduction/subtyping/KindOfClassExample.m, shouldThrowDivideByZero1, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero1(),start of procedure init,return from a call to Base.init,start of procedure returnsZero1:,Taking true branch,return from a call to Base.returnsZero1:]
codetoanalyze/objc/biabduction/subtyping/KindOfClassExample.m, shouldThrowDivideByZero2, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero2(),start of procedure init,return from a call to Base.init,start of procedure returnsZero2(),Taking false branch,return from a call to returnsZero2]
codetoanalyze/objc/biabduction/subtyping/KindOfClassExample.m, shouldThrowDivideByZero2, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero2(),start of procedure init,return from a call to Base.init,start of procedure returnsZero2(),Taking false branch,return from a call to returnsZero2]
codetoanalyze/objc/biabduction/subtyping/KindOfClassExample.m, shouldThrowDivideByZero3, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero3(),start of procedure init,return from a call to Derived.init,Taking true branch]
codetoanalyze/objc/biabduction/subtyping/KindOfClassExample.m, shouldThrowDivideByZero3, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure shouldThrowDivideByZero3(),start of procedure init,return from a call to Derived.init,Taking true branch]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleLength3.m, strongcycle, 6, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure strongcycle(),start of procedure setB:,return from a call to AA.setB:,start of procedure setC:,return from a call to BB.setC:,start of procedure setA:,return from a call to CC.setA:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleLength3.m, strongcycle, 6, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle(),start of procedure setB:,return from a call to AA.setB:,start of procedure setC:,return from a call to BB.setC:,start of procedure setA:,return from a call to CC.setA:]
codetoanalyze/objc/biabduction/npe/Fraction.m, test_virtual_call, 7, NULL_DEREFERENCE, B1, ERROR, [start of procedure test_virtual_call(),start of procedure setNumerator:,return from a call to Fraction.setNumerator:,start of procedure getNumerator,return from a call to Fraction.getNumerator,Taking true branch]
codetoanalyze/objc/biabduction/npe/Fraction.m, test_virtual_call, 7, NULL_DEREFERENCE, B1, ERROR, [start of procedure test_virtual_call(),start of procedure setNumerator:,return from a call to Fraction.setNumerator:,start of procedure getNumerator,return from a call to Fraction.getNumerator,Taking true branch]
codetoanalyze/objc/biabduction/npe/Npe_with_equal_names.m, EqualNamesTest, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure EqualNamesTest(),start of procedure meth,return from a call to EqualNamesA.meth]
codetoanalyze/objc/biabduction/npe/Npe_with_equal_names.m, EqualNamesTest, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure EqualNamesTest(),start of procedure meth,return from a call to EqualNamesA.meth]
codetoanalyze/objc/biabduction/npe/Nsstring_nil_args.m, initWithFormatBad, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure initWithFormatBad()]
codetoanalyze/objc/biabduction/npe/Nsstring_nil_args.m, initWithFormatBad, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure initWithFormatBad()]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.createCloseCrossGlyph:, 2, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure createCloseCrossGlyph:,Skipping CGRectGetHeight(): method has no implementation]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.createCloseCrossGlyph:, 2, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure createCloseCrossGlyph:,Skipping CGRectGetHeight(): method has no implementation]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.measureFrameSizeForText, 1, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure measureFrameSizeForText]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.measureFrameSizeForText, 1, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure measureFrameSizeForText]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.regularLeak, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure regularLeak]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.regularLeak, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure regularLeak]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.test, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure test,Skipping bounds: method has no implementation,Skipping setShadowPath:: method has no implementation]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.test, 3, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure test,start of procedure backgroundCoveringView,return from a call to MemoryLeakExample.backgroundCoveringView,Skipping bounds: method has no implementation,start of procedure backgroundCoveringView,return from a call to MemoryLeakExample.backgroundCoveringView,Skipping setShadowPath:: method has no implementation]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.test1:, 1, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure test1:]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.test1:, 1, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure test1:]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.test2:, 1, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure test2:]
codetoanalyze/objc/shared/memory_leaks_benchmark/MemoryLeakExample.m, MemoryLeakExample.test2:, 1, BIABDUCTION_MEMORY_LEAK, no_bucket, ERROR, [start of procedure test2:]
codetoanalyze/objc/performance/break.m, break_constant_FP, 8 + 5 ⋅ p + 2 ⋅ (1+max(0, p)), OnUIThread:false, [{1+max(0, p)},call to break_loop,Loop at line 10, column 3,{p},call to break_loop,Loop at line 10, column 3]
codetoanalyze/objc/performance/break.m, break_constant_FP, 8 + 5 ⋅ p + 2 ⋅ (1+max(0, p)), OnUIThread:false, [{1+max(0, p)},call to break_loop,Loop at line 10, column 3,{p},call to break_loop,Loop at line 10, column 3]
codetoanalyze/objc/performance/break.m, break_loop, 5 + 5 ⋅ p + 2 ⋅ (1+max(0, p)), OnUIThread:false, [{1+max(0, p)},Loop at line 10, column 3,{p},Loop at line 10, column 3]
codetoanalyze/objc/performance/break.m, break_loop, 5 + 5 ⋅ p + 2 ⋅ (1+max(0, p)), OnUIThread:false, [{1+max(0, p)},Loop at line 10, column 3,{p},Loop at line 10, column 3]
codetoanalyze/objcpp/biabduction/BlockLfield.mm, A.mOk, 1, PRECONDITION_NOT_FOUND, no_bucket, ERROR, [start of procedure mOk]
codetoanalyze/objcpp/biabduction/BlockLfield.mm, A.mOk, 1, PRECONDITION_NOT_FOUND, no_bucket, ERROR, [start of procedure mOk]
codetoanalyze/objcpp/biabduction/BlockLfield.mm, CFunWithBlockOk, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure CFunWithBlockOk()]
codetoanalyze/objcpp/biabduction/BlockLfield.mm, CFunWithBlockOk, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure CFunWithBlockOk()]
codetoanalyze/objcpp/biabduction/BlockLfield.mm, CFunWithBlockOk_objc_blockA.mOk_1, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure CFunWithBlockOk()]
codetoanalyze/objcpp/biabduction/BlockLfield.mm, CFunWithBlockOk_objc_blockA.mOk_1, 2, PRECONDITION_NOT_MET, no_bucket, WARNING, [start of procedure CFunWithBlockOk()]
codetoanalyze/objcpp/biabduction/c_functions.mm, main, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure main(),start of procedure autoUpdating,return from a call to Functions.autoUpdating,start of procedure autoUpdating2,Skipping dispatch_once2(): method has no implementation,return from a call to Functions.autoUpdating2,Executing synthesized getter block,start of procedure block,return from a call to objc_blockobjc_blockFunctions.autoUpdating_1_2,Message block with receiver nil returns nil.]
codetoanalyze/objcpp/biabduction/c_functions.mm, main, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure main(),start of procedure autoUpdating,return from a call to Functions.autoUpdating,start of procedure autoUpdating2,Skipping dispatch_once2(): method has no implementation,return from a call to Functions.autoUpdating2,start of procedure block,return from a call to Functions.block,start of procedure block,return from a call to objc_blockobjc_blockFunctions.autoUpdating_1_2,Message block with receiver nil returns nil.]
codetoanalyze/objcpp/biabduction/retain_cycles/RetainCycleWithStruct.mm, Animation.tracer, 2, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure tracer,start of procedure _State,return from a call to _State::_State,start of procedure initWithAnimation:,Taking true branch,return from a call to Tracer.initWithAnimation:]
codetoanalyze/objcpp/biabduction/retain_cycles/RetainCycleWithStruct.mm, Animation.tracer, 2, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure tracer,start of procedure _State,return from a call to _State::_State,start of procedure initWithAnimation:,Taking true branch,return from a call to Tracer.initWithAnimation:]
codetoanalyze/objcpp/biabduction/retain_cycles/RetainCycleWithStruct.mm, Animation.tracer, 2, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure tracer,start of procedure _State,return from a call to _State::_State,start of procedure initWithAnimation:,Taking true branch,return from a call to Tracer.initWithAnimation:]
codetoanalyze/objcpp/biabduction/retain_cycles/RetainCycleWithStruct.mm, Animation.tracer, 2, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure tracer,start of procedure _State,return from a call to _State::_State,start of procedure initWithAnimation:,Taking true branch,return from a call to Tracer.initWithAnimation:]