about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2022-12-23 15:49:23 +0100
committerRalf Jung <post@ralfj.de>2022-12-23 15:49:23 +0100
commita48d2e178385a031eb4875deb09d728344d2912f (patch)
treec64cf0ad3c1706109fd365268653663dc300b3d2 /src
parentd0f404d77a4efefa132346c507738d9a5c6e69b4 (diff)
downloadrust-a48d2e178385a031eb4875deb09d728344d2912f.tar.gz
rust-a48d2e178385a031eb4875deb09d728344d2912f.zip
fix one more unaligned self.ptr, and add tests
Diffstat (limited to 'src')
-rw-r--r--src/tools/miri/tests/pass/vec.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/tools/miri/tests/pass/vec.rs b/src/tools/miri/tests/pass/vec.rs
index a165c7c2fe7..fb1d8e306f2 100644
--- a/src/tools/miri/tests/pass/vec.rs
+++ b/src/tools/miri/tests/pass/vec.rs
@@ -1,4 +1,6 @@
 //@compile-flags: -Zmiri-strict-provenance
+#![feature(iter_advance_by, iter_next_chunk)]
+
 // Gather all references from a mutable iterator and make sure Miri notices if
 // using them is dangerous.
 fn test_all_refs<'a, T: 'a>(dummy: &mut T, iter: impl Iterator<Item = &'a mut T>) {
@@ -44,6 +46,18 @@ fn vec_into_iter_zst() {
     for _ in vec![[0u64; 0]].into_iter() {}
     let v = vec![[0u64; 0], [0u64; 0]].into_iter().map(|x| x.len()).sum::<usize>();
     assert_eq!(v, 0);
+
+    let mut it = vec![[0u64; 0], [0u64; 0]].into_iter();
+    it.advance_by(1);
+    drop(it);
+
+    let mut it = vec![[0u64; 0], [0u64; 0]].into_iter();
+    it.next_chunk::<1>().unwrap();
+    drop(it);
+
+    let mut it = vec![[0u64; 0], [0u64; 0]].into_iter();
+    it.next_chunk::<4>().unwrap_err();
+    drop(it);
 }
 
 fn vec_into_iter_rev_zst() {