29 lines · cpp
1// From https://github.com/llvm/llvm-project/issues/779532// RUN: rm -rf %t3// RUN: mkdir -p %t4// RUN: split-file %s %t5 6// RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/a.cppm -o %t/a.pcm7// RUN: %clang_cc1 -std=c++20 -fmodule-file=a=%t/a.pcm %t/b.cpp -fsyntax-only -verify8 9//--- a.cppm10export module a;11 12template<typename, typename>13concept c = true;14 15export template<typename... Ts>16struct a {17 template<typename... Us> requires(... and c<Ts, Us>)18 friend bool operator==(a, a<Us...>) {19 return true;20 }21};22 23template struct a<>;24 25//--- b.cpp26// expected-no-diagnostics27import a;28template struct a<int>;29