RetainCountExamples.m revision c739406d37b9b1dc95bc3a3d899024e5ce31e5d5
1// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.RetainCount -analyzer-ipa=dynamic-bifurcate -verify %s
2
3typedef signed char BOOL;
4typedef struct objc_class *Class;
5typedef struct objc_object {
6    Class isa;
7} *id;
8@protocol NSObject  - (BOOL)isEqual:(id)object; @end
9@interface NSObject <NSObject> {}
10+(id)alloc;
11+(id)new;
12- (oneway void)release;
13-(id)init;
14-(id)autorelease;
15-(id)copy;
16- (Class)class;
17-(id)retain;
18@end
19
20@interface SelfStaysLive : NSObject
21- (id)init;
22@end
23
24@implementation SelfStaysLive
25- (id)init {
26  return [super init];
27}
28@end
29
30void selfStaysLive() {
31    SelfStaysLive *foo = [[SelfStaysLive alloc] init]; 
32    [foo release];
33}