//@ min-lldb-version: 1800

// LLDB (18.1+) now supports DW_TAG_variant_part, but there is some bug in either compiler or LLDB
// with memory layout of discriminant for this particular enum
// ensure that LLDB won't crash at least (like #57822).

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

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

//@ gdb-command:run
//@ gdb-command:print b
//@ gdb-check:$1 = coroutine_objects::main::{coroutine_env#0}::Unresumed{_ref__a: 0x[...]}
//@ gdb-command:continue
//@ gdb-command:print b
//@ gdb-check:$2 = coroutine_objects::main::{coroutine_env#0}::Suspend0{c: 6, d: 7, _ref__a: 0x[...]}
//@ gdb-command:continue
//@ gdb-command:print b
//@ gdb-check:$3 = coroutine_objects::main::{coroutine_env#0}::Suspend1{c: 7, d: 8, _ref__a: 0x[...]}
//@ gdb-command:continue
//@ gdb-command:print b
//@ gdb-check:$4 = coroutine_objects::main::{coroutine_env#0}::Returned{_ref__a: 0x[...]}

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

//@ lldb-command:run
//@ lldb-command:v b
//@ lldb-check:(coroutine_objects::main::{coroutine_env#0}) b = 0{_ref__a:0x[...]} { _ref__a = 0x[...] }

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

//@ cdb-command: g
//@ cdb-command: dx b
//@ cdb-check: b                : Unresumed [Type: enum2$<coroutine_objects::main::coroutine_env$0>]
//@ cdb-check:    [+0x[...]] _ref__a          : 0x[...] : 5 [Type: int *]

//@ cdb-command: g
//@ cdb-command: dx b
//@ cdb-check: b                : Suspend0 [Type: enum2$<coroutine_objects::main::coroutine_env$0>]
//@ cdb-check:    [+0x[...]] c                : 6 [Type: int]
//@ cdb-check:    [+0x[...]] d                : 7 [Type: int]
//@ cdb-check:    [+0x[...]] _ref__a          : 0x[...] : 5 [Type: int *]

//@ cdb-command: g
//@ cdb-command: dx b
//@ cdb-check: b                : Suspend1 [Type: enum2$<coroutine_objects::main::coroutine_env$0>]
//@ cdb-check:    [+0x[...]] c                : 7 [Type: int]
//@ cdb-check:    [+0x[...]] d                : 8 [Type: int]
//@ cdb-check:    [+0x[...]] _ref__a          : 0x[...] : 6 [Type: int *]

//@ cdb-command: g
//@ cdb-command: dx b
//@ cdb-check: b                : Returned [Type: enum2$<coroutine_objects::main::coroutine_env$0>]
//@ cdb-check:    [+0x[...]] _ref__a          : 0x[...] : 6 [Type: int *]

#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]

use std::ops::Coroutine;
use std::pin::Pin;

fn main() {
    let mut a = 5;
    let mut b = #[coroutine]
    || {
        let mut c = 6;
        let mut d = 7;

        yield;
        a += 1;
        c += 1;
        d += 1;

        yield;
        println!("{} {} {}", a, c, d);
    };
    _zzz(); // #break
    Pin::new(&mut b).resume(());
    _zzz(); // #break
    Pin::new(&mut b).resume(());
    _zzz(); // #break
    Pin::new(&mut b).resume(());
    _zzz(); // #break
}

#[inline(never)]
fn _zzz() {
    ()
}
