1// Test this without pch. 2// RUN: %clang_cc1 -fsyntax-only -emit-llvm-only %s 3 4// Test with pch. 5// RUN: touch %t.empty.cpp 6// RUN: %clang_cc1 -emit-pch -o %t %s 7// RUN: %clang_cc1 -include-pch %t -emit-llvm-only %t.empty.cpp 8 9// rdar://10830559 10 11#pragma ms_struct on 12 13template< typename T > 14class Templated 15{ 16public: 17 struct s; 18}; 19 20 21class Foo 22{ 23private: 24 25 class Bar 26 { 27 private: 28 class BarTypes { public: virtual void Func(); }; 29 class BarImpl {}; 30 friend class Foo; 31 }; 32 33 34 friend class Templated< Bar::BarImpl >::s; 35}; 36