blob: 7e2d0a807f1e3295fecb574da94bc811adec1088 [file] [log] [blame]
Ted Kremenekf536ca32009-01-22 18:54:47 +00001// RUN: clang -analyze -checker-cfref -analyzer-store-basic -verify %s &&
2// RUN: clang -analyze -checker-cfref -analyzer-store-region -verify %s
Ted Kremenek91d1a142008-07-01 23:29:51 +00003
4// BEGIN delta-debugging reduced header stuff
5
6typedef struct objc_selector *SEL;
7typedef signed char BOOL;
8typedef unsigned int NSUInteger;
9typedef struct _NSZone NSZone;
10@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
11@protocol NSObject
12- (BOOL)isEqual:(id)object;
13- (oneway void)release;
14@end
15@protocol NSCopying
16- (id)copyWithZone:(NSZone *)zone;
17@end
18@protocol NSMutableCopying
19- (id)mutableCopyWithZone:(NSZone *)zone;
20@end
21@protocol NSCoding
22- (void)encodeWithCoder:(NSCoder *)aCoder;
23@end
24@interface NSObject <NSObject> {}
25+ (id)alloc;
26@end
27typedef float CGFloat;
28typedef struct _NSPoint {} NSRect;
29static __inline__ __attribute__((always_inline)) NSRect NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h) {}
30typedef struct {} NSFastEnumerationState;
31@protocol NSFastEnumeration
32- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len;
33@end
34@class NSString;
35@interface NSArray : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration>
36- (NSUInteger)count;
37@end
38@interface NSMutableArray : NSArray
39- (void)addObject:(id)anObject;
40@end @class NSAppleEventDescriptor;
41enum { NSBackingStoreRetained = 0, NSBackingStoreNonretained = 1, NSBackingStoreBuffered = 2 };
42typedef NSUInteger NSBackingStoreType;
43@interface NSResponder : NSObject <NSCoding> {} @end
44@protocol NSAnimatablePropertyContainer
45- (id)animator;
46@end
47@protocol NSValidatedUserInterfaceItem
48- (SEL)action;
49@end
50@protocol NSUserInterfaceValidations
51- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem;
52@end @class NSDate, NSDictionary, NSError, NSException, NSNotification;
53enum { NSBorderlessWindowMask = 0, NSTitledWindowMask = 1 << 0, NSClosableWindowMask = 1 << 1, NSMiniaturizableWindowMask = 1 << 2, NSResizableWindowMask = 1 << 3 };
54@interface NSWindow : NSResponder <NSAnimatablePropertyContainer, NSUserInterfaceValidations> {}
55- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag;
56@end
57extern NSString *NSWindowDidBecomeKeyNotification;
58@interface NSPanel : NSWindow {}
59@end
60@class NSTableHeaderView;
61
62// END delta-debugging reduced header stuff
63
64@interface MyClass
65{
66 NSMutableArray *panels;
67}
68- (void)myMethod;
69- (void)myMethod2;
70@end
Ted Kremenekdb09a4d2008-07-03 04:29:21 +000071
72@implementation MyClass // no-warning
Ted Kremenek91d1a142008-07-01 23:29:51 +000073- (void)myMethod
74{
75 NSPanel *panel = [[NSPanel alloc] initWithContentRect:NSMakeRect(0, 0, 200, 200) styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:(BOOL)1];
76
77 [panels addObject:panel];
78
79 [panel release]; // no-warning
80}
81- (void)myMethod2
82{
Ted Kremenekcf118d42009-02-04 23:49:09 +000083 NSPanel *panel = [[NSPanel alloc] initWithContentRect:NSMakeRect(0, 0, 200, 200) styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:(BOOL)1]; // expected-warning{{leak}}
Ted Kremenek91d1a142008-07-01 23:29:51 +000084
Ted Kremenekcf118d42009-02-04 23:49:09 +000085 [panels addObject:panel];
Ted Kremenek91d1a142008-07-01 23:29:51 +000086}
87@end
88