//@ compile-flags:-g

// === GDB TESTS ===================================================================================

// gdb-command:run

// BEFORE if
// gdb-command:print x
// gdb-check:$1 = 999
// gdb-command:print y
// gdb-check:$2 = -1
// gdb-command:continue

// AT BEGINNING of 'then' block
// gdb-command:print x
// gdb-check:$3 = 999
// gdb-command:print y
// gdb-check:$4 = -1
// gdb-command:continue

// AFTER 1st redeclaration of 'x'
// gdb-command:print x
// gdb-check:$5 = 1001
// gdb-command:print y
// gdb-check:$6 = -1
// gdb-command:continue

// AFTER 2st redeclaration of 'x'
// gdb-command:print x
// gdb-check:$7 = 1002
// gdb-command:print y
// gdb-check:$8 = 1003
// gdb-command:continue

// AFTER 1st if expression
// gdb-command:print x
// gdb-check:$9 = 999
// gdb-command:print y
// gdb-check:$10 = -1
// gdb-command:continue

// BEGINNING of else branch
// gdb-command:print x
// gdb-check:$11 = 999
// gdb-command:print y
// gdb-check:$12 = -1
// gdb-command:continue

// BEGINNING of else branch
// gdb-command:print x
// gdb-check:$13 = 1004
// gdb-command:print y
// gdb-check:$14 = 1005
// gdb-command:continue

// BEGINNING of else branch
// gdb-command:print x
// gdb-check:$15 = 999
// gdb-command:print y
// gdb-check:$16 = -1
// gdb-command:continue


// === LLDB TESTS ==================================================================================

// lldb-command:run

// BEFORE if
// lldb-command:v x
// lldb-check:[...] 999
// lldb-command:v y
// lldb-check:[...] -1
// lldb-command:continue

// AT BEGINNING of 'then' block
// lldb-command:v x
// lldb-check:[...] 999
// lldb-command:v y
// lldb-check:[...] -1
// lldb-command:continue

// AFTER 1st redeclaration of 'x'
// lldb-command:v x
// lldb-check:[...] 1001
// lldb-command:v y
// lldb-check:[...] -1
// lldb-command:continue

// AFTER 2st redeclaration of 'x'
// lldb-command:v x
// lldb-check:[...] 1002
// lldb-command:v y
// lldb-check:[...] 1003
// lldb-command:continue

// AFTER 1st if expression
// lldb-command:v x
// lldb-check:[...] 999
// lldb-command:v y
// lldb-check:[...] -1
// lldb-command:continue

// BEGINNING of else branch
// lldb-command:v x
// lldb-check:[...] 999
// lldb-command:v y
// lldb-check:[...] -1
// lldb-command:continue

// BEGINNING of else branch
// lldb-command:v x
// lldb-check:[...] 1004
// lldb-command:v y
// lldb-check:[...] 1005
// lldb-command:continue

// BEGINNING of else branch
// lldb-command:v x
// lldb-check:[...] 999
// lldb-command:v y
// lldb-check:[...] -1
// lldb-command:continue

#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]

fn main() {

    let x = 999;
    let y = -1;

    zzz(); // #break
    sentinel();

    if x < 1000 {
        zzz(); // #break
        sentinel();

        let x = 1001;

        zzz(); // #break
        sentinel();

        let x = 1002;
        let y = 1003;
        zzz(); // #break
        sentinel();
    } else {
        unreachable!();
    }

    zzz(); // #break
    sentinel();

    if x > 1000 {
        unreachable!();
    } else {
        zzz(); // #break
        sentinel();

        let x = 1004;
        let y = 1005;
        zzz(); // #break
        sentinel();
    }

    zzz(); // #break
    sentinel();
}

fn zzz() {()}
fn sentinel() {()}