summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorWill Dietz <wdietz2@illinois.edu>2013-01-07 09:51:17 +0000
committerWill Dietz <wdietz2@illinois.edu>2013-01-07 09:51:17 +0000
commitdf9a2bbcb1a812f0977964d56714e444374dcd80 (patch)
tree94bda76de97f660038a8ecfd1766975ea5113792 /clang/test
parent1b89629616f6562e40896b9ae62e9f4bebcbaec1 (diff)
downloadbcm5719-llvm-df9a2bbcb1a812f0977964d56714e444374dcd80.tar.gz
bcm5719-llvm-df9a2bbcb1a812f0977964d56714e444374dcd80.zip
CFG.cpp: Fix wrapping logic when printing block preds/succs.
First check only wrapped with i==8, second wrapped at i==2,8,18,28,... This fix restores the intended behavior: i==8,18,28,... Found with -fsanitize=integer. llvm-svn: 171718
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Analysis/cfg.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/clang/test/Analysis/cfg.cpp b/clang/test/Analysis/cfg.cpp
new file mode 100644
index 00000000000..8c1c7653db1
--- /dev/null
+++ b/clang/test/Analysis/cfg.cpp
@@ -0,0 +1,37 @@
+// RUN: %clang_cc1 -fsyntax-only -analyze -analyzer-checker=debug.DumpCFG %s 2>&1 | FileCheck %s
+// Check the wrapping behavior when dumping the CFG.
+
+// CHECK: ENTRY
+// CHECK-NEXT: Succs (1): B1
+// CHECK: [B1]
+// CHECK: Succs (21): B2 B3 B4 B5 B6 B7 B8 B9
+// CHECK: B10 B11 B12 B13 B14 B15 B16 B17 B18 B19
+// CHECK: B20 B21 B0
+// CHECK: [B0 (EXIT)]
+// CHECK-NEXT: Preds (21): B2 B3 B4 B5 B6 B7 B8 B9
+// CHECK-NEXT: B10 B11 B12 B13 B14 B15 B16 B17 B18 B19
+// CHECK-NEXT: B20 B21 B1
+void test(int i) {
+ switch(i) {
+ case 0: break;
+ case 1: break;
+ case 2: break;
+ case 3: break;
+ case 4: break;
+ case 5: break;
+ case 6: break;
+ case 7: break;
+ case 8: break;
+ case 9: break;
+ case 10: break;
+ case 11: break;
+ case 12: break;
+ case 13: break;
+ case 14: break;
+ case 15: break;
+ case 16: break;
+ case 17: break;
+ case 18: break;
+ case 19: break;
+ }
+}
OpenPOWER on IntegriCloud