#include struct future { struct promise_type { void return_value(int) {} auto initial_suspend() { return std::suspend_never{}; } auto final_suspend() noexcept { return std::suspend_never{}; } void unhandled_exception() {} future get_return_object() { return {}; } }; bool await_ready() { return true; } void await_suspend(std::coroutine_handle<>) {} int await_resume() { return 0; } }; future co_foo() { for( int i = 0; i < co_await future{}; ++i ); // ICE -------------^ co_return 0; }