pr18806.cpp 589 B

12345678910111213141516171819202122232425262728293031
  1. // RUN: %clang_cc1 -std=c++11 -emit-pch -o %t %s
  2. // RUN: %clang_cc1 -std=c++11 -include-pch %t -verify %s
  3. // expected-no-diagnostics
  4. // Before the patch, this test triggered an assert violation in
  5. // ASTContext::getSubstTemplateTypeParmType.
  6. #ifndef HEADER_INCLUDED
  7. #define HEADER_INCLUDED
  8. template <typename T>
  9. using Id = T;
  10. template <typename X>
  11. struct Class1 {
  12. template <typename Y, typename = decltype(Y())>
  13. struct Nested1;
  14. };
  15. template <typename A>
  16. struct Class2 {
  17. template <typename B, typename = Id<decltype(B())>>
  18. struct Nested2;
  19. };
  20. #else
  21. Class2<char> test;
  22. #endif