summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/fortify-std-lib.c
diff options
context:
space:
mode:
authorErik Pilkington <erik.pilkington@gmail.com>2019-03-13 21:37:01 +0000
committerErik Pilkington <erik.pilkington@gmail.com>2019-03-13 21:37:01 +0000
commit02886e547649cfbf09edf0a60a87b6a10497b6ab (patch)
treefba29623886f6488c13b910ca0183721df7ba477 /clang/test/CodeGen/fortify-std-lib.c
parenta688a42cdda4a71e6e23d5acc47d85d47fa3b0e8 (diff)
downloadbcm5719-llvm-02886e547649cfbf09edf0a60a87b6a10497b6ab.tar.gz
bcm5719-llvm-02886e547649cfbf09edf0a60a87b6a10497b6ab.zip
Revert "Add a new attribute, fortify_stdlib"
This reverts commit r353765. After talking with our c stdlib folks, we decided to use the existing pass_object_size attribute to implement _FORTIFY_SOURCE wrappers, like Bionic does (I didn't realize that pass_object_size could be used for this purpose). Sorry for the flip/flop, and thanks to James Y. Knight for pointing this out to me. llvm-svn: 356103
Diffstat (limited to 'clang/test/CodeGen/fortify-std-lib.c')
-rw-r--r--clang/test/CodeGen/fortify-std-lib.c220
1 files changed, 0 insertions, 220 deletions
diff --git a/clang/test/CodeGen/fortify-std-lib.c b/clang/test/CodeGen/fortify-std-lib.c
deleted file mode 100644
index f2e170d80bc..00000000000
--- a/clang/test/CodeGen/fortify-std-lib.c
+++ /dev/null
@@ -1,220 +0,0 @@
-// RUN: %clang_cc1 -triple x86_64-apple-macosx10.14.0 %s -emit-llvm -O0 -disable-llvm-passes -o - -Wno-format-security | FileCheck %s
-// RUN: %clang_cc1 -xc++ -triple x86_64-apple-macosx10.14.0 %s -emit-llvm -O0 -disable-llvm-passes -o - -Wno-format-security | FileCheck %s
-
-#ifdef __cplusplus
-#define EXTERN extern "C"
-#else
-#define EXTERN
-#endif
-
-#define FSL(x,y) __attribute__((fortify_stdlib(x,y)))
-typedef unsigned long size_t;
-
-FSL(0, 0) EXTERN
-void *memcpy(void *dst, const void *src, size_t sz);
-
-EXTERN
-void call_memcpy(void *dst, const void *src, size_t sz) {
- memcpy(dst, src, sz);
- // CHECK-LABEL: define void @call_memcpy
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i8* @__memcpy_chk(i8* {{.*}}, i8* {{.*}}, i64 {{.*}}, i64 [[REG]])
-}
-
-FSL(0, 0) EXTERN
-void *memmove(void *dst, const void *src, size_t sz);
-
-EXTERN
-void call_memmove(void *dst, const void *src, size_t sz) {
- memmove(dst, src, sz);
- // CHECK-LABEL: define void @call_memmove
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i8* @__memmove_chk(i8* {{.*}}, i8* {{.*}}, i64 {{.*}}, i64 [[REG]])
-}
-
-FSL(0, 0) EXTERN
-void *memset(void *dst, int c, size_t sz);
-
-EXTERN
-void call_memset(void *dst, int c, size_t sz) {
- memset(dst, c, sz);
- // CHECK-LABEL: define void @call_memset
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i8* @__memset_chk(i8* {{.*}}, i32 {{.*}}, i64 {{.*}}, i64 [[REG]])
-}
-
-FSL(0, 0) EXTERN
-char *stpcpy(char* dst, const char *src);
-
-EXTERN
-void call_stpcpy(char *dst, const char *src) {
- stpcpy(dst, src);
- // CHECK-LABEL: define void @call_stpcpy
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i8* @__stpcpy_chk(i8* {{.*}}, i8* {{.*}}, i64 [[REG]])
-}
-
-FSL(0, 0) EXTERN
-char *strcat(char* dst, const char *src);
-
-EXTERN
-void call_strcat(char *dst, const char *src) {
- strcat(dst, src);
- // CHECK-LABEL: define void @call_strcat
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i8* @__strcat_chk(i8* {{.*}}, i8* {{.*}}, i64 [[REG]])
-}
-
-FSL(0, 0) EXTERN
-char *strcpy(char* dst, const char *src);
-
-EXTERN
-void call_strcpy(char *dst, const char *src) {
- strcpy(dst, src);
- // CHECK-LABEL: define void @call_strcpy
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i8* @__strcpy_chk(i8* {{.*}}, i8* {{.*}}, i64 [[REG]])
-}
-
-FSL(0, 0) EXTERN
-size_t strlcat(char* dst, const char *src, size_t len);
-
-EXTERN
-void call_strlcat(char *dst, const char *src, size_t len) {
- strlcat(dst, src, len);
- // CHECK-LABEL: define void @call_strlcat
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i64 @__strlcat_chk(i8* {{.*}}, i8* {{.*}}, i64 {{.*}}, i64 [[REG]])
-}
-
-FSL(0, 0) EXTERN
-size_t strlcpy(char* dst, const char *src, size_t len);
-
-EXTERN
-void call_strlcpy(char *dst, const char *src, size_t len) {
- strlcpy(dst, src, len);
- // CHECK-LABEL: define void @call_strlcpy
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i64 @__strlcpy_chk(i8* {{.*}}, i8* {{.*}}, i64 {{.*}}, i64 [[REG]])
-}
-
-FSL(0, 0) EXTERN
-char *strncat(char* dst, const char *src, size_t len);
-
-EXTERN
-void call_strncat(char *dst, const char *src, size_t len) {
- strncat(dst, src, len);
- // CHECK-LABEL: define void @call_strncat
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i8* @__strncat_chk(i8* {{.*}}, i8* {{.*}}, i64 {{.*}}, i64 [[REG]])
-}
-
-FSL(0, 0) EXTERN
-char *strncpy(char* dst, const char *src, size_t len);
-
-EXTERN
-void call_strncpy(char *dst, const char *src, size_t len) {
- strncpy(dst, src, len);
- // CHECK-LABEL: define void @call_strncpy
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i8* @__strncpy_chk(i8* {{.*}}, i8* {{.*}}, i64 {{.*}}, i64 [[REG]])
-}
-
-FSL(0, 0) EXTERN
-char *stpncpy(char* dst, const char *src, size_t len);
-
-EXTERN
-void call_stpncpy(char *dst, const char *src, size_t len) {
- stpncpy(dst, src, len);
- // CHECK-LABEL: define void @call_stpncpy
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i8* @__stpncpy_chk(i8* {{.*}}, i8* {{.*}}, i64 {{.*}}, i64 [[REG]])
-}
-
-FSL(0, 0) EXTERN
-int snprintf(char *buf, size_t n, const char *fmt, ...);
-
-EXTERN
-void call_snprintf(char *buf, size_t n, const char *fmt) {
- snprintf(buf, n, fmt);
- // CHECK-LABEL: define void @call_snprintf
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i32 (i8*, i64, i32, i64, i8*, ...) @__snprintf_chk(i8* {{.*}}, i64 {{.*}}, i32 0, i64 [[REG]]
-}
-
-FSL(0, 0) EXTERN
-int vsnprintf(char *buf, size_t n, const char *fmt, __builtin_va_list lst);
-
-EXTERN
-void call_vsnprintf(char *buf, size_t n, const char *fmt, __builtin_va_list lst) {
- vsnprintf(buf, n, fmt, lst);
- // CHECK-LABEL: define void @call_vsnprintf
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i32 @__vsnprintf_chk(i8* {{.*}}, i64 {{.*}}, i32 0, i64 [[REG]]
-}
-
-FSL(0,0) EXTERN
-int sprintf(char *buf, const char *fmt, ...);
-
-void call_sprintf(char *buf, const char* fmt) {
- sprintf(buf, fmt);
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i32 (i8*, i32, i64, i8*, ...) @__sprintf_chk(i8* {{.*}}, i32 0, i64 [[REG]]
- sprintf(buf, fmt, 1, 2, 3);
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i32 (i8*, i32, i64, i8*, ...) @__sprintf_chk(i8* {{.*}}, i32 0, i64 [[REG]], i8* {{.*}}, i32 1, i32 2, i32 3)
-}
-
-FSL(0, 0) EXTERN
-int vsprintf(char *buf, const char *fmt, __builtin_va_list lst);
-
-EXTERN
-void call_vsprintf(char *buf, const char *fmt, __builtin_va_list lst) {
- vsprintf(buf, fmt, lst);
- // CHECK-LABEL: define void @call_vsprintf
- // CHECK: [[REG:%[0-9]+]] = call i64 @llvm.objectsize.i64.p0i8(i8*{{.*}}, i1 false, i1 true, i1 false)
- // CHECK: call i32 @__vsprintf_chk(i8* {{.*}}, i32 0, i64 [[REG]]
-}
-
-typedef struct {} FILE;
-
-FSL(0, 0) EXTERN
-int fprintf(FILE *file, const char *fmt, ...);
-
-EXTERN
-void call_fprintf(FILE *file, const char *fmt) {
- fprintf(file, fmt);
- // CHECK-LABEL: define void @call_fprintf
- // CHECK: call i32 ({{.*}}*, i32, i8*, ...) @__fprintf_chk({{.*}}, i32 0, i8* {{.*}})
-}
-
-FSL(0, 0) EXTERN
-int vfprintf(FILE *file, const char *fmt, __builtin_va_list lst);
-
-EXTERN
-void call_vfprintf(FILE *file, const char *fmt, __builtin_va_list lst) {
- vfprintf(file, fmt, lst);
- // CHECK-LABEL: define void @call_vfprintf
- // CHECK: call i32 @__vfprintf_chk({{.*}}, i32 0, i8* {{.*}}, {{.*}})
-}
-
-FSL(0, 0) EXTERN
-int printf(const char *fmt, ...);
-
-EXTERN
-void call_printf(const char *fmt) {
- printf(fmt);
- // CHECK-LABEL: define void @call_printf
- // CHECK: call i32 (i32, i8*, ...) @__printf_chk(i32 0, i8* {{.*}})
-}
-
-FSL(0, 0) EXTERN
-int vprintf(const char *fmt, __builtin_va_list lst);
-
-EXTERN
-void call_vprintf(const char *fmt, __builtin_va_list lst) {
- vprintf(fmt, lst);
- // CHECK-LABEL: define void @call_vprintf
- // CHECK: call i32 @__vprintf_chk(i32 0, {{.*}})
-}
-
OpenPOWER on IntegriCloud