| // Test this without pch. |
| // RUN: %clang_cc1 -fsyntax-only -emit-llvm-only %s |
| |
| // Test with pch. |
| // RUN: touch %t.empty.cpp |
| // RUN: %clang_cc1 -emit-pch -o %t %s |
| // RUN: %clang_cc1 -include-pch %t -emit-llvm-only %t.empty.cpp |
| |
| // RUN: %clang_cc1 -emit-pch -fpch-instantiate-templates -o %t %s |
| // RUN: %clang_cc1 -include-pch %t -emit-llvm-only %t.empty.cpp |
| |
| // rdar://10830559 |
| |
| //#pragma ms_struct on |
| |
| template< typename T > |
| class Templated |
| { |
| public: |
| struct s; |
| }; |
| |
| |
| class Foo |
| { |
| private: |
| |
| class Bar |
| { |
| private: |
| class BarTypes { public: virtual void Func(); }; |
| class BarImpl {}; |
| friend class Foo; |
| }; |
| |
| |
| friend class Templated< Bar::BarImpl >::s; |
| }; |