about summary refs log tree commit diff
diff options
context:
space:
mode:
authorest31 <MTest31@outlook.com>2016-11-28 02:18:34 +0100
committerest31 <MTest31@outlook.com>2016-12-30 15:17:28 +0100
commitc79aba71d5a0573a6f9cd270dac60d92c611236c (patch)
tree65a481e7b835dadddefa6750b5f73de13a85512f
parent3b34f90bc1f230737516a799e59dbd3425aab04b (diff)
downloadrust-c79aba71d5a0573a6f9cd270dac60d92c611236c.tar.gz
rust-c79aba71d5a0573a6f9cd270dac60d92c611236c.zip
40 -> 39, as ceil(log10(2^128)) == 39
just as ceil(log10(2^64)) == 20
-rw-r--r--src/libcore/fmt/num.rs2
-rw-r--r--src/test/run-pass/u128.rs2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/libcore/fmt/num.rs b/src/libcore/fmt/num.rs
index 7b6c2d48889..cd725392b66 100644
--- a/src/libcore/fmt/num.rs
+++ b/src/libcore/fmt/num.rs
@@ -211,7 +211,7 @@ macro_rules! impl_Display {
                 // convert the negative num to positive by summing 1 to it's 2 complement
                 (!self.$conv_fn()).wrapping_add(1)
             };
-            let mut buf: [u8; 40] = unsafe { mem::uninitialized() };
+            let mut buf: [u8; 39] = unsafe { mem::uninitialized() };
             let mut curr = buf.len() as isize;
             let buf_ptr = buf.as_mut_ptr();
             let lut_ptr = DEC_DIGITS_LUT.as_ptr();
diff --git a/src/test/run-pass/u128.rs b/src/test/run-pass/u128.rs
index bd6ff46e8f4..d138e09318b 100644
--- a/src/test/run-pass/u128.rs
+++ b/src/test/run-pass/u128.rs
@@ -59,6 +59,8 @@ fn main() {
     assert_eq!("20000000000000000000000", format!("{:o}", j));
     assert_eq!("10000000000000000000000000000000000000000000000000000000000000000000",
                format!("{:b}", j));
+    assert_eq!("340282366920938463463374607431768211455",
+        format!("{}", u128::max_value()));
     assert_eq!("147573952589676412928", format!("{:?}", j));
     // common traits
     x.clone();