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