diff options
| author | Ralf Jung <post@ralfj.de> | 2024-03-05 11:32:03 +0100 | 
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2024-03-05 15:03:33 +0100 | 
| commit | f391c0793b443d30ef8c4d4228550439d4dbfead (patch) | |
| tree | a5da4c5407252088c561dc674881cffa5f833fae /tests/codegen/function-arguments.rs | |
| parent | 5a1e5449c8f4cb6b12b4f64238e3c058767ebf02 (diff) | |
| download | rust-f391c0793b443d30ef8c4d4228550439d4dbfead.tar.gz rust-f391c0793b443d30ef8c4d4228550439d4dbfead.zip | |
only set noalias on Box with the global allocator
Diffstat (limited to 'tests/codegen/function-arguments.rs')
| -rw-r--r-- | tests/codegen/function-arguments.rs | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/tests/codegen/function-arguments.rs b/tests/codegen/function-arguments.rs index b75c188f51a..e6e2f645714 100644 --- a/tests/codegen/function-arguments.rs +++ b/tests/codegen/function-arguments.rs @@ -2,6 +2,7 @@ #![crate_type = "lib"] #![feature(dyn_star)] #![feature(generic_nonzero)] +#![feature(allocator_api)] use std::mem::MaybeUninit; use std::num::NonZero; @@ -182,6 +183,15 @@ pub fn _box(x: Box<i32>) -> Box<i32> { x } +// With a custom allocator, it should *not* have `noalias`. (See +// <https://github.com/rust-lang/miri/issues/3341> for why.) The second argument is the allocator, +// which is a reference here that still carries `noalias` as usual. +// CHECK: @_box_custom(ptr noundef nonnull align 4 %x.0, ptr noalias noundef nonnull readonly align 1 %x.1) +#[no_mangle] +pub fn _box_custom(x: Box<i32, &std::alloc::Global>) { + drop(x) +} + // CHECK: noundef nonnull align 4 ptr @notunpin_box(ptr noundef nonnull align 4 %x) #[no_mangle] pub fn notunpin_box(x: Box<NotUnpin>) -> Box<NotUnpin> { | 
