1 // RUN: %clang_cc1 -fmodules -std=c++14 %s -verify
2 // expected-no-diagnostics
4 #pragma clang module build A
6 #pragma clang module contents
7 #pragma clang module begin A
8 template<typename T
> struct A
{
9 friend A
operator+(const A
&, const A
&) { return {}; }
10 template<typename T2
> friend void func_1(const A
&, const T2
&) {}
12 #pragma clang module end
13 #pragma clang module endbuild
15 #pragma clang module build B
17 #pragma clang module contents
18 #pragma clang module begin B
19 #pragma clang module import A
20 inline void f() { A
<int> a
; }
21 #pragma clang module end
22 #pragma clang module endbuild
24 #pragma clang module build C
26 #pragma clang module contents
27 #pragma clang module begin C
28 #pragma clang module import A
29 inline void g() { A
<int> a
; }
30 #pragma clang module end
31 #pragma clang module endbuild
33 #pragma clang module import A
34 #pragma clang module import B
35 #pragma clang module import C