xref: /aosp_15_r20/external/clang/test/Analysis/uninit-ps-rdar6145427.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -analyze -analyzer-checker=core -verify -analyzer-store=region %s
2*67e74705SXin Li
3*67e74705SXin Li// Delta-Debugging reduced preamble.
4*67e74705SXin Litypedef signed char BOOL;
5*67e74705SXin Litypedef unsigned int NSUInteger;
6*67e74705SXin Li@class NSString, Protocol;
7*67e74705SXin Liextern void NSLog(NSString *format, ...) __attribute__((format(__NSString__, 1, 2)));
8*67e74705SXin Litypedef struct _NSZone NSZone;
9*67e74705SXin Li@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
10*67e74705SXin Li@protocol NSObject  - (BOOL)isEqual:(id)object; @end
11*67e74705SXin Li@protocol NSCopying  - (id)copyWithZone:(NSZone *)zone; @end
12*67e74705SXin Li@protocol NSCoding  - (void)encodeWithCoder:(NSCoder *)aCoder; @end
13*67e74705SXin Li@interface NSObject <NSObject> {}
14*67e74705SXin Li+ (id)alloc;
15*67e74705SXin Li- (id)init;
16*67e74705SXin Li@end
17*67e74705SXin Liextern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone);
18*67e74705SXin Li@interface NSValue : NSObject <NSCopying, NSCoding>  - (void)getValue:(void *)value; @end
19*67e74705SXin Li@class NSString, NSData;
20*67e74705SXin Litypedef struct _NSPoint {} NSRange;
21*67e74705SXin Li@interface NSValue (NSValueRangeExtensions)
22*67e74705SXin Li+ (NSValue *)valueWithRange:(NSRange)range;
23*67e74705SXin Li- (id)objectAtIndex:(NSUInteger)index;
24*67e74705SXin Li@end
25*67e74705SXin Li@interface NSAutoreleasePool : NSObject {} - (void)drain; @end
26*67e74705SXin Liextern NSString * const NSBundleDidLoadNotification;
27*67e74705SXin Litypedef struct {} NSDecimal;
28*67e74705SXin Li@interface NSNetService : NSObject {} - (id)init; @end
29*67e74705SXin Liextern NSString * const NSUndoManagerCheckpointNotification;
30*67e74705SXin Li
31*67e74705SXin Li// Test case: <rdar://problem/6145427>
32*67e74705SXin Li
33*67e74705SXin Liint main (int argc, const char * argv[]) {
34*67e74705SXin Li  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
35*67e74705SXin Li  id someUnintializedPointer = [someUnintializedPointer objectAtIndex:0]; // expected-warning{{Receiver in message expression is an uninitialized value}}
36*67e74705SXin Li  NSLog(@"%@", someUnintializedPointer);
37*67e74705SXin Li  [pool drain];
38*67e74705SXin Li  return 0;
39*67e74705SXin Li}
40