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