summaryrefslogtreecommitdiff
path: root/Source/Concurrency
diff options
context:
space:
mode:
authorGravatar qadeer <unknown>2014-07-15 05:24:13 -0700
committerGravatar qadeer <unknown>2014-07-15 05:24:13 -0700
commit74090e6fc892db326c6f98b8adb790f1f09fba41 (patch)
tree2208522a7a70ee12eb1b14b60b574c584e4306b9 /Source/Concurrency
parent0069c60980d5063e9b7109be092da82ab8ec61e8 (diff)
fixed a regression failure
Diffstat (limited to 'Source/Concurrency')
-rw-r--r--Source/Concurrency/LinearSets.cs15
1 files changed, 6 insertions, 9 deletions
diff --git a/Source/Concurrency/LinearSets.cs b/Source/Concurrency/LinearSets.cs
index 6675e809..9e649551 100644
--- a/Source/Concurrency/LinearSets.cs
+++ b/Source/Concurrency/LinearSets.cs
@@ -158,11 +158,6 @@ namespace Microsoft.Boogie
node.ComputePredecessorsForBlocks();
GraphUtil.Graph<Block> graph = Program.GraphFromImpl(node);
graph.ComputeLoops();
- if (!graph.Reducible)
- {
- Error(node, "A loop in the implementation is not reducible");
- return node;
- }
HashSet<Variable> start = new HashSet<Variable>(globalVarToDomainName.Keys);
for (int i = 0; i < node.InParams.Count; i++)
@@ -234,14 +229,16 @@ namespace Microsoft.Boogie
}
}
- foreach (Block header in graph.Headers)
+ if (graph.Reducible)
{
- foreach (GlobalVariable g in globalVarToDomainName.Keys.Except(availableLinearVars[header]))
+ foreach (Block header in graph.Headers)
{
- Error(header, string.Format("Global variable {0} must be available at a loop head", g.Name));
+ foreach (GlobalVariable g in globalVarToDomainName.Keys.Except(availableLinearVars[header]))
+ {
+ Error(header, string.Format("Global variable {0} must be available at a loop head", g.Name));
+ }
}
}
-
return impl;
}
public void AddAvailableVars(CallCmd callCmd, HashSet<Variable> start)