(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
coroutines/
pr103328.C
// { dg-additional-options "-g" }

#include <coroutine>

struct task {
  struct promise_type {
    task get_return_object() { return {}; }
    std::suspend_never initial_suspend() { return {}; }
    std::suspend_never final_suspend() noexcept { return {}; }
    void unhandled_exception() {}
  };
  bool await_ready() { return false; }
  void await_suspend(std::coroutine_handle<> h) {}
  void await_resume() {}
};

template <typename Func>
void call(Func func) { func(); }

class foo {
  void f();
  task g();
};

void foo::f() {
  auto lambda = [this]() noexcept -> task {
      co_await g();
  };
  (void)call<decltype(lambda)>;
}

int main() {}