summaryrefslogtreecommitdiff
path: root/Source/Core/Inline.cs
diff options
context:
space:
mode:
authorGravatar qadeer <qadeer@microsoft.com>2011-11-15 10:18:59 -0800
committerGravatar qadeer <qadeer@microsoft.com>2011-11-15 10:18:59 -0800
commit9672dace9e0ecb4fd72f937f9305526669d67475 (patch)
tree26ec92ec2173c3887949a087c6a24b81d50329ee /Source/Core/Inline.cs
parent7f5799e4fc25b3621b3e0b11bccf3aa744b8baa3 (diff)
changed inlining code so that candidate preconditions and postconditions are ignored
Diffstat (limited to 'Source/Core/Inline.cs')
-rw-r--r--Source/Core/Inline.cs4
1 files changed, 2 insertions, 2 deletions
diff --git a/Source/Core/Inline.cs b/Source/Core/Inline.cs
index a202bcfe..adc7e2f0 100644
--- a/Source/Core/Inline.cs
+++ b/Source/Core/Inline.cs
@@ -421,7 +421,7 @@ namespace Microsoft.Boogie {
// inject non-free requires
for (int i = 0; i < proc.Requires.Length; i++) {
Requires/*!*/ req = cce.NonNull(proc.Requires[i]);
- if (!req.Free) {
+ if (!req.Free && !QKeyValue.FindBoolAttribute(req.Attributes, "candidate")) {
Requires/*!*/ reqCopy = (Requires/*!*/)cce.NonNull(req.Clone());
reqCopy.Condition = codeCopier.CopyExpr(req.Condition);
AssertCmd/*!*/ a = new AssertRequiresCmd(callCmd, reqCopy);
@@ -486,7 +486,7 @@ namespace Microsoft.Boogie {
// inject non-free ensures
for (int i = 0; i < proc.Ensures.Length; i++) {
Ensures/*!*/ ens = cce.NonNull(proc.Ensures[i]);
- if (!ens.Free) {
+ if (!ens.Free && !QKeyValue.FindBoolAttribute(ens.Attributes, "candidate")) {
Ensures/*!*/ ensCopy = (Ensures/*!*/)cce.NonNull(ens.Clone());
ensCopy.Condition = codeCopier.CopyExpr(ens.Condition);
AssertCmd/*!*/ a = new AssertEnsuresCmd(ensCopy);