summaryrefslogtreecommitdiff
path: root/Test/inline
diff options
context:
space:
mode:
authorGravatar qadeer <unknown>2013-08-15 12:38:35 -0700
committerGravatar qadeer <unknown>2013-08-15 12:38:35 -0700
commitf1f3d32ba043c0468dd04dfcfa7ac02c3fa1876c (patch)
tree3cb903196262d0094c01d4db28f2e0c12edae1f9 /Test/inline
parent1ab4adb8ac3d6f5bd20801b2170c3f7bf00b8234 (diff)
inlining is now done in rhs of assignments for codeexprs
added more regressions
Diffstat (limited to 'Test/inline')
-rw-r--r--Test/inline/Answer6
-rw-r--r--Test/inline/codeexpr.bpl26
2 files changed, 28 insertions, 4 deletions
diff --git a/Test/inline/Answer b/Test/inline/Answer
index d1666e03..f08209e3 100644
--- a/Test/inline/Answer
+++ b/Test/inline/Answer
@@ -6,11 +6,11 @@ Execution trace:
Boogie program verifier finished with 1 verified, 1 error
-------------------- codeexpr.bpl --------------------
-codeexpr.bpl(35,5): Error BP5001: This assertion might not hold.
+codeexpr.bpl(40,5): Error BP5001: This assertion might not hold.
Execution trace:
- codeexpr.bpl(34,7): anon0
+ codeexpr.bpl(39,7): anon0
-Boogie program verifier finished with 3 verified, 1 error
+Boogie program verifier finished with 5 verified, 1 error
-------------------- test1.bpl --------------------
procedure Main();
diff --git a/Test/inline/codeexpr.bpl b/Test/inline/codeexpr.bpl
index bd57329f..67728ea5 100644
--- a/Test/inline/codeexpr.bpl
+++ b/Test/inline/codeexpr.bpl
@@ -5,6 +5,11 @@ procedure {:inline 1} bar() returns (l: bool)
l := g;
}
+procedure {:inline 1} baz() returns (l: bool)
+{
+ call l := bar();
+}
+
procedure A1()
modifies g;
{
@@ -33,4 +38,23 @@ modifies g;
{
g := true;
assert |{ var l: bool; A: call l := bar(); return !l; }|;
-} \ No newline at end of file
+}
+
+procedure A5()
+modifies g;
+{
+ var m: bool;
+
+ g := true;
+ m := |{ var l: bool; A: call l := bar(); return l; }|;
+ assert m;
+}
+
+procedure A6()
+modifies g;
+{
+ g := true;
+ assert |{ var l: bool; A: call l := baz(); return l; }|;
+ assert (exists p: bool :: |{ var l: bool; A: call l := baz(); return l; }|);
+ assert (forall p: bool :: |{ var l: bool; A: call l := baz(); return l; }|);
+}