llvm/clang/test/SemaTemplate/deferred-concept-inst.cpp

// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify -fsyntax-only -Wno-unused-value
// expected-no-diagnostics

namespace GithubBug44178 {
template <typename D>
struct CRTP {
  void call_foo()
    requires requires(D &v) { v.foo(); }
  {
    static_cast<D *>(this)->foo();
  }
};

struct Test : public CRTP<Test> {
  void foo() {}
};

int main() {
  Test t;
  t.call_foo();
  return 0;
}
} // namespace GithubBug44178