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
6 #pragma clang system_header
8 typedef struct __sFILE
{
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" );
17 // The following is a fake system header function
18 typedef struct __FileStruct
{
21 void fakeSystemHeaderCall(FileStruct
*);