diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-06-07 14:00:12 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-06-07 14:00:43 -0700 |
commit | 507d73ae7b6964031c3090e9330fb50c009df7c1 (patch) | |
tree | 6df09f13bcbc13a4a92d794f1c44773d09feb182 /src/relooper/test.cpp | |
parent | c6d56fb9da9eb2ecafadec1a951c98db17092b18 (diff) |
remove break labels more aggresively, with a refined natural flow analysis1.4.9
Diffstat (limited to 'src/relooper/test.cpp')
-rw-r--r-- | src/relooper/test.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/relooper/test.cpp b/src/relooper/test.cpp index 7da990b5..b2d500d7 100644 --- a/src/relooper/test.cpp +++ b/src/relooper/test.cpp @@ -231,5 +231,32 @@ int main() { puts(buffer); } + + if (1) { + Relooper::SetOutputBuffer(buffer, sizeof(buffer)); + + printf("\n\n-- conditional loop --\n\n"); + + Block *b_a = new Block("// block A\n"); + Block *b_b = new Block("// block B\n"); + Block *b_c = new Block("// block C\n"); + + b_a->AddBranchTo(b_b, "shouldLoop()"); + b_a->AddBranchTo(b_c, NULL); + + b_b->AddBranchTo(b_b, "moarLoop()"); + b_b->AddBranchTo(b_c, NULL); + + Relooper r; + r.AddBlock(b_a); + r.AddBlock(b_b); + r.AddBlock(b_c); + + r.Calculate(b_a); + printf("\n\n"); + r.Render(); + + puts(buffer); + } } |