// RUN: rm -rf %t // RUN: %clang_cc1 -x c++ -std=c++20 %s -verify -fmodules -fmodules-cache-path=%t // expected-no-diagnostics #pragma clang module build std module std { module concepts {} module functional {} } #pragma clang module contents #pragma clang module begin std template struct common_reference { using type = _Tp; }; #pragma clang module end #pragma clang module begin std.concepts #pragma clang module import std template concept same_as = __is_same(_Tp, _Tp); template concept common_reference_with = same_as::type>; #pragma clang module end #pragma clang module begin std.functional #pragma clang module import std.concepts template concept sentinel_for = common_reference_with<_Ip>; constexpr bool ntsf_subsumes_sf(sentinel_for auto) requires true { return true; } bool ntsf_subsumes_sf(sentinel_for auto); static_assert(ntsf_subsumes_sf("")); #pragma clang module end #pragma clang module endbuild