|  | // | 
|  | //@ ignore-windows | 
|  | //@ ignore-apple | 
|  | //@ ignore-wasm | 
|  | //@ ignore-emscripten | 
|  |  | 
|  | //@ compile-flags: -g -C no-prepopulate-passes -Cpanic=abort | 
|  |  | 
|  | #![feature(lang_items)] | 
|  | #![no_std] | 
|  |  | 
|  | #[panic_handler] | 
|  | fn panic_handler(_: &core::panic::PanicInfo) -> ! { | 
|  | loop {} | 
|  | } | 
|  |  | 
|  | #[no_mangle] | 
|  | extern "C" fn rust_eh_personality() { | 
|  | loop {} | 
|  | } | 
|  |  | 
|  | // Needs rustc to generate `main` as that's where the magic load is inserted. | 
|  | // IOW, we cannot write this test with `#![no_main]`. | 
|  | // CHECK-LABEL: @main | 
|  | // CHECK: load volatile i8, {{.+}} @__rustc_debug_gdb_scripts_section__ | 
|  |  | 
|  | #[lang = "start"] | 
|  | fn lang_start<T: 'static>( | 
|  | _main: fn() -> T, | 
|  | _argc: isize, | 
|  | _argv: *const *const u8, | 
|  | _sigpipe: u8, | 
|  | ) -> isize { | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | fn main() {} |