]> git.lizzy.rs Git - rust.git/commitdiff
regression test for reverse() unsoundness
authorRalf Jung <post@ralfj.de>
Tue, 22 Mar 2022 18:28:36 +0000 (14:28 -0400)
committerRalf Jung <post@ralfj.de>
Tue, 22 Mar 2022 18:28:36 +0000 (14:28 -0400)
tests/run-pass/vec.rs

index 44e25387fff470d92c9037e1bd517ea92e6aaa44..102396f4b91f74e151ac4e72a17101784793b90f 100644 (file)
@@ -148,6 +148,16 @@ fn swap_remove() {
     vec.swap_remove(1);
 }
 
+fn reverse() {
+    #[repr(align(2))]
+    #[derive(Debug)]
+    struct Foo(u8);
+
+    let mut v: Vec<_> = (0..50).map(Foo).collect();
+    v.reverse();
+    assert!(v[0].0 == 49);
+}
+
 fn main() {
     assert_eq!(vec_reallocate().len(), 5);
 
@@ -176,4 +186,5 @@ fn main() {
     sort();
     swap();
     swap_remove();
+    reverse();
 }