summaryrefslogtreecommitdiffstats
path: root/test/Analysis/Inputs/system-header-simulator-for-simple-stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'test/Analysis/Inputs/system-header-simulator-for-simple-stream.h')
-rw-r--r--test/Analysis/Inputs/system-header-simulator-for-simple-stream.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/test/Analysis/Inputs/system-header-simulator-for-simple-stream.h b/test/Analysis/Inputs/system-header-simulator-for-simple-stream.h
index 99986f4..b65b7a6 100644
--- a/test/Analysis/Inputs/system-header-simulator-for-simple-stream.h
+++ b/test/Analysis/Inputs/system-header-simulator-for-simple-stream.h
@@ -1,4 +1,8 @@
-
+// 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 {
@@ -9,3 +13,9 @@ 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 *);
OpenPOWER on IntegriCloud