diff options
-rw-r--r-- | test/Analysis-Apple/NSString.m | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/Analysis-Apple/NSString.m b/test/Analysis-Apple/NSString.m index 284131fcaf..bf9d4e8e88 100644 --- a/test/Analysis-Apple/NSString.m +++ b/test/Analysis-Apple/NSString.m @@ -60,3 +60,41 @@ void f9() { [s release]; [q release]; // expected-warning {{used after it is released}} } + +NSString* f10() { + + static NSString* s = nil; + + if (!s) s = [[NSString alloc] init]; + + return s; // no-warning +} + +@interface C1 : NSObject {} + +- (NSString*) getShared; ++ (C1*) sharedInstance; + +@end + +@implementation C1 : NSObject {} + +- (NSString*) getShared { + + static NSString* s = nil; + + if (!s) s = [[NSString alloc] init]; + + return s; // no-warning +} + ++ (C1 *)sharedInstance { + static C1 *sharedInstance = nil; + if (!sharedInstance) { + sharedInstance = [[C1 alloc] init]; + } + return sharedInstance; // no-warning +} + +@end + |