//@ compile-flags:-g
//@ disable-gdb-pretty-printers
//@ ignore-backends: gcc

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

//@ gdb-command:print simple_tuple::NO_PADDING_8
//@ gdb-check:$1 = (-50, 50)
//@ gdb-command:print simple_tuple::NO_PADDING_16
//@ gdb-check:$2 = (-1, 2, 3)
//@ gdb-command:print simple_tuple::NO_PADDING_32
//@ gdb-check:$3 = (4, 5, 6)
//@ gdb-command:print simple_tuple::NO_PADDING_64
//@ gdb-check:$4 = (7, 8, 9)

//@ gdb-command:print simple_tuple::INTERNAL_PADDING_1
//@ gdb-check:$5 = (10, 11)
//@ gdb-command:print simple_tuple::INTERNAL_PADDING_2
//@ gdb-check:$6 = (12, 13, 14, 15)

//@ gdb-command:print simple_tuple::PADDING_AT_END
//@ gdb-check:$7 = (16, 17)

//@ gdb-command:run

//@ gdb-command:print noPadding8
//@ gdb-check:$8 = (-100, 100)
//@ gdb-command:print noPadding16
//@ gdb-check:$9 = (0, 1, 2)
//@ gdb-command:print noPadding32
//@ gdb-check:$10 = (3, 4.5, 5)
//@ gdb-command:print noPadding64
//@ gdb-check:$11 = (6, 7.5, 8)

//@ gdb-command:print internalPadding1
//@ gdb-check:$12 = (9, 10)
//@ gdb-command:print internalPadding2
//@ gdb-check:$13 = (11, 12, 13, 14)

//@ gdb-command:print paddingAtEnd
//@ gdb-check:$14 = (15, 16)

//@ gdb-command:print simple_tuple::NO_PADDING_8
//@ gdb-check:$15 = (-127, 127)
//@ gdb-command:print simple_tuple::NO_PADDING_16
//@ gdb-check:$16 = (-10, 10, 9)
//@ gdb-command:print simple_tuple::NO_PADDING_32
//@ gdb-check:$17 = (14, 15, 16)
//@ gdb-command:print simple_tuple::NO_PADDING_64
//@ gdb-check:$18 = (17, 18, 19)

//@ gdb-command:print simple_tuple::INTERNAL_PADDING_1
//@ gdb-check:$19 = (110, 111)
//@ gdb-command:print simple_tuple::INTERNAL_PADDING_2
//@ gdb-check:$20 = (112, 113, 114, 115)

//@ gdb-command:print simple_tuple::PADDING_AT_END
//@ gdb-check:$21 = (116, 117)


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

//@ lldb-command:run
//@ lldb-command: type format add -f u u8 "unsigned char"
//@ lldb-command: type format add -f d i8 char "signed char"
//@ lldb-command:v/d noPadding8
//@ lldb-check:[...] (-100, 100)
//@ lldb-command:v noPadding16
//@ lldb-check:[...] (0, 1, 2)
//@ lldb-command:v noPadding32
//@ lldb-check:[...] (3, 4.5, 5)
//@ lldb-command:v noPadding64
//@ lldb-check:[...] (6, 7.5, 8)

//@ lldb-command:v internalPadding1
//@ lldb-check:[...] (9, 10)
//@ lldb-command:v internalPadding2
//@ lldb-check:[...] (11, 12, 13, 14)

//@ lldb-command:v paddingAtEnd
//@ lldb-check:[...] (15, 16)


// === CDB TESTS ==================================================================================

//@ cdb-command: g

