dead-stores.m revision ef74f4c6dcd59b3af1de9d8f613c1caf3e6cb63d
1// RUN: clang -cc1 -analyze -analyzer-experimental-internal-checks -warn-dead-stores -verify %s 2 3typedef signed char BOOL; 4typedef unsigned int NSUInteger; 5typedef struct _NSZone NSZone; 6@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator; 7@protocol NSObject - (BOOL)isEqual:(id)object; @end 8@protocol NSCopying - (id)copyWithZone:(NSZone *)zone; @end 9@protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder; @end 10@interface NSObject <NSObject> {} @end 11extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone); 12@interface NSValue : NSObject <NSCopying, NSCoding> - (void)getValue:(void *)value; @end 13typedef float CGFloat; 14typedef struct _NSPoint {} NSRange; 15@interface NSValue (NSValueRangeExtensions) + (NSValue *)valueWithRange:(NSRange)range; 16- (BOOL)containsObject:(id)anObject; 17@end 18@class NSURLAuthenticationChallenge; 19@interface NSResponder : NSObject <NSCoding> {} @end 20@class NSArray, NSDictionary, NSString; 21@interface NSObject (NSKeyValueBindingCreation) 22+ (void)exposeBinding:(NSString *)binding; 23- (NSArray *)exposedBindings; 24@end 25extern NSString *NSAlignmentBinding; 26 27// This test case was reported as a false positive due to a bug in the 28// LiveVariables <-> DeadStores interplay. We should not flag a warning 29// here. The test case was reported in: 30// http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-July/002157.html 31void DeadStoreTest(NSObject *anObject) { 32 NSArray *keys; 33 if ((keys = [anObject exposedBindings]) && // no-warning 34 ([keys containsObject:@"name"] && [keys containsObject:@"icon"])) {} 35} 36 37