//@ 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);
}
