summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar qadeer <unknown>2015-03-02 12:31:28 -0800
committerGravatar qadeer <unknown>2015-03-02 12:31:28 -0800
commit1550a8112d172a37a168b048b5c78642bc39bf90 (patch)
tree1fe124834d4c54e564940c19896a7992ea0be4ab
parent7f7e70772d04b1c574609a5504c9160ca01aca67 (diff)
fixed crash reported by Dan.
DoModSetAnalysis needs to run before the linear and mover type checking.
-rw-r--r--Source/ExecutionEngine/ExecutionEngine.cs12
-rw-r--r--Test/og/parallel4.bpl.expect2
-rw-r--r--Test/og/t1.bpl.expect1
3 files changed, 7 insertions, 8 deletions
diff --git a/Source/ExecutionEngine/ExecutionEngine.cs b/Source/ExecutionEngine/ExecutionEngine.cs
index ab1e185c..7756973d 100644
--- a/Source/ExecutionEngine/ExecutionEngine.cs
+++ b/Source/ExecutionEngine/ExecutionEngine.cs
@@ -505,12 +505,6 @@ namespace Microsoft.Boogie
}
}
- EliminateDeadVariables(program);
-
- CollectModSets(program);
-
- CoalesceBlocks(program);
-
if (CommandLineOptions.Clo.StratifiedInlining == 0)
{
Concurrency.Transform(linearTypeChecker, moverTypeChecker);
@@ -524,6 +518,10 @@ namespace Microsoft.Boogie
}
}
+ EliminateDeadVariables(program);
+
+ CoalesceBlocks(program);
+
Inline(program);
var stats = new PipelineStatistics();
@@ -742,6 +740,8 @@ namespace Microsoft.Boogie
CommandLineOptions.Clo.TypeEncodingMethod = CommandLineOptions.TypeEncoding.Monomorphic;
}
+ CollectModSets(program);
+
moverTypeChecker = new MoverTypeChecker(program);
moverTypeChecker.TypeCheck();
if (moverTypeChecker.errorCount != 0)
diff --git a/Test/og/parallel4.bpl.expect b/Test/og/parallel4.bpl.expect
index eaead450..25ad398c 100644
--- a/Test/og/parallel4.bpl.expect
+++ b/Test/og/parallel4.bpl.expect
@@ -1,6 +1,6 @@
parallel4.bpl(31,3): Error BP5001: This assertion might not hold.
Execution trace:
- (0,0): og_init
+ parallel4.bpl(29,5): anon0
(0,0): anon01
Boogie program verifier finished with 3 verified, 1 error
diff --git a/Test/og/t1.bpl.expect b/Test/og/t1.bpl.expect
index f0195727..0b0c936e 100644
--- a/Test/og/t1.bpl.expect
+++ b/Test/og/t1.bpl.expect
@@ -1,6 +1,5 @@
t1.bpl(65,5): Error: Non-interference check failed
Execution trace:
- (0,0): og_init
t1.bpl(84,13): anon0
(0,0): anon05
(0,0): inline$SetG_1$0$Entry