diff options
| author | Folkert de Vries <folkert@folkertdev.nl> | 2025-08-19 22:16:58 +0200 |
|---|---|---|
| committer | Folkert de Vries <folkert@folkertdev.nl> | 2025-08-20 00:35:42 +0200 |
| commit | d25910eaeb3eab25d3bbf9b9815e6d215c202d1f (patch) | |
| tree | c25781e3b114a692b28af15b566c5327e2cf5c9b /src | |
| parent | 51df7aabbe3140ccca1f63617d7cfdb883509239 (diff) | |
| download | rust-d25910eaeb3eab25d3bbf9b9815e6d215c202d1f.tar.gz rust-d25910eaeb3eab25d3bbf9b9815e6d215c202d1f.zip | |
make `prefetch` intrinsics safe
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/miri/tests/pass/prefetch.rs | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/tools/miri/tests/pass/prefetch.rs b/src/tools/miri/tests/pass/prefetch.rs index 09352695989..99c75c38bde 100644 --- a/src/tools/miri/tests/pass/prefetch.rs +++ b/src/tools/miri/tests/pass/prefetch.rs @@ -1,23 +1,23 @@ #![feature(core_intrinsics)] +// Test that these intrinsics work. Their behavior should be a no-op. + fn main() { static X: [u8; 8] = [0; 8]; - unsafe { - ::std::intrinsics::prefetch_read_data(::std::ptr::null::<u8>(), 1); - ::std::intrinsics::prefetch_read_data(::std::ptr::dangling::<u8>(), 2); - ::std::intrinsics::prefetch_read_data(X.as_ptr(), 3); + ::std::intrinsics::prefetch_read_data::<_, 1>(::std::ptr::null::<u8>()); + ::std::intrinsics::prefetch_read_data::<_, 2>(::std::ptr::dangling::<u8>()); + ::std::intrinsics::prefetch_read_data::<_, 3>(X.as_ptr()); - ::std::intrinsics::prefetch_write_data(::std::ptr::null::<u8>(), 1); - ::std::intrinsics::prefetch_write_data(::std::ptr::dangling::<u8>(), 2); - ::std::intrinsics::prefetch_write_data(X.as_ptr(), 3); + ::std::intrinsics::prefetch_write_data::<_, 1>(::std::ptr::null::<u8>()); + ::std::intrinsics::prefetch_write_data::<_, 2>(::std::ptr::dangling::<u8>()); + ::std::intrinsics::prefetch_write_data::<_, 3>(X.as_ptr()); - ::std::intrinsics::prefetch_read_instruction(::std::ptr::null::<u8>(), 1); - ::std::intrinsics::prefetch_read_instruction(::std::ptr::dangling::<u8>(), 2); - ::std::intrinsics::prefetch_read_instruction(X.as_ptr(), 3); + ::std::intrinsics::prefetch_read_instruction::<_, 1>(::std::ptr::null::<u8>()); + ::std::intrinsics::prefetch_read_instruction::<_, 2>(::std::ptr::dangling::<u8>()); + ::std::intrinsics::prefetch_read_instruction::<_, 3>(X.as_ptr()); - ::std::intrinsics::prefetch_write_instruction(::std::ptr::null::<u8>(), 1); - ::std::intrinsics::prefetch_write_instruction(::std::ptr::dangling::<u8>(), 2); - ::std::intrinsics::prefetch_write_instruction(X.as_ptr(), 3); - } + ::std::intrinsics::prefetch_write_instruction::<_, 1>(::std::ptr::null::<u8>()); + ::std::intrinsics::prefetch_write_instruction::<_, 2>(::std::ptr::dangling::<u8>()); + ::std::intrinsics::prefetch_write_instruction::<_, 3>(X.as_ptr()); } |
