summaryrefslogtreecommitdiff
path: root/Source/VCGeneration
diff options
context:
space:
mode:
authorGravatar akashlal <unknown>2012-05-30 10:53:52 +0530
committerGravatar akashlal <unknown>2012-05-30 10:53:52 +0530
commit333fb97a740a68bf67d312764323541ae3046a42 (patch)
tree9d54ecbbf598f4071676968e9d61503acbd9387d /Source/VCGeneration
parentda6ed3ad64c45ac4e1e7b8feafdc6d1aada79a7f (diff)
extra recursion bound
Diffstat (limited to 'Source/VCGeneration')
-rw-r--r--Source/VCGeneration/StratifiedVC.cs16
1 files changed, 14 insertions, 2 deletions
diff --git a/Source/VCGeneration/StratifiedVC.cs b/Source/VCGeneration/StratifiedVC.cs
index 098d069c..fbb8f878 100644
--- a/Source/VCGeneration/StratifiedVC.cs
+++ b/Source/VCGeneration/StratifiedVC.cs
@@ -1873,9 +1873,21 @@ namespace VC {
if (getProc(id) == str && !forcedCandidates.Contains(id)) ret++;
}
- if (extraRecursion.ContainsKey(str)) ret -= extraRecursion[str];
+ // Usual
+ if (!extraRecursion.ContainsKey(str))
+ return ret;
- return ret;
+ // Usual
+ if (ret <= CommandLineOptions.Clo.RecursionBound - 1)
+ return ret;
+
+ // Special
+ if (ret >= CommandLineOptions.Clo.RecursionBound &&
+ ret <= CommandLineOptions.Clo.RecursionBound + extraRecursion[str] - 1)
+ return CommandLineOptions.Clo.RecursionBound - 1;
+
+ // Special
+ return ret - extraRecursion[str];
}
// Set user-define increment/decrement to recursionBound