//@ compile-flags:-g

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

// gdb-command:run

// gdb-command:print lexical_scopes_in_block_expression::MUT_INT
// gdb-check:$1 = 0

// STRUCT EXPRESSION
// gdb-command:print val
// gdb-check:$2 = -1
// gdb-command:print ten
// gdb-check:$3 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$4 = 11
// gdb-command:print lexical_scopes_in_block_expression::MUT_INT
// gdb-check:$5 = 1
// gdb-command:print ten
// gdb-check:$6 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$7 = -1
// gdb-command:print ten
// gdb-check:$8 = 10
// gdb-command:continue

// FUNCTION CALL
// gdb-command:print val
// gdb-check:$9 = -1
// gdb-command:print ten
// gdb-check:$10 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$11 = 12
// gdb-command:print lexical_scopes_in_block_expression::MUT_INT
// gdb-check:$12 = 2
// gdb-command:print ten
// gdb-check:$13 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$14 = -1
// gdb-command:print ten
// gdb-check:$15 = 10
// gdb-command:continue

// TUPLE EXPRESSION
// gdb-command:print val
// gdb-check:$16 = -1
// gdb-command:print ten
// gdb-check:$17 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$18 = 13
// gdb-command:print lexical_scopes_in_block_expression::MUT_INT
// gdb-check:$19 = 3
// gdb-command:print ten
// gdb-check:$20 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$21 = -1
// gdb-command:print ten
// gdb-check:$22 = 10
// gdb-command:continue

// VEC EXPRESSION
// gdb-command:print val
// gdb-check:$23 = -1
// gdb-command:print ten
// gdb-check:$24 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$25 = 14
// gdb-command:print lexical_scopes_in_block_expression::MUT_INT
// gdb-check:$26 = 4
// gdb-command:print ten
// gdb-check:$27 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$28 = -1
// gdb-command:print ten
// gdb-check:$29 = 10
// gdb-command:continue

// REPEAT VEC EXPRESSION
// gdb-command:print val
// gdb-check:$30 = -1
// gdb-command:print ten
// gdb-check:$31 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$32 = 15
// gdb-command:print lexical_scopes_in_block_expression::MUT_INT
// gdb-check:$33 = 5
// gdb-command:print ten
// gdb-check:$34 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$35 = -1
// gdb-command:print ten
// gdb-check:$36 = 10
// gdb-command:continue

// ASSIGNMENT EXPRESSION
// gdb-command:print val
// gdb-check:$37 = -1
// gdb-command:print ten
// gdb-check:$38 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$39 = 16
// gdb-command:print lexical_scopes_in_block_expression::MUT_INT
// gdb-check:$40 = 6
// gdb-command:print ten
// gdb-check:$41 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$42 = -1
// gdb-command:print ten
// gdb-check:$43 = 10
// gdb-command:continue


// ARITHMETIC EXPRESSION
// gdb-command:print val
// gdb-check:$44 = -1
// gdb-command:print ten
// gdb-check:$45 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$46 = 17
// gdb-command:print lexical_scopes_in_block_expression::MUT_INT
// gdb-check:$47 = 7
// gdb-command:print ten
// gdb-check:$48 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$49 = -1
// gdb-command:print ten
// gdb-check:$50 = 10
// gdb-command:continue

// INDEX EXPRESSION
// gdb-command:print val
// gdb-check:$51 = -1
// gdb-command:print ten
// gdb-check:$52 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$53 = 18
// gdb-command:print lexical_scopes_in_block_expression::MUT_INT
// gdb-check:$54 = 8
// gdb-command:print ten
// gdb-check:$55 = 10
// gdb-command:continue

// gdb-command:print val
// gdb-check:$56 = -1
// gdb-command:print ten
// gdb-check:$57 = 10
// gdb-command:continue


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

// lldb-command:run

// STRUCT EXPRESSION
// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] 11
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// FUNCTION CALL
// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] 12
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// TUPLE EXPRESSION
// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] 13
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// VEC EXPRESSION
// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] 14
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// REPEAT VEC EXPRESSION
// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] 15
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// ASSIGNMENT EXPRESSION
// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] 16
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue


// ARITHMETIC EXPRESSION
// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] 17
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// INDEX EXPRESSION
// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] 18
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

// lldb-command:v val
// lldb-check:[...] -1
// lldb-command:v ten
// lldb-check:[...] 10
// lldb-command:continue

#![allow(unused_variables)]
#![allow(unused_assignments)]
#![feature(omit_gdb_pretty_printer_section)]
#![omit_gdb_pretty_printer_section]

static mut MUT_INT: isize = 0;

struct Point {
    x: isize,
    y: isize
}

fn a_function(x: isize) -> isize {
    x + 1
}

fn main() {

    let val = -1;
    let ten = 10;

    // surrounded by struct expression
    let point = Point {
        x: {
            zzz(); // #break
            sentinel();

            let val = ten + 1;
            unsafe {MUT_INT = 1;};

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

            val
        },
        y: 10
    };

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

    // surrounded by function call
    let _ = a_function({
        zzz(); // #break
        sentinel();

        let val = ten + 2;
        unsafe {MUT_INT = 2;};

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

        val
    });

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


    // surrounded by tup
    let _ = ({
        zzz(); // #break
        sentinel();

        let val = ten + 3;
        unsafe {MUT_INT = 3;};

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

        val
    }, 0);

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

    // surrounded by vec
    let _ = [{
        zzz(); // #break
        sentinel();

        let val = ten + 4;
        unsafe {MUT_INT = 4;};

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

        val
    }, 0, 0];

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

    // surrounded by repeat vec
    let _ = [{
        zzz(); // #break
        sentinel();

        let val = ten + 5;
        unsafe {MUT_INT = 5;};

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

        val
    }; 10];

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

    // assignment expression
    let mut var = 0;
    var = {
        zzz(); // #break
        sentinel();

        let val = ten + 6;
        unsafe {MUT_INT = 6;};

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

        val
    };

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

    // arithmetic expression
    var = 10 + -{
        zzz(); // #break
        sentinel();

        let val = ten + 7;
        unsafe {MUT_INT = 7;};

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

        val
    } * 5;

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

    // index expression
    let a_vector = [10; 20];
    let _ = a_vector[{
        zzz(); // #break
        sentinel();

        let val = ten + 8;
        unsafe {MUT_INT = 8;};

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

        val as usize
    }];

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

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