diff options
author | Clément Pit--Claudel <clement.pitclaudel@live.com> | 2015-06-12 14:28:42 -0700 |
---|---|---|
committer | Clément Pit--Claudel <clement.pitclaudel@live.com> | 2015-06-12 14:28:42 -0700 |
commit | e054e59a6deda9793b66cf78374b75f7d557bef8 (patch) | |
tree | 1abd91a2131a7b8b78202b9552eb2b6a52eee618 /Test/dafny4/LargeConstants.dfy | |
parent | ce8e8a618315dd03f4762c261ed96e7815a976cf (diff) |
Fix a bug spotted by Chris in my BigInteger patch; thanks!
The problem was this:
Console.WriteLine(Int64.Parse("08000000000000000", NumberStyles.HexNumber));
// => -9223372036854775808
Console.WriteLine(Int64.Parse("9223372036854775808"));
// => Value was either too large or too small for an Int64.
In other words, large hex numbers are interpreted as a sequence of bits, not as
an actual number.
Diffstat (limited to 'Test/dafny4/LargeConstants.dfy')
-rw-r--r-- | Test/dafny4/LargeConstants.dfy | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Test/dafny4/LargeConstants.dfy b/Test/dafny4/LargeConstants.dfy new file mode 100644 index 00000000..18435c30 --- /dev/null +++ b/Test/dafny4/LargeConstants.dfy @@ -0,0 +1,14 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
+lemma largeIsLarge()
+ ensures 0x8000000000000000 > 0 {
+}
+
+lemma SmallIsSmall()
+ ensures -0x8000000000000000 < 0 {
+}
+
+lemma ShouldCancelOut()
+ ensures -0x8000000000000000 + 0x8000000000000000 == 0 {
+}
|