aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/object-size.c
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2009-10-29 23:22:14 +0000
committerMike Stump <mrs@apple.com>2009-10-29 23:22:14 +0000
commit48c2af821ef9ffb51499f37ac1d332766fc20f1e (patch)
treeb78a30dbbeb27696a184b25678d83508ba529b21 /test/CodeGen/object-size.c
parent7c475ee1339c03e2d544a28aa9b8da393ce7d20c (diff)
Add some more testcases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85534 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/object-size.c')
-rw-r--r--test/CodeGen/object-size.c36
1 files changed, 30 insertions, 6 deletions
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");
+}