xref: /aosp_15_r20/external/clang/test/Analysis/Inputs/system-header-simulator-objc.h (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // Like the compiler, the static analyzer treats some functions differently if
2*67e74705SXin Li // they come from a system header -- for example, it is assumed that system
3*67e74705SXin Li // functions do not arbitrarily free() their parameters, and that some bugs
4*67e74705SXin Li // found in system headers cannot be fixed by the user and should be
5*67e74705SXin Li // suppressed.
6*67e74705SXin Li #pragma clang system_header
7*67e74705SXin Li 
8*67e74705SXin Li typedef unsigned int UInt32;
9*67e74705SXin Li typedef unsigned short UInt16;
10*67e74705SXin Li 
11*67e74705SXin Li typedef signed long CFIndex;
12*67e74705SXin Li typedef signed char BOOL;
13*67e74705SXin Li typedef unsigned long NSUInteger;
14*67e74705SXin Li typedef unsigned short unichar;
15*67e74705SXin Li typedef UInt16 UniChar;
16*67e74705SXin Li 
17*67e74705SXin Li enum {
18*67e74705SXin Li     NSASCIIStringEncoding = 1,
19*67e74705SXin Li     NSNEXTSTEPStringEncoding = 2,
20*67e74705SXin Li     NSJapaneseEUCStringEncoding = 3,
21*67e74705SXin Li     NSUTF8StringEncoding = 4,
22*67e74705SXin Li     NSISOLatin1StringEncoding = 5,
23*67e74705SXin Li     NSSymbolStringEncoding = 6,
24*67e74705SXin Li     NSNonLossyASCIIStringEncoding = 7,
25*67e74705SXin Li };
26*67e74705SXin Li typedef const struct __CFString * CFStringRef;
27*67e74705SXin Li typedef struct __CFString * CFMutableStringRef;
28*67e74705SXin Li typedef NSUInteger NSStringEncoding;
29*67e74705SXin Li typedef UInt32 CFStringEncoding;
30*67e74705SXin Li 
31*67e74705SXin Li typedef const void * CFTypeRef;
32*67e74705SXin Li 
33*67e74705SXin Li typedef const struct __CFAllocator * CFAllocatorRef;
34*67e74705SXin Li extern const CFAllocatorRef kCFAllocatorDefault;
35*67e74705SXin Li extern const CFAllocatorRef kCFAllocatorSystemDefault;
36*67e74705SXin Li extern const CFAllocatorRef kCFAllocatorMalloc;
37*67e74705SXin Li extern const CFAllocatorRef kCFAllocatorMallocZone;
38*67e74705SXin Li extern const CFAllocatorRef kCFAllocatorNull;
39*67e74705SXin Li 
40*67e74705SXin Li @class NSString, Protocol;
41*67e74705SXin Li extern void NSLog(NSString *format, ...) __attribute__((format(__NSString__, 1, 2)));
42*67e74705SXin Li typedef struct _NSZone NSZone;
43*67e74705SXin Li @class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
44*67e74705SXin Li @protocol NSObject
45*67e74705SXin Li - (BOOL)isEqual:(id)object;
46*67e74705SXin Li - (id)retain;
47*67e74705SXin Li - (id)copy;
48*67e74705SXin Li - (oneway void)release;
49*67e74705SXin Li - (id)autorelease;
50*67e74705SXin Li - (id)init;
51*67e74705SXin Li @end  @protocol NSCopying  - (id)copyWithZone:(NSZone *)zone;
52*67e74705SXin Li @end  @protocol NSMutableCopying  - (id)mutableCopyWithZone:(NSZone *)zone;
53*67e74705SXin Li @end  @protocol NSCoding  - (void)encodeWithCoder:(NSCoder *)aCoder;
54*67e74705SXin Li @end
55*67e74705SXin Li @interface NSObject <NSObject> {}
56*67e74705SXin Li + (id)allocWithZone:(NSZone *)zone;
57*67e74705SXin Li + (id)alloc;
58*67e74705SXin Li - (void)dealloc;
59*67e74705SXin Li @end
60*67e74705SXin Li @interface NSObject (NSCoderMethods)
61*67e74705SXin Li - (id)awakeAfterUsingCoder:(NSCoder *)aDecoder;
62*67e74705SXin Li @end
63*67e74705SXin Li extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone);
64*67e74705SXin Li typedef struct {
65*67e74705SXin Li }
66*67e74705SXin Li NSFastEnumerationState;
67*67e74705SXin Li @protocol NSFastEnumeration  - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len;
68*67e74705SXin Li @end           @class NSString, NSDictionary;
69*67e74705SXin Li @interface NSValue : NSObject <NSCopying, NSCoding>
70*67e74705SXin Li + (NSValue *)valueWithPointer:(const void *)p;
71*67e74705SXin Li - (void)getValue:(void *)value;
72*67e74705SXin Li @end
73*67e74705SXin Li @interface NSNumber : NSValue  - (char)charValue;
74*67e74705SXin Li - (id)initWithInt:(int)value;
75*67e74705SXin Li @end   @class NSString;
76*67e74705SXin Li @interface NSArray : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration>  - (NSUInteger)count;
77*67e74705SXin Li @end  @interface NSArray (NSArrayCreation)  + (id)array;
78*67e74705SXin Li @end       @interface NSAutoreleasePool : NSObject {
79*67e74705SXin Li }
80*67e74705SXin Li - (void)drain;
81*67e74705SXin Li @end extern NSString * const NSBundleDidLoadNotification;
82*67e74705SXin Li typedef double NSTimeInterval;
83*67e74705SXin Li @interface NSDate : NSObject <NSCopying, NSCoding>  - (NSTimeInterval)timeIntervalSinceReferenceDate;
84*67e74705SXin Li @end
85*67e74705SXin Li 
86*67e74705SXin Li @interface NSString : NSObject <NSCopying, NSMutableCopying, NSCoding>
87*67e74705SXin Li - (NSUInteger)length;
88*67e74705SXin Li - (NSString *)stringByAppendingString:(NSString *)aString;
89*67e74705SXin Li - ( const char *)UTF8String;
90*67e74705SXin Li - (id)initWithUTF8String:(const char *)nullTerminatedCString;
91*67e74705SXin Li - (id)initWithCharactersNoCopy:(unichar *)characters length:(NSUInteger)length freeWhenDone:(BOOL)freeBuffer;
92*67e74705SXin Li - (id)initWithCharacters:(const unichar *)characters length:(NSUInteger)length;
93*67e74705SXin Li - (id)initWithBytes:(const void *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding;
94*67e74705SXin Li - (id)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding freeWhenDone:(BOOL)freeBuffer;
95*67e74705SXin Li + (id)stringWithUTF8String:(const char *)nullTerminatedCString;
96*67e74705SXin Li + (id)stringWithString:(NSString *)string;
97*67e74705SXin Li @end        @class NSString, NSURL, NSError;
98*67e74705SXin Li 
99*67e74705SXin Li @interface NSMutableString : NSString
100*67e74705SXin Li - (void)appendFormat:(NSString *)format, ... __attribute__((format(__NSString__, 1, 2)));
101*67e74705SXin Li @end
102*67e74705SXin Li 
103*67e74705SXin Li @interface NSData : NSObject <NSCopying, NSMutableCopying, NSCoding>  - (NSUInteger)length;
104*67e74705SXin Li + (id)dataWithBytesNoCopy:(void *)bytes length:(NSUInteger)length;
105*67e74705SXin Li + (id)dataWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b;
106*67e74705SXin Li - (id)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length;
107*67e74705SXin Li - (id)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b;
108*67e74705SXin Li - (id)initWithBytes:(void *)bytes length:(NSUInteger) length;
109*67e74705SXin Li @end
110*67e74705SXin Li 
111*67e74705SXin Li typedef struct {
112*67e74705SXin Li }
113*67e74705SXin Li CFDictionaryKeyCallBacks;
114*67e74705SXin Li extern const CFDictionaryKeyCallBacks kCFTypeDictionaryKeyCallBacks;
115*67e74705SXin Li typedef struct {
116*67e74705SXin Li }
117*67e74705SXin Li CFDictionaryValueCallBacks;
118*67e74705SXin Li extern const CFDictionaryValueCallBacks kCFTypeDictionaryValueCallBacks;
119*67e74705SXin Li typedef const struct __CFDictionary * CFDictionaryRef;
120*67e74705SXin Li typedef struct __CFDictionary * CFMutableDictionaryRef;
121*67e74705SXin Li extern CFMutableDictionaryRef CFDictionaryCreateMutable(CFAllocatorRef allocator, CFIndex capacity, const CFDictionaryKeyCallBacks *keyCallBacks, const CFDictionaryValueCallBacks *valueCallBacks);
122*67e74705SXin Li void CFDictionarySetValue(CFMutableDictionaryRef, const void *, const void *);
123*67e74705SXin Li 
124*67e74705SXin Li 
125*67e74705SXin Li extern void CFRelease(CFTypeRef cf);
126*67e74705SXin Li 
127*67e74705SXin Li extern CFMutableStringRef CFStringCreateMutableWithExternalCharactersNoCopy(CFAllocatorRef alloc, UniChar *chars, CFIndex numChars, CFIndex capacity, CFAllocatorRef externalCharactersAllocator);
128*67e74705SXin Li extern CFStringRef CFStringCreateWithCStringNoCopy(CFAllocatorRef alloc, const char *cStr, CFStringEncoding encoding, CFAllocatorRef contentsDeallocator);
129*67e74705SXin Li extern void CFStringAppend(CFMutableStringRef theString, CFStringRef appendedString);
130*67e74705SXin Li 
131*67e74705SXin Li void SystemHeaderFunctionWithBlockParam(void *, void (^block)(void *), unsigned);
132*67e74705SXin Li 
133*67e74705SXin Li @interface NSPointerArray : NSObject <NSFastEnumeration, NSCopying, NSCoding>
134*67e74705SXin Li - (void)addPointer:(void *)pointer;
135*67e74705SXin Li - (void)insertPointer:(void *)item atIndex:(NSUInteger)index;
136*67e74705SXin Li - (void)replacePointerAtIndex:(NSUInteger)index withPointer:(void *)item;
137*67e74705SXin Li - (void *)pointerAtIndex:(NSUInteger)index;
138*67e74705SXin Li @end
139*67e74705SXin Li 
140