1 // Like the compiler, the static analyzer treats some functions differently if
2 // they come from a system header -- for example, it is assumed that system
3 // functions do not arbitrarily free() their parameters, and that some bugs
4 // found in system headers cannot be fixed by the user and should be
5 // suppressed.
6 #pragma clang system_header
7 
8 typedef struct __sFILE {
9   unsigned char *_p;
10 } FILE;
11 FILE *fopen(const char * restrict, const char * restrict) __asm("_" "fopen" );
12 int fputc(int, FILE *);
13 int fputs(const char * restrict, FILE * restrict) __asm("_" "fputs" );
14 int fclose(FILE *);
15 void exit(int);
16 
17 // The following is a fake system header function
18 typedef struct __FileStruct {
19   FILE * p;
20 } FileStruct;
21 void fakeSystemHeaderCall(FileStruct *);
22