summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorGravatar Valentin Wüstholz <wuestholz@gmail.com>2015-12-28 20:22:03 -0600
committerGravatar Valentin Wüstholz <wuestholz@gmail.com>2015-12-28 20:22:03 -0600
commitdd8e69b7b71a9375b7206a70633deae234175ef8 (patch)
tree3ec3a9796afb6ce8c808a407c672237ce94f4b78 /Source
parent1c16dc829c81426e17427c0d103ed831a48f1f81 (diff)
Improve precision of abstract interpreter for modulo operations.
Diffstat (limited to 'Source')
-rw-r--r--Source/AbsInt/IntervalDomain.cs4
1 files changed, 4 insertions, 0 deletions
diff --git a/Source/AbsInt/IntervalDomain.cs b/Source/AbsInt/IntervalDomain.cs
index ee9d632b..2fd37463 100644
--- a/Source/AbsInt/IntervalDomain.cs
+++ b/Source/AbsInt/IntervalDomain.cs
@@ -884,6 +884,10 @@ namespace Microsoft.Boogie.AbstractInterpretation
if (lo0 != null && lo1 != null && 0 <= (BigInteger)lo0 && 0 <= (BigInteger)lo1) {
Lo = BigInteger.Zero;
Hi = hi1;
+ if (lo0 < lo1 && hi0 != null && hi0 < lo1) {
+ Lo = lo0;
+ Hi = hi0;
+ }
}
break;
case BinaryOperator.Opcode.RealDiv: