mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-18 03:25:55 +00:00
3082865e6c
I can't figure out how to link with the MSVC toolchain
45 lines
833 B
Rust
45 lines
833 B
Rust
#![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
|
|
}
|