https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115851
--- Comment #1 from Dan Klishch <daklishch at gmail dot com> ---
GCC seems to do checks for coroutine-related types more eagerly now, so the
original minified reproducer is rejected. Nonetheless, the underlying issue
persists, which can be shown using this snippet:
```
#include <coroutine>
struct SuspendNever {
bool await_ready();
void await_suspend(std::coroutine_handle<>);
void await_resume();
};
struct Coroutine;
struct PromiseType {
Coroutine get_return_object();
SuspendNever initial_suspend();
SuspendNever final_suspend();
};
struct Coroutine {
using promise_type = PromiseType;
};
struct ErrorOr {
int release_error();
};
void warnln(int const&);
Coroutine __async_test_input_basic() {
({
co_await SuspendNever{};
ErrorOr _temporary_result2;
warnln(_temporary_result2.release_error());
});
}
```
CE link: https://godbolt.org/z/aG588Whv6