]> granicus.if.org Git - clang/commitdiff
Add a testcase for r202437.
authorBob Wilson <bob.wilson@apple.com>
Fri, 28 Feb 2014 05:57:14 +0000 (05:57 +0000)
committerBob Wilson <bob.wilson@apple.com>
Fri, 28 Feb 2014 05:57:14 +0000 (05:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202468 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/Inputs/instr-profile.pgodata
test/CodeGen/instr-profile.c

index 1a445ed7e8669a981ad6d0ec5a58741b3d5f5efa..07e763ed1decec38a96c1b67d7a9596f9dec0834 100644 (file)
@@ -116,6 +116,12 @@ boolop_loops 9
 50
 26
 
+do_fallthrough 4
+1
+10
+2
+8
+
 no_usable_data 5
 1
 1
index b5062f4c9089ca4530090211c04ed5f4d610df33..c982dcb7582e448b7aada6071c701eb8f31bc46b 100644 (file)
@@ -417,6 +417,19 @@ void boolop_loops() {
   // PGOUSE-NOT: br {{.*}} !prof ![0-9]+
 }
 
+void do_fallthrough() {
+  for (int i = 0; i < 10; ++i) {
+    int j = 0;
+    do {
+      // The number of exits out of this do-loop via the break statement
+      // exceeds the counter value for the loop (which does not include the
+      // fallthrough count). Make sure that does not violate any assertions.
+      if (i < 8) break;
+      j++;
+    } while (j < 2);
+  }
+}
+
 // PGOGEN-LABEL: @no_usable_data()
 // PGOUSE-LABEL: @no_usable_data()
 // PGOGEN: store {{.*}} @[[NOC]], i64 0, i64 0
@@ -510,6 +523,7 @@ int main(int argc, const char *argv[]) {
   big_switch();
   boolean_operators();
   boolop_loops();
+  do_fallthrough();
   no_usable_data();
   return 0;
 }