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