mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-30 02:33:55 +00:00
36 lines
560 B
Rust
36 lines
560 B
Rust
#![feature(panic_handler, alloc_error_handler)]
|
|
#![crate_type = "cdylib"]
|
|
#![no_std]
|
|
|
|
use core::alloc::*;
|
|
|
|
struct B;
|
|
|
|
unsafe impl GlobalAlloc for B {
|
|
unsafe fn alloc(&self, x: Layout) -> *mut u8 {
|
|
1 as *mut u8
|
|
}
|
|
|
|
unsafe fn dealloc(&self, ptr: *mut u8, x: Layout) {
|
|
}
|
|
}
|
|
|
|
#[global_allocator]
|
|
static A: B = B;
|
|
|
|
#[no_mangle]
|
|
pub extern fn foo(a: u32) -> u32 {
|
|
assert_eq!(a, 3);
|
|
a * 2
|
|
}
|
|
|
|
#[alloc_error_handler]
|
|
fn a(_: core::alloc::Layout) -> ! {
|
|
loop {}
|
|
}
|
|
|
|
#[panic_handler]
|
|
fn b(_: &core::panic::PanicInfo) -> ! {
|
|
loop {}
|
|
}
|