summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar mkawa <unknown>2009-11-07 03:04:26 +0000
committerGravatar mkawa <unknown>2009-11-07 03:04:26 +0000
commitc9c423ce3bde91f736266f8c9ae883b9e44acc70 (patch)
treedb3fb62067ffab6e574d3c884ccf8e605f0d8998
parent8718c8de05f07ffbb3ccbceee550a9c88a599947 (diff)
Fixes crash when modifies set includes a variable twice.
-rw-r--r--Source/VCGeneration/ConditionGeneration.ssc3
1 files changed, 2 insertions, 1 deletions
diff --git a/Source/VCGeneration/ConditionGeneration.ssc b/Source/VCGeneration/ConditionGeneration.ssc
index 9bfa56ab..836d8c0a 100644
--- a/Source/VCGeneration/ConditionGeneration.ssc
+++ b/Source/VCGeneration/ConditionGeneration.ssc
@@ -513,7 +513,8 @@ namespace VC
Hashtable/*Variable!->Expr!*/ oldFrameMap = new Hashtable();
assume impl.Proc != null;
foreach (IdentifierExpr! ie in impl.Proc.Modifies) {
- oldFrameMap.Add((!)ie.Decl, ie);
+ if (!oldFrameMap.Contains((!)ie.Decl))
+ oldFrameMap.Add(ie.Decl, ie);
}
Substitution oldFrameSubst = Substituter.SubstitutionFromHashtable(oldFrameMap);