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