From c79aba71d5a0573a6f9cd270dac60d92c611236c Mon Sep 17 00:00:00 2001 From: est31 Date: Mon, 28 Nov 2016 02:18:34 +0100 Subject: [PATCH] 40 -> 39, as ceil(log10(2^128)) == 39 just as ceil(log10(2^64)) == 20 --- src/libcore/fmt/num.rs | 2 +- src/test/run-pass/u128.rs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) 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();