From: Mike Stump Date: Thu, 29 Oct 2009 23:22:14 +0000 (+0000) Subject: Add some more testcases. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=48c2af821ef9ffb51499f37ac1d332766fc20f1e;p=clang Add some more testcases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85534 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/CodeGen/object-size.c b/test/CodeGen/object-size.c index b6113fa0e5..fc138e26fd 100644 --- a/test/CodeGen/object-size.c +++ b/test/CodeGen/object-size.c @@ -11,6 +11,7 @@ static char *__inline_strcpy_chk (char *dest, const char *src) { char gbuf[63]; char *gp; +int gi, gj; void test1() { // CHECK: movabsq $59, %rdx @@ -45,17 +46,13 @@ void test4() { } void test5() { + // CHECK: movb $0, %al + // CHECK-NEXT testb %al, %al // CHECK: call ___inline_strcpy_chk strcpy(gp, "Hi there"); } void test6() { - int i; - // CHECK: call ___inline_strcpy_chk - strcpy((++i, gbuf), "Hi there"); -} - -void test7() { char buf[57]; // CHECK: movabsq $53, %rdx @@ -64,3 +61,30 @@ void test7() { // CHECK-NEXT: call ___strcpy_chk strcpy(&buf[4], "Hi there"); } + +void test7() { + int i; + // CHECK-NOT: call ___strcpy_chk + // CHECK: call ___inline_strcpy_chk + strcpy((++i, gbuf), "Hi there"); +} + +void test8() { + char *buf[50]; + // CHECK-NOT: call ___strcpy_chk + // CHECK: call ___inline_strcpy_chk + strcpy(buf[++gi], "Hi there"); +} + +void test9() { + // CHECK-NOT: call ___strcpy_chk + // CHECK: call ___inline_strcpy_chk + strcpy((char *)((++gi) + gj), "Hi there"); +} + +char **p; +void test10() { + // CHECK-NOT: call ___strcpy_chk + // CHECK: call ___inline_strcpy_chk + strcpy(*(++p), "Hi there"); +}