Lines Matching +full:- +full:- +full:release
1 …ze_cc1 -analyzer-checker=core,osx.cocoa.RetainCount,osx.cocoa.Dealloc,debug.ExprInspection -verify…
2 …1 -analyzer-checker=core,osx.cocoa.RetainCount,osx.cocoa.Dealloc,debug.ExprInspection -verify -Wno…
16 @protocol NSObject - (BOOL)isEqual:(id)object; @end
17 @protocol NSCopying - (id)copyWithZone:(NSZone *)zone; @end
18 @protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder; @end
19 @protocol NSMutableCopying - (id)mutableCopyWithZone:(NSZone *)zone; @end
22 -(id)init;
23 -(id)autorelease;
24 -(id)copy;
25 -(id)retain;
26 -(oneway void)release; method
27 -(void)dealloc;
30 - (NSUInteger)length;
31 -(id)initWithFormat:(NSString *)f,...;
32 -(BOOL)isEqualToString:(NSString *)s;
37 -(id)initWithInteger:(int)i;
43 -(id)myMethod;
54 -(id)myMethod {
57 …NSString *string1 = [[NSString alloc] initWithFormat:@"test %f", 0.0]; // expected-warning {{Poten…
71 - (id)initWithNumber:(NSNumber *)number;
81 - (id)initWithNumber:(NSNumber *)number
93 - (NSNumber*)newMyNumber
101 - (id)valueForUndefinedKey:(NSString*)key
108 value = [self.myNumber retain]; // this line fixes the over release
114 return [value autorelease]; // expected-warning {{Object autoreleased too many times}}
123 return [result autorelease]; // expected-warning {{Object autoreleased too many times}}
139 -(void)dealloc {
141 self.name = [[NSString alloc] init]; // expected-warning {{leak}}
143 …[super dealloc]; // expected-warning {{The '_name' ivar in 'Person' was retained by a synthesized …
152 p.name = [[NSString string] retain]; // expected-warning {{leak}}
153 p.name = [[NSString alloc] init]; // expected-warning {{leak}}
155 p.friend = [[Person alloc] init]; // expected-warning {{leak}}
160 -(NSString *)foo;
164 -(NSString *)foo {
174 -(id)testAnalyzer1:(int) y;
175 -(void)testAnalyzer2;
180 -(id)testAnalyzer1:(int)y {
182 if (y && o.x) // expected-warning {{Property access on an uninitialized object pointer}}
184 return o; // expected-warning {{Undefined or garbage value returned to caller}}
186 -(void)testAnalyzer2 {
188 self.x = y; // expected-warning {{Argument for property setter is an uninitialized value}}
194 //------
196 //------
202 clang_analyzer_eval(p.name == p.name); // expected-warning{{TRUE}}
205 clang_analyzer_eval(p.name == origName); // expected-warning{{TRUE}}
207 clang_analyzer_eval(p.name == origName); // expected-warning{{UNKNOWN}}
211 clang_analyzer_eval(p.friend == p.friend); // expected-warning{{TRUE}}
214 clang_analyzer_eval(p.friend == origFriend); // expected-warning{{TRUE}}
216 clang_analyzer_eval(p.friend == origFriend); // expected-warning{{UNKNOWN}}
230 - (void)testSynthesisForShadowedReadWriteProperties; {
231 clang_analyzer_eval(self.someProp == self.someProp); // expected-warning{{TRUE}}
237 clang_analyzer_eval(_f == 1); // expected-warning{{TRUE}}
242 clang_analyzer_eval(_f == 2); // expected-warning{{TRUE}}
266 - (void)testSynthesisForRedeclaredProperties; {
267 clang_analyzer_eval(self.someProp == self.someProp); // expected-warning{{TRUE}}
268 clang_analyzer_eval([self someProp] == self.someProp); // expected-warning{{TRUE}}
270 clang_analyzer_eval(self.otherProp == self.otherProp); // expected-warning{{TRUE}}
271 clang_analyzer_eval([self otherProp] == self.otherProp); // expected-warning{{TRUE}}
288 - (void)testSynthesisForRedeclaredProperties; {
289 clang_analyzer_eval(self.someProp == self.someProp); // expected-warning{{TRUE}}
290 clang_analyzer_eval([self someProp] == self.someProp); // expected-warning{{TRUE}}
303 - (void)testBodyFarmGetterNotUsed {
305 clang_analyzer_eval(i == 22); // expected-warning {{TRUE}}
308 -(int)someProp {
334 -(void)foo {
339 //------
341 //------
360 - (void) testSettingPropWithIvarInvalidatesExactlyThatIvar; {
372 clang_analyzer_eval(_propWithIvar1 == 66); // expected-warning{{UNKNOWN}}
373 clang_analyzer_eval(_propWithIvar2 == 2); // expected-warning{{TRUE}}
378 clang_analyzer_eval(_propWithIvar1 == 66); // expected-warning{{UNKNOWN}}
379 clang_analyzer_eval(_propWithIvar2 == 2); // expected-warning{{TRUE}}
382 - (void) testSettingPropWithoutIvarInvalidatesEntireInstance; {
387 clang_analyzer_eval(_propWithIvar1 == 66); // expected-warning{{UNKNOWN}}
388 clang_analyzer_eval(_propWithIvar2 == 2); // expected-warning{{UNKNOWN}}
394 clang_analyzer_eval(_propWithIvar1 == 66); // expected-warning{{UNKNOWN}}
395 clang_analyzer_eval(_propWithIvar2 == 2); // expected-warning{{UNKNOWN}}
399 - (void) testWriteRetainedValueToRetainedProperty; {
400 …NSNumber *number = [[NSNumber alloc] initWithInteger:5]; // expected-warning {{Potential leak of a…
408 //------
410 //------
452 - (int)classAndInstancePropWithSameNameOrderInstanceFirst {
464 - (int)classAndInstancePropWithSameNameOrderClassFirst {
468 - (void)testInlineClassProp {
469 clang_analyzer_eval(ClassWithClassProperties.readOnlyClassProp == 1); // expected-warning{{TRUE}}
472 clang_analyzer_eval(ClassWithClassProperties.readWriteClassProp == 7); // expected-warning{{TRUE}}
474 clang_analyzer_eval(ClassWithClassProperties.readWriteClassProp == 8); // expected-warning{{TRUE}}
477 - (void)testUnknownClassProp {
478 …slationUnit == ClassWithClassProperties.propInOtherTranslationUnit); // expected-warning{{UNKNOWN}}
481 - (void)testEscapeGlobalOnUnknownProp {
484 clang_analyzer_eval(gBackingForReadWriteClassProp == 33); // expected-warning{{UNKNOWN}}
487 - (void)testClassAndInstancePropertyWithSameName {
488 …clang_analyzer_eval(self.classAndInstancePropWithSameNameOrderInstanceFirst == 12); // expected-wa…
489 …ssProperties.classAndInstancePropWithSameNameOrderInstanceFirst == 13); // expected-warning{{TRUE}}
491 …ClassProperties.classAndInstancePropWithSameNameOrderClassFirst == 14); // expected-warning{{TRUE}}
492 …clang_analyzer_eval(self.classAndInstancePropWithSameNameOrderClassFirst == 15); // expected-warni…
495 - (void)testDynamicClassProp {
496 …clang_analyzer_eval(ClassWithClassProperties.dynamicClassProp == 16); // expected-warning{{UNKNOWN…
509 - (void)testDynamicClassProp {
510 …clang_analyzer_eval(SubclassOfClassWithClassProperties.dynamicClassProp == 16); // expected-warnin…
520 [p.name release]; // expected-warning{{not owned}}
523 [p.friend release]; // expected-warning{{not owned}}
528 [friend release]; // expected-warning{{not owned}}
535 - (void)testDeliberateRelease:(Person *)other {
537 [_name release]; // no-warning
538 self->_name = 0;
540 doSomethingWithName(other->_name);
541 [other.name release]; // no-warning
544 - (void)deliberateReleaseFalseNegative {
550 [name release];
553 - (void)testRetainAndRelease {
555 [self.name release];
556 [self.name release]; // expected-warning{{not owned}}
559 - (void)testRetainAndReleaseIVar {
561 [_name release];
562 [_name release];
577 clang_analyzer_eval(w.value == w.value); // expected-warning{{TRUE}}
583 clang_analyzer_eval(w.value == 42); // expected-warning{{TRUE}}
590 clang_analyzer_eval(w.value == 42); // expected-warning{{TRUE}}
602 clang_analyzer_eval(w.value == w.value); // expected-warning{{TRUE}}
608 clang_analyzer_eval(w.value == 42); // expected-warning{{TRUE}}
615 clang_analyzer_eval(w.value == 42); // expected-warning{{TRUE}}
632 clang_analyzer_eval(w.inner.value == w.inner.value); // expected-warning{{TRUE}}
638 clang_analyzer_eval(w.inner.value == 42); // expected-warning{{TRUE}}
649 clang_analyzer_eval(w.value == w.value); // expected-warning{{UNKNOWN}}
654 // Test quite a few cases of retain/release issues.
661 …dwrite/*, assign */) id implicitManualProp; // expected-warning {{'assign' is assumed}} expected-w…
662 …adwrite/*, assign */) id implicitSynthProp; // expected-warning {{'assign' is assumed}} expected-w…
670 - (id)manualProp {
674 - (void)setImplicitManualProp:(id)newValue {}
676 - (void)testOverreleaseOwnedIvar {
678 [_ownedProp release];
679 [_ownedProp release];
680 [_ownedProp release]; // FIXME-warning{{used after it is released}}
683 - (void)testOverreleaseUnownedIvar {
685 [_unownedProp release];
686 [_unownedProp release]; // FIXME-warning{{not owned at this point by the caller}}
689 - (void)testOverreleaseIvarOnly {
691 [_ivarOnly release];
692 [_ivarOnly release];
693 [_ivarOnly release]; // FIXME-warning{{used after it is released}}
696 - (void)testOverreleaseReadonlyIvar {
698 [_readonlyProp release];
699 [_readonlyProp release];
700 [_readonlyProp release]; // FIXME-warning{{used after it is released}}
703 - (void)testOverreleaseImplicitManualIvar {
705 [_implicitManualProp release];
706 [_implicitManualProp release];
707 [_implicitManualProp release]; // FIXME-warning{{used after it is released}}
710 - (void)testOverreleaseImplicitSynthIvar {
712 [_implicitSynthProp release];
713 [_implicitSynthProp release]; // FIXME-warning{{not owned at this point by the caller}}
716 - (void)testOverreleaseCF {
720 CFRelease(_cfProp); // FIXME-warning{{used after it is released}}
723 - (void)testOverreleaseOwnedIvarUse {
725 [_ownedProp release];
726 [_ownedProp release];
727 [_ownedProp myMethod]; // FIXME-warning{{used after it is released}}
730 - (void)testOverreleaseIvarOnlyUse {
732 [_ivarOnly release];
733 [_ivarOnly release];
734 [_ivarOnly myMethod]; // FIXME-warning{{used after it is released}}
737 - (void)testOverreleaseCFUse {
743 CFUse(_cfProp); // FIXME-warning{{used after it is released}}
746 - (void)testOverreleaseOwnedIvarAutoreleaseOkay {
748 [_ownedProp release];
750 } // no-warning
752 - (void)testOverreleaseIvarOnlyAutoreleaseOkay {
754 [_ivarOnly release];
756 } // no-warning
758 - (void)testOverreleaseOwnedIvarAutorelease {
760 [_ownedProp release];
763 } // FIXME-warning{{Object autoreleased too many times}}
765 - (void)testOverreleaseIvarOnlyAutorelease {
767 [_ivarOnly release];
770 } // FIXME-warning{{Object autoreleased too many times}}
772 - (void)testPropertyAccessThenReleaseOwned {
774 [owned release];
775 [_ownedProp release];
776 clang_analyzer_eval(owned == _ownedProp); // expected-warning{{TRUE}}
779 - (void)testPropertyAccessThenReleaseOwned2 {
782 [owned release];
783 [fromIvar release];
784 clang_analyzer_eval(owned == fromIvar); // expected-warning{{TRUE}}
787 - (void)testPropertyAccessThenReleaseUnowned {
789 [unowned release];
790 [_unownedProp release]; // FIXME-warning{{not owned}}
793 - (void)testPropertyAccessThenReleaseUnowned2 {
796 [unowned release];
797 clang_analyzer_eval(unowned == fromIvar); // expected-warning{{TRUE}}
798 [fromIvar release]; // FIXME-warning{{not owned}}
801 - (void)testPropertyAccessThenReleaseManual {
803 [prop release];
804 [_manualProp release]; // no-warning
807 - (void)testPropertyAccessThenReleaseManual2 {
810 [prop release];
811 clang_analyzer_eval(prop == fromIvar); // expected-warning{{TRUE}}
812 [fromIvar release]; // no-warning
815 - (void)testPropertyAccessThenReleaseCF {
818 CFRelease(_cfProp); // no-warning
819 clang_analyzer_eval(owned == _cfProp); // expected-warning{{TRUE}}
822 - (void)testPropertyAccessThenReleaseCF2 {
827 clang_analyzer_eval(owned == fromIvar); // expected-warning{{TRUE}}
830 - (void)testPropertyAccessThenReleaseReadonly {
832 [prop release];
833 [_readonlyProp release]; // no-warning
836 - (void)testPropertyAccessThenReleaseReadonly2 {
839 [prop release];
840 clang_analyzer_eval(prop == fromIvar); // expected-warning{{TRUE}}
841 [fromIvar release]; // no-warning
844 - (void)testPropertyAccessThenReleaseImplicitManual {
846 [prop release];
847 [_implicitManualProp release]; // no-warning
850 - (void)testPropertyAccessThenReleaseImplicitManual2 {
853 [prop release];
854 clang_analyzer_eval(prop == fromIvar); // expected-warning{{TRUE}}
855 [fromIvar release]; // no-warning
858 - (void)testPropertyAccessThenReleaseImplicitSynth {
860 [prop release];
861 [_implicitSynthProp release]; // FIXME-warning{{not owned}}
864 - (void)testPropertyAccessThenReleaseImplicitSynth2 {
867 [prop release];
868 clang_analyzer_eval(prop == fromIvar); // expected-warning{{TRUE}}
869 [fromIvar release]; // FIXME-warning{{not owned}}
872 - (id)getUnownedFromProperty {
875 return _ownedProp; // no-warning
878 - (id)transferUnownedFromProperty {
881 return [_ownedProp autorelease]; // no-warning
884 - (id)transferOwnedFromProperty __attribute__((ns_returns_retained)) {
887 return _ownedProp; // no-warning
890 - (void)testAssignOwned:(id)newValue {
892 [_ownedProp release]; // FIXME: no-warning{{not owned}}
895 - (void)testAssignUnowned:(id)newValue {
897 [_unownedProp release]; // FIXME: no-warning{{not owned}}
900 - (void)testAssignIvarOnly:(id)newValue {
902 [_ivarOnly release]; // FIXME: no-warning{{not owned}}
905 - (void)testAssignCF:(CFTypeRef)newValue {
907 CFRelease(_cfProp); // FIXME: no-warning{{not owned}}
910 - (void)testAssignReadonly:(id)newValue {
912 [_readonlyProp release]; // FIXME: no-warning{{not owned}}
915 - (void)testAssignImplicitManual:(id)newValue {
917 [_implicitManualProp release]; // FIXME: no-warning{{not owned}}
920 - (void)testAssignImplicitSynth:(id)newValue {
922 [_implicitSynthProp release]; // FIXME: no-warning{{not owned}}
925 - (void)testAssignOwnedOkay:(id)newValue {
927 [_ownedProp release]; // no-warning
930 - (void)testAssignUnownedOkay:(id)newValue {
932 [_unownedProp release]; // no-warning
935 - (void)testAssignIvarOnlyOkay:(id)newValue {
937 [_ivarOnly release]; // no-warning
940 - (void)testAssignCFOkay:(CFTypeRef)newValue {
942 CFRelease(_cfProp); // no-warning
945 - (void)testAssignReadonlyOkay:(id)newValue {
947 [_readonlyProp release]; // FIXME: no-warning{{not owned}}
950 - (void)testAssignImplicitManualOkay:(id)newValue {
952 [_implicitManualProp release]; // FIXME: no-warning{{not owned}}
955 - (void)testAssignImplicitSynthOkay:(id)newValue {
957 [_implicitSynthProp release]; // FIXME: no-warning{{not owned}}
960 - (void)establishIvarIsNilDuringLoops {
964 while (--i) {
974 - (void)retainIvarAndInvalidateSelf {
978 [_unownedProp release]; // no-warning
998 #endif // non-ARC
1002 - (int)normal;
1011 - (int)still_no_custom_accessor;
1015 - (int)in_category;
1018 - (int)no_custom_accessor;
1022 - (void)foo {
1025 clang_analyzer_eval(self.normal == self.normal); // expected-warning{{UNKNOWN}}
1027 clang_analyzer_eval(self.in_category == self.in_category); // expected-warning{{UNKNOWN}}
1031 …clang_analyzer_eval(self.no_custom_accessor == self.no_custom_accessor); // expected-warning{{TRUE…
1032 …clang_analyzer_eval(self.still_no_custom_accessor == self.still_no_custom_accessor); // expected-w…
1038 - (NSObject *)getShadowedIvar;
1039 - (void)clearShadowedIvar;
1040 - (NSObject *)getShadowedProp;
1041 - (void)clearShadowedProp;
1047 - (NSObject *)getShadowedIvar {
1048 return self->_o;
1050 - (void)clearShadowedIvar {
1051 self->_o = nil;
1053 - (NSObject *)getShadowedProp {
1056 - (void)clearShadowedProp {
1072 -(void)testPropertyShadowing {
1073 NSObject *oo = self.o; // no-crash
1074 clang_analyzer_eval(self.o == oo); // expected-warning{{TRUE}}
1075 clang_analyzer_eval([self getShadowedIvar] == oo); // expected-warning{{UNKNOWN}}
1077 clang_analyzer_eval(self.o == oo); // expected-warning{{TRUE}}
1078 clang_analyzer_eval([self getShadowedIvar] == oo); // expected-warning{{UNKNOWN}}
1079 clang_analyzer_eval([self getShadowedIvar] == nil); // expected-warning{{TRUE}}
1084 -(void)testPropertyShadowingWithExplicitIvar {
1085 NSObject *oo2 = self.o2; // no-crash