Skip to content

Commit 346f8f2

Browse files
committed
Auto merge of #2036 - RalfJung:vec, r=RalfJung
regression test for reverse() unsoundness Cc rust-lang/rust#90821
2 parents d46b648 + 951ac65 commit 346f8f2

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

tests/run-pass/vec.rs

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// compile-flags: -Zmiri-tag-raw-pointers
1+
// compile-flags: -Zmiri-tag-raw-pointers -Zmiri-check-number-validity
22
// Gather all references from a mutable iterator and make sure Miri notices if
33
// using them is dangerous.
44
fn test_all_refs<'a, T: 'a>(dummy: &mut T, iter: impl Iterator<Item = &'a mut T>) {
@@ -148,6 +148,16 @@ fn swap_remove() {
148148
vec.swap_remove(1);
149149
}
150150

151+
fn reverse() {
152+
#[repr(align(2))]
153+
#[derive(Debug)]
154+
struct Foo(u8);
155+
156+
let mut v: Vec<_> = (0..50).map(Foo).collect();
157+
v.reverse();
158+
assert!(v[0].0 == 49);
159+
}
160+
151161
fn main() {
152162
assert_eq!(vec_reallocate().len(), 5);
153163

@@ -176,4 +186,5 @@ fn main() {
176186
sort();
177187
swap();
178188
swap_remove();
189+
reverse();
179190
}

0 commit comments

Comments
 (0)