PR3991.m revision 868210e64ee979670424fd160b85744b8281b310
1// RUN: clang-cc -analyze -checker-cfref -analyzer-store=basic -analyzer-constraints=basic -verify -triple x86_64-apple-darwin9 %s && 2// RUN: clang-cc -analyze -checker-cfref -analyzer-store=basic -analyzer-constraints=range -verify -triple x86_64-apple-darwin9 %s && 3// RUN: clang-cc -analyze -checker-cfref -analyzer-store=region -analyzer-constraints=basic -verify -triple x86_64-apple-darwin9 %s && 4// RUN: clang-cc -analyze -checker-cfref -analyzer-store=region -analyzer-constraints=range -verify -triple x86_64-apple-darwin9 %s 5 6//===----------------------------------------------------------------------===// 7// Delta-debugging produced forward declarations. 8//===----------------------------------------------------------------------===// 9 10typedef signed char BOOL; 11typedef struct _NSZone NSZone; 12@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator; 13@protocol NSObject - (BOOL)isEqual:(id)object; 14@end @protocol NSCopying - (id)copyWithZone:(NSZone *)zone; 15@end @protocol NSMutableCopying - (id)mutableCopyWithZone:(NSZone *)zone; 16@end @protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder; 17@end @interface NSObject <NSObject> { 18} 19@end extern id <NSObject> NSAllocateObject(Class aClass, unsigned extraBytes, NSZone *zone); 20@interface NSArray : NSObject <NSCopying, NSMutableCopying, NSCoding> - (unsigned)count; 21@end @class NSTimer, NSPort, NSArray; 22@class NSURLHandle, NSMutableArray, NSMutableData, NSData, NSURL; 23@interface NSResponder : NSObject <NSCoding> { 24} 25@end @class NSBitmapImageRep, NSCursor, NSGraphicsContext, NSImage, NSPasteboard, NSScrollView, NSWindow, NSAttributedString; 26@interface NSView : NSResponder { 27 struct __VFlags2 { 28 } 29 _vFlags2; 30} 31@end @class NSTextField, NSPanel, NSArray, NSWindow, NSImage, NSButton, NSError; 32@interface NSBox : NSView { 33} 34@end @class GDataFeedDocList, GDataServiceTicket, GDataServiceTicket, IHGoogleDocsAdapter; 35@protocol IHGoogleDocsAdapterDelegate - (void)googleDocsAdapter:(IHGoogleDocsAdapter*)inGoogleDocsAdapter accountVerifyIsValid:(BOOL)inIsValid error:(NSError *)inError; 36@end @interface IHGoogleDocsAdapter : NSObject { 37} 38- (NSArray *)entries; 39@end extern Class const kGDataUseRegisteredClass ; 40@interface IHGoogleDocsAdapter () - (GDataFeedDocList *)feedDocList; 41- (NSArray *)directoryPathComponents; 42- (unsigned int)currentPathComponentIndex; 43- (void)setCurrentPathComponentIndex:(unsigned int)aCurrentPathComponentIndex; 44- (NSURL *)folderFeedURL; 45@end @implementation IHGoogleDocsAdapter - (id)initWithUsername:(NSString *)inUsername password:(NSString *)inPassword owner:(NSObject <IHGoogleDocsAdapterDelegate> *)owner { 46} 47 48//===----------------------------------------------------------------------===// 49// Actual test case: 50// 51// The analyzer currently doesn't reason about ObjCKVCRefExpr. Have both 52// GRExprEngine::Visit and GRExprEngine::VisitLValue have such expressions 53// evaluate to UnknownVal. 54//===----------------------------------------------------------------------===// 55 56- (void)docListListFetchTicket:(GDataServiceTicket *)ticket finishedWithFeed:(GDataFeedDocList *)feed { 57 BOOL doGetDir = self.directoryPathComponents != 0 && self.currentPathComponentIndex < [self.directoryPathComponents count]; 58 if (doGetDir) { 59 BOOL isDirExisting = [[self.feedDocList entries] count] > 0; 60 if (isDirExisting) { 61 if (self.folderFeedURL != 0) { 62 if (++self.currentPathComponentIndex == [self.directoryPathComponents count]) { 63 } 64 } 65 } 66 } 67} 68