diff options
author | Mike Stump <mrs@apple.com> | 2009-10-26 18:35:08 +0000 |
---|---|---|
committer | Mike Stump <mrs@apple.com> | 2009-10-26 18:35:08 +0000 |
commit | 722cedfb0dbb4617d99695b1444b65bc7b796f99 (patch) | |
tree | d8fafd759db42856b522b49c89d625c9496e7e8c /clang/test/CodeGen/object-size.c | |
parent | 9aba0d9988c6d3056ed4e3628934c29943888bc7 (diff) | |
download | bcm5719-llvm-722cedfb0dbb4617d99695b1444b65bc7b796f99.tar.gz bcm5719-llvm-722cedfb0dbb4617d99695b1444b65bc7b796f99.zip |
__builtin_object_size refinements. WIP.
llvm-svn: 85136
Diffstat (limited to 'clang/test/CodeGen/object-size.c')
-rw-r--r-- | clang/test/CodeGen/object-size.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/clang/test/CodeGen/object-size.c b/clang/test/CodeGen/object-size.c new file mode 100644 index 00000000000..b6861169893 --- /dev/null +++ b/clang/test/CodeGen/object-size.c @@ -0,0 +1,33 @@ +// RUN: clang-cc -triple x86_64-apple-darwin -S -D_FORTIFY_SOURCE=2 %s -o %t.s && +// RUN: FileCheck --input-file=%t.s %s +#include <string.h> + +char gbuf[63]; +char *gp; + +void test1() { + // CHECK: movabsq $59, %rdx + // CHECK-NEXT: movq %rax, %rdi + // CHECK-NEXT: movq %rcx, %rsi + // CHECK-NEXT: call ___strcpy_chk + strcpy(&gbuf[4], "Hi there"); +} + +void test2() { + // CHECK: movabsq $63, %rdx + // CHECK-NEXT: movq %rax, %rdi + // CHECK-NEXT: movq %rcx, %rsi + // CHECK-NEXT: call ___strcpy_chk + strcpy(gbuf, "Hi there"); +} + +void test4() { + // CHECK: call ___inline_strcpy_chk + strcpy(gp, "Hi"); +} + +void test3() { + int i; + // CHECK: call ___inline_strcpy_chk + strcpy((++i, gbuf), "Hi"); +} |