//@ compile-flags: -g -Zmir-enable-passes=-CheckAlignment
//@ disable-gdb-pretty-printers
//@ ignore-backends: gcc

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

//@ gdb-command:print simple_struct::NO_PADDING_16
//@ gdb-check:$1 = simple_struct::NoPadding16 {x: 1000, y: -1001}

//@ gdb-command:print simple_struct::NO_PADDING_32
//@ gdb-check:$2 = simple_struct::NoPadding32 {x: 1, y: 2, z: 3}

//@ gdb-command:print simple_struct::NO_PADDING_64
//@ gdb-check:$3 = simple_struct::NoPadding64 {x: 4, y: 5, z: 6}

//@ gdb-command:print simple_struct::NO_PADDING_163264
//@ gdb-check:$4 = simple_struct::NoPadding163264 {a: 7, b: 8, c: 9, d: 10}

//@ gdb-command:print simple_struct::INTERNAL_PADDING
//@ gdb-check:$5 = simple_struct::InternalPadding {x: 11, y: 12}

//@ gdb-command:print simple_struct::PADDING_AT_END
//@ gdb-check:$6 = simple_struct::PaddingAtEnd {x: 13, y: 14}

//@ gdb-command:run

//@ gdb-command:print no_padding16
//@ gdb-check:$7 = simple_struct::NoPadding16 {x: 10000, y: -10001}

//@ gdb-command:print no_padding32
//@ gdb-check:$8 = simple_struct::NoPadding32 {x: -10002, y: -10003.5, z: 10004}

//@ gdb-command:print no_padding64
//@ gdb-check:$9 = simple_struct::NoPadding64 {x: -10005.5, y: 10006, z: 10007}

//@ gdb-command:print no_padding163264
//@ gdb-check:$10 = simple_struct::NoPadding163264 {a: -10008, b: 10009, c: 10010, d: 10011}

//@ gdb-command:print internal_padding
//@ gdb-check:$11 = simple_struct::InternalPadding {x: 10012, y: -10013}

//@ gdb-command:print padding_at_end
//@ gdb-check:$12 = simple_struct::PaddingAtEnd {x: -10014, y: 10015}

//@ gdb-command:print simple_struct::NO_PADDING_16
//@ gdb-check:$13 = simple_struct::NoPadding16 {x: 100, y: -101}

//@ gdb-command:print simple_struct::NO_PADDING_32
//@ gdb-check:$14 = simple_struct::NoPadding32 {x: -15, y: -16, z: 17}

//@ gdb-command:print simple_struct::NO_PADDING_64
//@ gdb-check:$15 = simple_struct::NoPadding64 {x: -18, y: 19, z: 20}

//@ gdb-command:print simple_struct::NO_PADDING_163264
//@ gdb-check:$16 = simple_struct::NoPadding163264 {a: -21, b: 22, c: 23, d: 24}

//@ gdb-command:print simple_struct::INTERNAL_PADDING
//@ gdb-check:$17 = simple_struct::InternalPadding {x: 25, y: -26}

//@ gdb-command:print simple_struct::PADDING_AT_END
//@ gdb-check:$18 = simple_struct::PaddingAtEnd {x: -27, y: 28}

//@ gdb-command:continue

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

//@ lldb-command:run

//@ lldb-command:v no_padding16
//@ lldb-check:[...] {x:10000, y:-10001}

//@ lldb-command:v no_padding32
//@ lldb-check:[...] {x:-10002, y:-10003.5, z:10004}

//@ lldb-command:v no_padding64
//@ lldb-check:[...] {x:-10005.5, y:10006, z:10007}

//@ lldb-command:v no_padding163264
//@ lldb-check:[...] {a:-10008, b:10009, c:10010, d:10011}

//@ lldb-command:v internal_padding
//@ lldb-check:[...] {x:10012, y:-10013}

//@ lldb-command:v padding_at_end
//@ lldb-check:[...] {x:-10014, y:10015}

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

struct NoPadding16 {
    x: u16,
    y: i16
}

struct NoPadding32 {
    x: i32,
    y: f32,
    z: u32
}

struct NoPadding64 {
    x: f64,
    y: i64,
    z: u64
}

struct NoPadding163264 {
    a: i16,
    b: u16,
    c: i32,
    d: u64
}

struct InternalPadding {
    x: u16,
    y: i64
}

struct PaddingAtEnd {
    x: i64,
    y: u16
}

static mut NO_PADDING_16: NoPadding16 = NoPadding16 {
    x: 1000,
    y: -1001
};

static mut NO_PADDING_32: NoPadding32 = NoPadding32 {
    x: 1,
    y: 2.0,
    z: 3
};

static mut NO_PADDING_64: NoPadding64 = NoPadding64 {
    x: 4.0,
    y: 5,
    z: 6
};

static mut NO_PADDING_163264: NoPadding163264 = NoPadding163264 {
    a: 7,
    b: 8,
    c: 9,
    d: 10
};

static mut INTERNAL_PADDING: InternalPadding = InternalPadding {
    x: 11,
    y: 12
};

static mut PADDING_AT_END: PaddingAtEnd = PaddingAtEnd {
    x: 13,
    y: 14
};

fn main() {
    let no_padding16 = NoPadding16 { x: 10000, y: -10001 };
    let no_padding32 = NoPadding32 { x: -10002, y: -10003.5, z: 10004 };
    let no_padding64 = NoPadding64 { x: -10005.5, y: 10006, z: 10007 };
    let no_padding163264 = NoPadding163264 { a: -10008, b: 10009, c: 10010, d: 10011 };

    let internal_padding = InternalPadding { x: 10012, y: -10013 };
    let padding_at_end = PaddingAtEnd { x: -10014, y: 10015 };

    unsafe {
        NO_PADDING_16.x = 100;
        NO_PADDING_16.y = -101;

        NO_PADDING_32.x = -15;
        NO_PADDING_32.y = -16.0;
        NO_PADDING_32.z = 17;

        NO_PADDING_64.x = -18.0;
        NO_PADDING_64.y = 19;
        NO_PADDING_64.z = 20;

        NO_PADDING_163264.a = -21;
        NO_PADDING_163264.b = 22;
        NO_PADDING_163264.c = 23;
        NO_PADDING_163264.d = 24;

        INTERNAL_PADDING.x = 25;
        INTERNAL_PADDING.y = -26;

        PADDING_AT_END.x = -27;
        PADDING_AT_END.y = 28;
    }

    zzz(); // #break
}

fn zzz() {()}
