Summary: The basic constraint solver was dropped in rL162384, leaving the range constraint solver as the default and only constraint solver. Explicitly specifying it is unnecessary, and makes it difficult to test with other solver backends. Reviewers: zaks.anna, dcoughlin Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26694 llvm-svn: 288372
87 lines
3.4 KiB
Objective-C
87 lines
3.4 KiB
Objective-C
// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.RetainCount,alpha.core,deadcode.DeadStores -analyzer-store=region -verify %s
|
|
|
|
// These declarations were reduced using Delta-Debugging from Foundation.h
|
|
// on Mac OS X. The test cases are below.
|
|
|
|
typedef struct objc_selector *SEL;
|
|
typedef signed char BOOL;
|
|
typedef unsigned int NSUInteger;
|
|
@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
|
|
@protocol NSObject
|
|
- (BOOL)isEqual:(id)object;
|
|
- (id)retain;
|
|
@end
|
|
@protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder;
|
|
@end
|
|
@interface NSObject <NSObject> {}
|
|
+ (id)alloc;
|
|
@end
|
|
typedef float CGFloat;
|
|
typedef struct _NSPoint {} NSRect;
|
|
NSRect NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h);
|
|
enum { NSBackingStoreRetained = 0, NSBackingStoreNonretained = 1, NSBackingStoreBuffered = 2 };
|
|
typedef NSUInteger NSBackingStoreType;
|
|
@interface NSResponder : NSObject <NSCoding> {}
|
|
@end
|
|
@protocol NSAnimatablePropertyContainer
|
|
- (id)animator;
|
|
@end
|
|
extern NSString *NSAnimationTriggerOrderIn ;
|
|
@class CIFilter, CALayer, NSDictionary, NSScreen, NSShadow, NSTrackingArea;
|
|
@interface NSView : NSResponder <NSAnimatablePropertyContainer> {} @end
|
|
@protocol NSValidatedUserInterfaceItem - (SEL)action; @end
|
|
@protocol NSUserInterfaceValidations - (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem; @end @class NSNotification, NSText, NSView, NSMutableSet, NSSet, NSDate;
|
|
enum { NSBorderlessWindowMask = 0, NSTitledWindowMask = 1 << 0, NSClosableWindowMask = 1 << 1, NSMiniaturizableWindowMask = 1 << 2, NSResizableWindowMask = 1 << 3 };
|
|
@interface NSWindow : NSResponder <NSAnimatablePropertyContainer, NSUserInterfaceValidations> {
|
|
struct __wFlags {} _wFlags;
|
|
}
|
|
- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag;
|
|
- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag screen:(NSScreen *)screen;
|
|
- (void)orderFrontRegardless;
|
|
@end
|
|
|
|
extern NSString *NSWindowDidBecomeKeyNotification;
|
|
|
|
// Test cases.
|
|
|
|
void f1() {
|
|
NSWindow *window = [[NSWindow alloc]
|
|
initWithContentRect:NSMakeRect(0,0,100,100)
|
|
styleMask:NSTitledWindowMask|NSClosableWindowMask
|
|
backing:NSBackingStoreBuffered
|
|
defer:0];
|
|
|
|
[window orderFrontRegardless]; // no-warning
|
|
}
|
|
|
|
void f2() {
|
|
NSWindow *window = [[NSWindow alloc]
|
|
initWithContentRect:NSMakeRect(0,0,100,100)
|
|
styleMask:NSTitledWindowMask|NSClosableWindowMask
|
|
backing:NSBackingStoreBuffered
|
|
defer:0
|
|
screen:0];
|
|
|
|
[window orderFrontRegardless]; // no-warning
|
|
}
|
|
|
|
void f2b() {
|
|
// FIXME: NSWindow doesn't own itself until it is displayed.
|
|
NSWindow *window = [[NSWindow alloc] // no-warning
|
|
initWithContentRect:NSMakeRect(0,0,100,100)
|
|
styleMask:NSTitledWindowMask|NSClosableWindowMask
|
|
backing:NSBackingStoreBuffered
|
|
defer:0
|
|
screen:0];
|
|
|
|
[window orderFrontRegardless];
|
|
|
|
[window retain];
|
|
}
|
|
|
|
|
|
void f3() {
|
|
// FIXME: For now we don't track NSWindow.
|
|
NSWindow *window = [NSWindow alloc]; // expected-warning{{never read}}
|
|
}
|