diff options
Diffstat (limited to 'tests/codegen-llvm/gdb_debug_script_load.rs')
| -rw-r--r-- | tests/codegen-llvm/gdb_debug_script_load.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/codegen-llvm/gdb_debug_script_load.rs b/tests/codegen-llvm/gdb_debug_script_load.rs new file mode 100644 index 00000000000..3e92eba10b1 --- /dev/null +++ b/tests/codegen-llvm/gdb_debug_script_load.rs @@ -0,0 +1,37 @@ +// +//@ 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() {} |
