22 lines
		
	
	
		
			756 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			756 B
		
	
	
	
		
			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
 | 
						|
 | 
						|
typedef struct __sFILE {
 | 
						|
  unsigned char *_p;
 | 
						|
} FILE;
 | 
						|
FILE *fopen(const char * restrict, const char * restrict) __asm("_" "fopen" );
 | 
						|
int fputc(int, FILE *);
 | 
						|
int fputs(const char * restrict, FILE * restrict) __asm("_" "fputs" );
 | 
						|
int fclose(FILE *);
 | 
						|
void exit(int);
 | 
						|
 | 
						|
// The following is a fake system header function
 | 
						|
typedef struct __FileStruct {
 | 
						|
  FILE * p;
 | 
						|
} FileStruct;
 | 
						|
void fakeSystemHeaderCall(FileStruct *);
 |