3 // RUN: split-file %s %t
5 // RUN: %clang_cc1 -xc++ -std=c++20 -fmodules -fmodule-name=library \
6 // RUN: -emit-module %t/modules.map \
7 // RUN: -o %t/module.pcm
10 // RUN: %clang_cc1 -xc++ -std=c++20 -fmodules -fmodule-file=%t/module.pcm \
11 // RUN: -fmodule-map-file=%t/modules.map \
12 // RUN: -fsyntax-only -verify %t/use.cpp
15 // expected-no-diagnostics
20 template <class T
> void foo()
21 requires same_as
<T
, T
>
42 #ifndef SAMEAS_CONCEPTS_H_
43 #define SAMEAS_CONCEPTS_H_
47 #endif // SAMEAS_CONCEPTS_H
53 template <class T
, class U
>
54 concept same_as_impl
= __is_same(T
, U
);
56 template <class T
, class U
>
57 concept same_as
= same_as_impl
<T
, U
> && same_as_impl
<U
, T
>;
68 template <class T
> void foo()
69 requires same_as
<T
, int>
80 template <class T
> void bar()
81 requires same_as
<T
, int>