2012-02-10 02:31:19 +08:00
|
|
|
// 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
|
|
|
|
|
|
|
|
// rdar://10830559
|
|
|
|
|
2013-10-12 04:19:00 +08:00
|
|
|
//#pragma ms_struct on
|
2012-02-10 02:31:19 +08:00
|
|
|
|
|
|
|
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;
|
|
|
|
};
|