// 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