| #![feature(rustc_attrs)] | |
| #![no_std] | |
| #![no_main] | |
| extern crate alloc; | |
| use alloc::alloc::{GlobalAlloc, Layout}; | |
| #[panic_handler] | |
| fn panic_handler(_: &core::panic::PanicInfo) -> ! { | |
| loop {} | |
| } | |
| #[no_mangle] | |
| extern "C" fn rust_eh_personality( | |
| _version: i32, | |
| _actions: i32, | |
| _exception_class: u64, | |
| _exception_object: *mut (), | |
| _context: *mut (), | |
| ) -> i32 { | |
| loop {} | |
| } | |
| #[global_allocator] | |
| static ALLOC: Alloc = Alloc; | |
| struct Alloc; | |
| unsafe impl GlobalAlloc for Alloc { | |
| unsafe fn alloc(&self, _: Layout) -> *mut u8 { | |
| core::ptr::null_mut() | |
| } | |
| unsafe fn dealloc(&self, _: *mut u8, _: Layout) { | |
| todo!() | |
| } | |
| } | |
| #[cfg(not(check_feature_gate))] | |
| #[rustc_std_internal_symbol] | |
| fn __rust_no_alloc_shim_is_unstable_v2() {} | |
| #[no_mangle] | |
| extern "C" fn main(_argc: core::ffi::c_int, _argv: *const *const i8) -> i32 { | |
| unsafe { | |
| assert_eq!(alloc::alloc::alloc(Layout::new::<()>()), core::ptr::null_mut()); | |
| } | |
| 0 | |
| } |