| #![feature(default_alloc_error_handler)] |
| #![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() { |
| 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))] |
| #[no_mangle] |
| static __rust_no_alloc_shim_is_unstable: u8 = 0; |
| |
| #[no_mangle] |
| extern "C" fn main(_argc: usize, _argv: *const *const i8) -> i32 { |
| unsafe { |
| assert_eq!(alloc::alloc::alloc(Layout::new::<()>()), core::ptr::null_mut()); |
| } |
| |
| 0 |
| } |