]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/PCH/cxx-friends.h
Vendor import of clang release_34 branch r197841 (effectively, 3.4 RC3):
[FreeBSD/FreeBSD.git] / test / PCH / cxx-friends.h
1 // Header for PCH test cxx-friends.cpp
2
3 class A {
4   int x;
5   friend class F;
6 };
7
8 namespace PR12585 {
9   struct future_base {
10     template<typename> class setter;
11   };
12   template<typename> class promise {
13     // We used to inject this into future_base with no access specifier,
14     // then crash during AST writing.
15     template<typename> friend class future_base::setter;
16     int k;
17   };
18 }
19
20 namespace Lazy {
21   struct S {
22     friend void doNotDeserialize();
23   };
24 }
25
26 // Reduced testcase from libc++'s <valarray>. Used to crash with modules
27 // enabled.
28 namespace std {
29
30 template <class T> struct valarray;
31
32 template <class T> struct valarray {
33   valarray();
34   template <class U> friend struct valarray;
35   template <class U> friend U *begin(valarray<U> &v);
36 };
37
38 struct gslice {
39   valarray<int> size;
40   gslice() {}
41 };
42
43 }