summaryrefslogtreecommitdiff
path: root/Test/stratifiedinline/bar3.bpl
diff options
context:
space:
mode:
authorGravatar akashlal <unknown>2010-07-07 17:52:18 +0000
committerGravatar akashlal <unknown>2010-07-07 17:52:18 +0000
commit2235d3dc9e090a1d4b13d653138838624c70ba26 (patch)
treecd24b337a633b8d0a189c0de269bb7dadad0a083 /Test/stratifiedinline/bar3.bpl
parentc9149ae1142d787e736f3fc7eea616d6422d31fb (diff)
Boogie: Added stratified inlining. It is enabled using the flag /stratifiedInline:1.
Diffstat (limited to 'Test/stratifiedinline/bar3.bpl')
-rw-r--r--Test/stratifiedinline/bar3.bpl41
1 files changed, 41 insertions, 0 deletions
diff --git a/Test/stratifiedinline/bar3.bpl b/Test/stratifiedinline/bar3.bpl
new file mode 100644
index 00000000..7bd91184
--- /dev/null
+++ b/Test/stratifiedinline/bar3.bpl
@@ -0,0 +1,41 @@
+var y: int;
+var x: int;
+
+procedure {:inline 1} bar(b: bool)
+modifies y;
+{
+ if (b) {
+ y := y + 1;
+ } else {
+ y := y - 1;
+ }
+}
+
+procedure {:inline 1} foo()
+modifies x, y;
+{
+ var b: bool;
+ if (b) {
+ x := x + 1;
+ call bar(true);
+ call bar(true);
+ x := x + 1;
+ } else {
+ x := x - 1;
+ call bar(false);
+ call bar(false);
+ x := x - 1;
+ }
+}
+
+
+procedure main()
+requires x == y;
+ensures x == y;
+modifies x, y;
+modifies y;
+{
+ call foo();
+ assert x == y;
+ call bar(false);
+}