#![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 }