std :: async::coro
Macro ASYNC_BEGIN
#define ASYNC_BEGIN(state, n) &AsyncResume __async_st = &(state); ASYNC_POINTS_##n##_ switch (*__async_st) { case 0: break; ASYNC_CASES_##n##_ default: std::panic_at("std/async: coroutine polled after it completed", __FILE__, __LINE__); return Poll::pending(); }'__async_st' aliases the state field; it is declared before the dispatching goto, so it is in scope at every resume label.