rdar10830559.cpp 558 B

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