//@ ignore-lldb // Test that line numbers are not replaced with those of the outermost expansion site when // `-C collapse-macro-debuginfo=false` is passed, despite `#[collapse_debuginfo]` being used. //@ compile-flags:-g -C collapse-macro-debuginfo=false // === GDB TESTS =================================================================================== // gdb-command:run // gdb-command:next // gdb-command:frame // gdb-check:[...]#loc1[...] // gdb-command:next // gdb-command:frame // gdb-check:[...]#loc2[...] // gdb-command:next // gdb-command:frame // gdb-check:[...]#loc3[...] // gdb-command:next // gdb-command:frame // gdb-check:[...]#loc4[...] // gdb-command:continue fn one() { println!("one"); } fn two() { println!("two"); } fn three() { println!("three"); } fn four() { println!("four"); } #[collapse_debuginfo(yes)] macro_rules! outer { ($b:block) => { one(); // #loc1 inner!(); $b }; } #[collapse_debuginfo(yes)] macro_rules! inner { () => { two(); // #loc2 }; } fn main() { let ret = 0; // #break outer!({ three(); // #loc3 four(); // #loc4 }); std::process::exit(ret); }