diff options
Diffstat (limited to 'tests/ui/box/large-allocator-ice.rs')
-rw-r--r-- | tests/ui/box/large-allocator-ice.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/ui/box/large-allocator-ice.rs b/tests/ui/box/large-allocator-ice.rs new file mode 100644 index 000000000..b3a882ff0 --- /dev/null +++ b/tests/ui/box/large-allocator-ice.rs @@ -0,0 +1,29 @@ +// build-pass +#![feature(allocator_api)] +#![allow(unused_must_use)] + +use std::alloc::Allocator; + +struct BigAllocator([usize; 2]); + +unsafe impl Allocator for BigAllocator { + fn allocate( + &self, + _: std::alloc::Layout, + ) -> Result<std::ptr::NonNull<[u8]>, std::alloc::AllocError> { + todo!() + } + unsafe fn deallocate(&self, _: std::ptr::NonNull<u8>, _: std::alloc::Layout) { + todo!() + } +} + +fn main() { + Box::new_in((), &std::alloc::Global); + Box::new_in((), BigAllocator([0; 2])); + generic_function(0); +} + +fn generic_function<T>(val: T) { + *Box::new_in(val, &std::alloc::Global); +} |