Home | History | Annotate | Download | only in PCH
      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 
     13 template< typename T >
     14 class Templated
     15 {
     16 public:
     17    struct s;
     18 };
     19 
     20 
     21 class Foo
     22 {
     23 private:
     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