llvm-project/clang/test/CodeGen/stack-protector.c
Bill Wendling d63bbadbef Add stack protector support to clang. This generates the 'ssp' and 'sspreq'
function attributes. There are predefined macros that are defined when stack
protectors are used: __SSP__=1 with -fstack-protector and __SSP_ALL__=2 with
-fstack-protector-all.

llvm-svn: 74405
2009-06-28 07:36:13 +00:00

23 lines
702 B
C

// RUN: clang-cc -triple i686-unknown-unknown -emit-llvm -o %t %s &&
// RUN: not grep 'ssp' %t &&
// RUN: clang-cc -triple i686-apple-darwin9 -emit-llvm -o %t %s &&
// RUN: not grep 'ssp' %t &&
// RUN: clang-cc -triple i686-apple-darwin10 -emit-llvm -o %t %s &&
// RUN: grep 'ssp' %t &&
// RUN: clang -fstack-protector-all -emit-llvm -S -o %t %s &&
// RUN: grep 'sspreq' %t &&
// RUN: clang -fstack-protector -emit-llvm -S -o %t %s &&
// RUN: grep 'ssp' %t &&
// RUN: clang -fno-stack-protector -emit-llvm -S -o %t %s &&
// RUN: not grep 'ssp' %t &&
// RUN: true
#include <stdio.h>
#include <string.h>
void test1(const char *msg) {
char a[strlen(msg) + 1];
strcpy(a, msg);
printf("%s\n", a);
}