From: Jordan Rose Date: Mon, 15 Apr 2013 20:39:37 +0000 (+0000) Subject: [analyzer] Tests: move system functions into system header simulator files. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9a0b3c2f7c440c53b65bd1b085a7471d9f7ed490;p=clang [analyzer] Tests: move system functions into system header simulator files. Some checkers ascribe different behavior to functions declared in system headers, so when working with standard library functions it's probably best to always have them in a standard location. Test change only (no functionality change), but necessary for the next commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179552 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Analysis/Inputs/system-header-simulator.h b/test/Analysis/Inputs/system-header-simulator.h index 04688c782a..e5efeb81f7 100644 --- a/test/Analysis/Inputs/system-header-simulator.h +++ b/test/Analysis/Inputs/system-header-simulator.h @@ -14,8 +14,11 @@ extern FILE *__stdinp; extern FILE *__stdoutp; extern FILE *__stderrp; - +int scanf(const char *restrict format, ...); int fscanf(FILE *restrict, const char *restrict, ...); +int printf(const char *restrict format, ...); +int fprintf(FILE *restrict, const char *restrict, ...); +int getchar(void); // Note, on some platforms errno macro gets replaced with a function call. extern int errno; @@ -37,6 +40,8 @@ typedef __darwin_off_t fpos_t; void setbuf(FILE * restrict, char * restrict); int setvbuf(FILE * restrict, char * restrict, int, size_t); +FILE *fopen(const char * restrict, const char * restrict); +int fclose(FILE *); FILE *funopen(const void *, int (*)(void *, char *, int), int (*)(void *, const char *, int), diff --git a/test/Analysis/Malloc+MismatchedDeallocator+NewDelete.cpp b/test/Analysis/Malloc+MismatchedDeallocator+NewDelete.cpp index b1ee4c85cf..5a596d47ec 100644 --- a/test/Analysis/Malloc+MismatchedDeallocator+NewDelete.cpp +++ b/test/Analysis/Malloc+MismatchedDeallocator+NewDelete.cpp @@ -1,9 +1,7 @@ // RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc,unix.MismatchedDeallocator,cplusplus.NewDelete -std=c++11 -verify %s // RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc,unix.MismatchedDeallocator,cplusplus.NewDelete,alpha.cplusplus.NewDeleteLeaks -DLEAKS -std=c++11 -verify %s -typedef __typeof(sizeof(int)) size_t; -void *malloc(size_t); -void free(void *); +#include "Inputs/system-header-simulator-for-malloc.h" //-------------------------------------------------- // Check that unix.Malloc catches all types of bugs. diff --git a/test/Analysis/taint-tester.c b/test/Analysis/taint-tester.c index 7b0ab2a5fd..6287198eda 100644 --- a/test/Analysis/taint-tester.c +++ b/test/Analysis/taint-tester.c @@ -1,10 +1,6 @@ // RUN: %clang_cc1 -Wno-int-to-pointer-cast -analyze -analyzer-checker=alpha.security.taint,debug.TaintTest %s -verify -#include - -int scanf(const char *restrict format, ...); -int getchar(void); -typedef __typeof(sizeof(int)) size_t; +#include "Inputs/system-header-simulator.h" #define BUFSIZE 10 int Buffer[BUFSIZE]; @@ -87,15 +83,6 @@ void getenvTest(char *home) { } } -typedef struct _FILE FILE; -extern FILE *stdin; -extern FILE *stdout; -extern FILE *stderr; -int fscanf(FILE *restrict stream, const char *restrict format, ...); -int fprintf(FILE *stream, const char *format, ...); -int fclose(FILE *stream); -FILE *fopen(const char *path, const char *mode); - int fscanfTest(void) { FILE *fp; char s[80];