//@ cdb-command:dx noPadding8,d
//@ cdb-check:noPadding8,d [...]: (-100, 100) [Type: tuple$<i8,u8>]
//@ cdb-check:[...][0]              : -100 [Type: [...]]
//@ cdb-check:[...][1]              : 100 [Type: [...]]
//@ cdb-command:dx noPadding16,d
//@ cdb-check:noPadding16,d [...]: (0, 1, 2) [Type: tuple$<i16,i16,u16>]
//@ cdb-check:[...][0]              : 0 [Type: [...]]
//@ cdb-check:[...][1]              : 1 [Type: [...]]
//@ cdb-check:[...][2]              : 2 [Type: [...]]
//@ cdb-command:dx noPadding32,d
//@ cdb-check:noPadding32,d [...]: (3, 4.5[...], 5) [Type: tuple$<i32,f32,u32>]
//@ cdb-check:[...][0]              : 3 [Type: [...]]
//@ cdb-check:[...][1]              : 4.5[...] [Type: [...]]
//@ cdb-check:[...][2]              : 5 [Type: [...]]
//@ cdb-command:dx noPadding64,d
//@ cdb-check:noPadding64,d [...]: (6, 7.5[...], 8) [Type: tuple$<i64,f64,u64>]
//@ cdb-check:[...][0]              : 6 [Type: [...]]
//@ cdb-check:[...][1]              : 7.500000 [Type: [...]]
//@ cdb-check:[...][2]              : 8 [Type: [...]]

//@ cdb-command:dx internalPadding1,d
//@ cdb-check:internalPadding1,d [...]: (9, 10) [Type: tuple$<i16,i32>]
//@ cdb-check:[...][0]              : 9 [Type: short]
//@ cdb-check:[...][1]              : 10 [Type: int]
//@ cdb-command:dx internalPadding2,d
//@ cdb-check:internalPadding2,d [...]: (11, 12, 13, 14) [Type: tuple$<i16,i32,u32,u64>]
//@ cdb-check:[...][0]              : 11 [Type: [...]]
//@ cdb-check:[...][1]              : 12 [Type: [...]]
//@ cdb-check:[...][2]              : 13 [Type: [...]]
//@ cdb-check:[...][3]              : 14 [Type: [...]]

//@ cdb-command:dx paddingAtEnd,d
//@ cdb-check:paddingAtEnd,d [...]: (15, 16) [Type: tuple$<i32,i16>]
//@ cdb-check:[...][0]              : 15 [Type: [...]]
//@ cdb-check:[...][1]              : 16 [Type: [...]]


#![allow(unused_variables)]
#![allow(dead_code)]

static mut NO_PADDING_8: (i8, u8) = (-50, 50);
static mut NO_PADDING_16: (i16, i16, u16) = (-1, 2, 3);

static mut NO_PADDING_32: (i32, f32, u32) = (4, 5.0, 6);
static mut NO_PADDING_64: (i64, f64, u64) = (7, 8.0, 9);

static mut INTERNAL_PADDING_1: (i16, i32) = (10, 11);
static mut INTERNAL_PADDING_2: (i16, i32, u32, u64) = (12, 13, 14, 15);

static mut PADDING_AT_END: (i32, i16) = (16, 17);

fn main() {
    let noPadding8: (i8, u8) = (-100, 100);
    let noPadding16: (i16, i16, u16) = (0, 1, 2);
    let noPadding32: (i32, f32, u32) = (3, 4.5, 5);
    let noPadding64: (i64, f64, u64) = (6, 7.5, 8);

    let internalPadding1: (i16, i32) = (9, 10);
    let internalPadding2: (i16, i32, u32, u64) = (11, 12, 13, 14);

    let paddingAtEnd: (i32, i16) = (15, 16);

    unsafe {
        NO_PADDING_8 = (-127, 127);
        NO_PADDING_16 = (-10, 10, 9);

        NO_PADDING_32 = (14, 15.0, 16);
        NO_PADDING_64 = (17, 18.0, 19);

        INTERNAL_PADDING_1 = (110, 111);
        INTERNAL_PADDING_2 = (112, 113, 114, 115);

        PADDING_AT_END = (116, 117);
    }

    zzz(); // #break
}

fn zzz() {()}
