From 722cedfb0dbb4617d99695b1444b65bc7b796f99 Mon Sep 17 00:00:00 2001 From: Mike Stump Date: Mon, 26 Oct 2009 18:35:08 +0000 Subject: __builtin_object_size refinements. WIP. llvm-svn: 85136 --- clang/test/CodeGen/object-size.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 clang/test/CodeGen/object-size.c (limited to 'clang/test/CodeGen/object-size.c') 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 + +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"); +} -- cgit v1.2.3