]> git.lizzy.rs Git - rust.git/commitdiff
fix comment in alignment test
authorRalf Jung <post@ralfj.de>
Tue, 14 Apr 2020 07:50:20 +0000 (09:50 +0200)
committerRalf Jung <post@ralfj.de>
Tue, 14 Apr 2020 07:50:20 +0000 (09:50 +0200)
tests/compile-fail/unaligned_pointers/alignment.rs
tests/compile-fail/unaligned_pointers/intptrcast_alignment_check.rs

index b732a949af8763f67ae3d266d0d43b480cb19bad..8532f91a5c0060ae77a5e8cf182df6d1409c31ce 100644 (file)
@@ -1,11 +1,11 @@
 fn main() {
-    // miri always gives allocations the worst possible alignment, so a `u8` array is guaranteed
-    // to be at the virtual location 1 (so one byte offset from the ultimate alignemnt location 0)
     let mut x = [0u8; 20];
     let x_ptr: *mut u8 = x.as_mut_ptr();
-    let y_ptr = x_ptr as *mut u64;
+    // At least one of these is definitely unaligned.
+    // Currently, we guarantee to complain about the first one already (https://github.com/rust-lang/miri/issues/1074).
     unsafe {
-        *y_ptr = 42; //~ ERROR accessing memory with alignment 1, but alignment
+        *(x_ptr as *mut u64) = 42; //~ ERROR accessing memory with alignment 1, but alignment
+        *(x_ptr.add(1) as *mut u64) = 42;
     }
     panic!("unreachable in miri");
 }
index 1a8df5eacede810bc6b4871c527e6427c0b989ad..0a3b48dab5a0c2052634791b4782048d478db1ca 100644 (file)
@@ -2,6 +2,8 @@
 // that arise from pointers being insufficiently aligned. The only way to achieve
 // that is not not let programs exploit integer information for alignment, so here
 // we test that this is indeed the case.
+//
+// See https://github.com/rust-lang/miri/issues/1074.
 fn main() {
     let x = &mut [0u8; 3];
     let base_addr = x as *mut _ as usize;