about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2015-03-30 01:23:15 +0200
committerFelix S. Klock II <pnkfelix@pnkfx.org>2015-04-01 02:56:07 +0200
commit8d54ea3ec9c48eaeaab8fa9061cf28c2678e8ae9 (patch)
treeff336226413b38a84ac3afe29b5bb172f0f4473a
parent6808e414c7b29bfb066c1bbabff684bde1190a4e (diff)
downloadrust-8d54ea3ec9c48eaeaab8fa9061cf28c2678e8ae9.tar.gz
rust-8d54ea3ec9c48eaeaab8fa9061cf28c2678e8ae9.zip
Fallout from changes for overflow-checking during constant evaluation.
-rw-r--r--src/libcoretest/num/uint_macros.rs2
-rw-r--r--src/libstd/old_io/extensions.rs3
-rw-r--r--src/test/compile-fail/non-constant-enum-for-vec-repeat.rs5
-rw-r--r--src/test/compile-fail/non-constant-expr-for-vec-repeat.rs3
-rw-r--r--src/test/run-pass/big-literals.rs7
-rw-r--r--src/test/run-pass/small-enum-range-edge.rs4
6 files changed, 17 insertions, 7 deletions
diff --git a/src/libcoretest/num/uint_macros.rs b/src/libcoretest/num/uint_macros.rs
index 39e41a4fad3..e3eff6e7512 100644
--- a/src/libcoretest/num/uint_macros.rs
+++ b/src/libcoretest/num/uint_macros.rs
@@ -20,7 +20,7 @@ mod tests {
     fn test_overflows() {
         assert!(MAX > 0);
         assert!(MIN <= 0);
-        assert!(MIN + MAX + 1 == 0);
+        assert!((MIN + MAX).wrapping_add(1) == 0);
     }
 
     #[test]
diff --git a/src/libstd/old_io/extensions.rs b/src/libstd/old_io/extensions.rs
index 0e5dd3aa4aa..aec794af759 100644
--- a/src/libstd/old_io/extensions.rs
+++ b/src/libstd/old_io/extensions.rs
@@ -519,7 +519,8 @@ mod bench {
         ({
             use super::u64_from_be_bytes;
 
-            let data = (0..$stride*100+$start_index).collect::<Vec<_>>();
+            let len = $stride.wrapping_mul(100).wrapping_add($start_index);
+            let data = (0..len).collect::<Vec<_>>();
             let mut sum = 0;
             $b.iter(|| {
                 let mut i = $start_index;
diff --git a/src/test/compile-fail/non-constant-enum-for-vec-repeat.rs b/src/test/compile-fail/non-constant-enum-for-vec-repeat.rs
index 0212adff305..a7cabae16be 100644
--- a/src/test/compile-fail/non-constant-enum-for-vec-repeat.rs
+++ b/src/test/compile-fail/non-constant-enum-for-vec-repeat.rs
@@ -8,9 +8,12 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// Note: This test is checking that we forbid a coding pattern that
+// Issue #5873 explicitly wants to allow.
+
 enum State { ST_NULL, ST_WHITESPACE }
 
 fn main() {
     [State::ST_NULL; (State::ST_WHITESPACE as usize)];
-    //~^ ERROR expected constant integer for repeat count, found non-constant expression
+    //~^ ERROR expected constant integer for repeat count, but non-constant path
 }
diff --git a/src/test/compile-fail/non-constant-expr-for-vec-repeat.rs b/src/test/compile-fail/non-constant-expr-for-vec-repeat.rs
index 26528543b43..3ce206ff7fb 100644
--- a/src/test/compile-fail/non-constant-expr-for-vec-repeat.rs
+++ b/src/test/compile-fail/non-constant-expr-for-vec-repeat.rs
@@ -12,6 +12,7 @@
 
 fn main() {
     fn bar(n: usize) {
-        let _x = [0; n]; //~ ERROR expected constant integer for repeat count, found variable
+        let _x = [0; n];
+        //~^ ERROR expected constant integer for repeat count, found variable
     }
 }
diff --git a/src/test/run-pass/big-literals.rs b/src/test/run-pass/big-literals.rs
index 09746380eba..ff13a1345d2 100644
--- a/src/test/run-pass/big-literals.rs
+++ b/src/test/run-pass/big-literals.rs
@@ -10,11 +10,16 @@
 
 // pretty-expanded FIXME #23616
 
+#![feature(core)]
+
+// Catch mistakes in the overflowing literals lint.
+#![deny(overflowing_literals)]
+
 pub fn main() {
     assert_eq!(0xffffffff, (-1 as u32));
     assert_eq!(4294967295, (-1 as u32));
     assert_eq!(0xffffffffffffffff, (-1 as u64));
     assert_eq!(18446744073709551615, (-1 as u64));
 
-    assert_eq!(-2147483648 - 1, 2147483647);
+    assert_eq!((-2147483648).wrapping_sub(1), 2147483647);
 }
diff --git a/src/test/run-pass/small-enum-range-edge.rs b/src/test/run-pass/small-enum-range-edge.rs
index df204065d16..ded66fb86ad 100644
--- a/src/test/run-pass/small-enum-range-edge.rs
+++ b/src/test/run-pass/small-enum-range-edge.rs
@@ -29,8 +29,8 @@ static CLs: Es = Es::Ls;
 static CHs: Es = Es::Hs;
 
 pub fn main() {
-    assert_eq!((Eu::Hu as u8) + 1, Eu::Lu as u8);
-    assert_eq!((Es::Hs as i8) + 1, Es::Ls as i8);
+    assert_eq!((Eu::Hu as u8).wrapping_add(1), Eu::Lu as u8);
+    assert_eq!((Es::Hs as i8).wrapping_add(1), Es::Ls as i8);
     assert_eq!(CLu as u8, Eu::Lu as u8);
     assert_eq!(CHu as u8, Eu::Hu as u8);
     assert_eq!(CLs as i8, Es::Ls as i8);