mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-03 19:32:35 +00:00
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
This commit is contained in:
parent
1b89629616
commit
df9a2bbcb1
@ -3893,7 +3893,7 @@ static void print_block(raw_ostream &OS, const CFG* cfg,
|
||||
for (CFGBlock::const_pred_iterator I = B.pred_begin(), E = B.pred_end();
|
||||
I != E; ++I, ++i) {
|
||||
|
||||
if (i == 8 || (i-8) == 0)
|
||||
if (i % 10 == 8)
|
||||
OS << "\n ";
|
||||
|
||||
OS << " B" << (*I)->getBlockID();
|
||||
@ -3922,7 +3922,7 @@ static void print_block(raw_ostream &OS, const CFG* cfg,
|
||||
for (CFGBlock::const_succ_iterator I = B.succ_begin(), E = B.succ_end();
|
||||
I != E; ++I, ++i) {
|
||||
|
||||
if (i == 8 || (i-8) % 10 == 0)
|
||||
if (i % 10 == 8)
|
||||
OS << "\n ";
|
||||
|
||||
if (*I)
|
||||
|
37
clang/test/Analysis/cfg.cpp
Normal file
37
clang/test/Analysis/cfg.cpp
Normal file
@ -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;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user