summaryrefslogtreecommitdiff
path: root/Test/houdini/deterministic.bpl
diff options
context:
space:
mode:
authorGravatar shuvendu <unknown>2014-09-19 18:05:18 -0700
committerGravatar shuvendu <unknown>2014-09-19 18:05:18 -0700
commitf8de3b4b9b3acbda2b82522816f1c265954ef5be (patch)
tree0fa47ec334f4770407576ac357b2e20e50c5d72c /Test/houdini/deterministic.bpl
parentbf65ebf6145df56f3198dbed788f6dd3058f3507 (diff)
more tests for houdini /inlineDepth
Diffstat (limited to 'Test/houdini/deterministic.bpl')
-rw-r--r--Test/houdini/deterministic.bpl27
1 files changed, 27 insertions, 0 deletions
diff --git a/Test/houdini/deterministic.bpl b/Test/houdini/deterministic.bpl
new file mode 100644
index 00000000..8a6c0cd6
--- /dev/null
+++ b/Test/houdini/deterministic.bpl
@@ -0,0 +1,27 @@
+// RUN: %boogie /nologo /contractInfer /inlineDepth:1 /printAssignment /noinfer "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
+
+function f(a:int):int;
+
+procedure {:inline 1} Foo(x:int) returns (r:int)
+free ensures r == f(x);
+{
+ if (x >0 ) {
+ call r := Foo(x);
+ r := r + 1;
+ havoc r;
+ } else {
+ r := 0;
+ }
+ return;
+}
+
+procedure Check(x1:int, x2:int)
+{
+ var r1: int, r2:int;
+
+ call r1 := Foo(x2); //inlined
+ call r2 := Foo(x2); //inlined
+ assert r1 == r2;
+}