forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			121 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
// Like the compiler, the static analyzer treats some functions differently if
 | 
						|
// they come from a system header -- for example, it is assumed that system
 | 
						|
// functions do not arbitrarily free() their parameters, and that some bugs
 | 
						|
// found in system headers cannot be fixed by the user and should be
 | 
						|
// suppressed.
 | 
						|
#pragma clang system_header
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
#define restrict /*restrict*/
 | 
						|
#endif
 | 
						|
 | 
						|
typedef struct _FILE FILE;
 | 
						|
extern FILE *stdin;
 | 
						|
extern FILE *stdout;
 | 
						|
extern FILE *stderr;
 | 
						|
// Include a variant of standard streams that occur in the pre-processed file.
 | 
						|
extern FILE *__stdinp;
 | 
						|
extern FILE *__stdoutp;
 | 
						|
extern FILE *__stderrp;
 | 
						|
 | 
						|
int scanf(const char *restrict format, ...);
 | 
						|
int fscanf(FILE *restrict, const char *restrict, ...);
 | 
						|
int printf(const char *restrict format, ...);
 | 
						|
int fprintf(FILE *restrict, const char *restrict, ...);
 | 
						|
int getchar(void);
 | 
						|
 | 
						|
// Note, on some platforms errno macro gets replaced with a function call.
 | 
						|
extern int errno;
 | 
						|
 | 
						|
typedef __typeof(sizeof(int)) size_t;
 | 
						|
 | 
						|
size_t strlen(const char *);
 | 
						|
 | 
						|
char *strcpy(char *restrict, const char *restrict);
 | 
						|
char *strncpy(char *dst, const char *src, size_t n);
 | 
						|
void *memcpy(void *dst, const void *src, size_t n);
 | 
						|
 | 
						|
typedef unsigned long __darwin_pthread_key_t;
 | 
						|
typedef __darwin_pthread_key_t pthread_key_t;
 | 
						|
int pthread_setspecific(pthread_key_t, const void *);
 | 
						|
 | 
						|
typedef long long __int64_t;
 | 
						|
typedef __int64_t __darwin_off_t;
 | 
						|
typedef __darwin_off_t fpos_t;
 | 
						|
 | 
						|
void setbuf(FILE * restrict, char * restrict);
 | 
						|
int setvbuf(FILE * restrict, char * restrict, int, size_t);
 | 
						|
 | 
						|
FILE *fopen(const char * restrict, const char * restrict);
 | 
						|
int fclose(FILE *);
 | 
						|
FILE *funopen(const void *,
 | 
						|
                 int (*)(void *, char *, int),
 | 
						|
                 int (*)(void *, const char *, int),
 | 
						|
                 fpos_t (*)(void *, fpos_t, int),
 | 
						|
                 int (*)(void *));
 | 
						|
 | 
						|
int sqlite3_bind_text_my(int, const char*, int n, void(*)(void*));
 | 
						|
 | 
						|
typedef void (*freeCallback) (void*);
 | 
						|
typedef struct {
 | 
						|
  int i;
 | 
						|
  freeCallback fc;
 | 
						|
} StWithCallback;
 | 
						|
 | 
						|
int dealocateMemWhenDoneByVal(void*, StWithCallback);
 | 
						|
int dealocateMemWhenDoneByRef(StWithCallback*, const void*);
 | 
						|
 | 
						|
typedef struct CGContext *CGContextRef;
 | 
						|
CGContextRef CGBitmapContextCreate(void *data/*, size_t width, size_t height,
 | 
						|
                                   size_t bitsPerComponent, size_t bytesPerRow,
 | 
						|
                                   CGColorSpaceRef space,
 | 
						|
                                   CGBitmapInfo bitmapInfo*/);
 | 
						|
void *CGBitmapContextGetData(CGContextRef context);
 | 
						|
 | 
						|
// Include xpc.
 | 
						|
typedef struct _xpc_connection_s * xpc_connection_t;
 | 
						|
typedef void (*xpc_finalizer_t)(void *value);
 | 
						|
void xpc_connection_set_context(xpc_connection_t connection, void *context);
 | 
						|
void xpc_connection_set_finalizer_f(xpc_connection_t connection, xpc_finalizer_t finalizer);
 | 
						|
void xpc_connection_resume(xpc_connection_t connection);
 | 
						|
 | 
						|
//The following are fake system header functions for generic testing.
 | 
						|
void fakeSystemHeaderCallInt(int *);
 | 
						|
void fakeSystemHeaderCallIntPtr(int **);
 | 
						|
 | 
						|
// Some data strauctures may hold onto the pointer and free it later.
 | 
						|
void fake_insque(void *, void *);
 | 
						|
typedef struct fake_rb_tree { void *opaque[8]; } fake_rb_tree_t;
 | 
						|
void fake_rb_tree_init(fake_rb_tree_t *, const void *);
 | 
						|
void *fake_rb_tree_insert_node(fake_rb_tree_t *, void *);
 | 
						|
 | 
						|
typedef struct __SomeStruct {
 | 
						|
  char * p;
 | 
						|
} SomeStruct;
 | 
						|
void fakeSystemHeaderCall(SomeStruct *);
 | 
						|
 | 
						|
typedef int pid_t;
 | 
						|
pid_t fork(void);
 | 
						|
pid_t vfork(void);
 | 
						|
int execl(const char *path, const char *arg, ...);
 | 
						|
int execle(const char *path, const char *arg, ...);
 | 
						|
int execlp(const char *file, const char *arg, ...);
 | 
						|
int execv(const char *path, char *const argv[]);
 | 
						|
int execve(const char *path, char *const argv[], char *const envp[]);
 | 
						|
int execvp(const char *file, char *const argv[]);
 | 
						|
int execvpe(const char *file, char *const argv[], char *const envp[]);
 | 
						|
 | 
						|
void exit(int status) __attribute__ ((__noreturn__));
 | 
						|
void _exit(int status) __attribute__ ((__noreturn__));
 | 
						|
void _Exit(int status) __attribute__ ((__noreturn__));
 | 
						|
 | 
						|
#define UINT32_MAX        4294967295U
 | 
						|
#define INT64_MIN        (-INT64_MAX-1)
 | 
						|
#define __DBL_MAX__ 1.7976931348623157e+308
 | 
						|
#define DBL_MAX __DBL_MAX__
 | 
						|
#ifndef NULL
 | 
						|
#define __DARWIN_NULL 0
 | 
						|
#define NULL __DARWIN_NULL
 | 
						|
#endif
 | 
						|
 | 
						|
#define offsetof(t, d) __builtin_offsetof(t, d) |