diff options
Diffstat (limited to 'test/CodeGen/stack-protector.c')
-rw-r--r-- | test/CodeGen/stack-protector.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/test/CodeGen/stack-protector.c b/test/CodeGen/stack-protector.c index eb4cea2..e47e5b3 100644 --- a/test/CodeGen/stack-protector.c +++ b/test/CodeGen/stack-protector.c @@ -1,14 +1,24 @@ // RUN: %clang_cc1 -emit-llvm -o - %s -stack-protector 0 | FileCheck -check-prefix=NOSSP %s -// NOSSP: define void @test1(i8* %msg) nounwind { +// NOSSP: define void @test1(i8* %msg) #0 { // RUN: %clang_cc1 -emit-llvm -o - %s -stack-protector 1 | FileCheck -check-prefix=WITHSSP %s -// WITHSSP: define void @test1(i8* %msg) nounwind ssp { +// WITHSSP: define void @test1(i8* %msg) #0 { // RUN: %clang_cc1 -emit-llvm -o - %s -stack-protector 2 | FileCheck -check-prefix=SSPREQ %s -// SSPREQ: define void @test1(i8* %msg) nounwind sspreq { +// SSPREQ: define void @test1(i8* %msg) #0 { + +typedef __SIZE_TYPE__ size_t; int printf(const char * _Format, ...); +size_t strlen(const char *s); +char *strcpy(char *s1, const char *s2); void test1(const char *msg) { char a[strlen(msg) + 1]; strcpy(a, msg); printf("%s\n", a); } + +// NOSSP: attributes #{{.*}} = { nounwind{{.*}} } + +// WITHSSP: attributes #{{.*}} = { nounwind ssp{{.*}} } + +// SSPREQ: attributes #{{.*}} = { nounwind sspreq{{.*}} } |