//@ min-lldb-version: 1800 //@ min-gdb-version: 13.0 //@ compile-flags: -g -Copt-level=3 //@ disable-gdb-pretty-printers // Checks that we still can access dead variables from debuginfos. // === GDB TESTS =================================================================================== //@ gdb-command:run //@ gdb-command:print *ref_v0 //@ gdb-check:$1 = 0 //@ gdb-command:print *ref_v1 //@ gdb-check:$2 = 1 //@ gdb-command:print *ref_v2 //@ gdb-check:$3 = 2 // === LLDB TESTS ================================================================================== //@ lldb-command:run //@ lldb-command:v *ref_v0 //@ lldb-check:[...] 0 //@ lldb-command:v *ref_v1 //@ lldb-check:[...] 1 //@ lldb-command:v *ref_v2 //@ lldb-check:[...] 2 #![allow(unused_variables)] use std::hint::black_box; pub struct Foo(i32, i64, i32); #[inline(never)] #[no_mangle] fn test_ref(ref_foo: &Foo) -> i32 { let ref_v0 = &ref_foo.0; let ref_v1 = &ref_foo.1; let ref_v2 = &ref_foo.2; ref_foo.0 // #break } fn main() { let foo = black_box(Foo(0, 1, 2)); black_box(test_ref(&foo)); }