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 b6113fa..fc138e2 100644
--- a/test/CodeGen/object-size.c
+++ b/test/CodeGen/object-size.c
@@ -11,6 +11,7 @@
 
 char gbuf[63];
 char *gp;
+int gi, gj;
 
 void test1() {
   // CHECK:       movabsq $59, %rdx
@@ -45,17 +46,13 @@
 }
 
 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 @@
   // 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");
+}