| // RUN: %clang_cc1 -xc++ -std=c++20 -fmodules -fmodule-name=library \ |
| // RUN: -emit-module %t/modules.map \ |
| // RUN: -o %t/module.pcm \ |
| concept ConflictingConcept = true; |
| template <class T, class U> |
| concept same_as = __is_same(T, U); |
| template<class T> concept truec = true; |
| #endif // SAMEAS_CONCEPTS_H |
| template <class T, class U = int> |
| concept ConflictingConcept = true; // expected-error {{redefinition of concept 'ConflictingConcept' with different template}} |
| // expected-note@* {{previous definition}} |
| int same_as; // expected-error {{redefinition of 'same_as' as different kind of symbol}} |
| // expected-note@* {{previous definition}} |
| template<class T> concept var = false; // expected-error {{redefinition of 'var' as different kind of symbol}} |
| // expected-note@* {{previous definition}} |
| template<class T> concept truec = true; // expected-error {{redefinition of 'truec'}} |
| // expected-note@* {{previous definition}} |