forked from M-Labs/artiq
parent
e285fe0d56
commit
0e32a165c2
|
@ -1,4 +1,4 @@
|
|||
#![feature(lang_items, never_type)]
|
||||
#![feature(never_type, panic_implementation, panic_info_message)]
|
||||
#![no_std]
|
||||
|
||||
#[macro_use]
|
||||
|
@ -328,10 +328,18 @@ pub extern fn abort() {
|
|||
loop {}
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[lang = "panic_fmt"]
|
||||
pub extern fn panic_fmt(args: core::fmt::Arguments, file: &'static str,
|
||||
line: u32, column: u32) -> ! {
|
||||
println!("panic at {}:{}:{}: {}", file, line, column, args);
|
||||
#[no_mangle] // https://github.com/rust-lang/rust/issues/{38281,51647}
|
||||
#[panic_implementation]
|
||||
pub fn panic_fmt(info: &core::panic::PanicInfo) -> ! {
|
||||
if let Some(location) = info.location() {
|
||||
print!("panic at {}:{}:{}", location.file(), location.line(), location.column());
|
||||
} else {
|
||||
print!("panic at unknown location");
|
||||
}
|
||||
if let Some(message) = info.message() {
|
||||
println!(": {}", message);
|
||||
} else {
|
||||
println!("");
|
||||
}
|
||||
loop {}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue