llvm-for-llvmta/tools/clang/test/Analysis/Inputs/system-header-simulator-for...

22 lines
756 B
C
Raw Permalink Normal View History

2022-04-25 13:02:35 +02:00
// 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 *);