| // LLDB 1800+ tests were not tested in CI, broke, and now are disabled | |
| //@ ignore-lldb | |
| //@ 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)); | |
| } |