diff options
author | mkawa <unknown> | 2009-11-07 03:04:26 +0000 |
---|---|---|
committer | mkawa <unknown> | 2009-11-07 03:04:26 +0000 |
commit | c9c423ce3bde91f736266f8c9ae883b9e44acc70 (patch) | |
tree | db3fb62067ffab6e574d3c884ccf8e605f0d8998 | |
parent | 8718c8de05f07ffbb3ccbceee550a9c88a599947 (diff) |
Fixes crash when modifies set includes a variable twice.
-rw-r--r-- | Source/VCGeneration/ConditionGeneration.ssc | 3 |
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);
|