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 4 // expected-no-diagnostics 5 6 // Before the patch, this test triggered an assert violation in 7 // ASTContext::getSubstTemplateTypeParmType. 8 9 #ifndef HEADER_INCLUDED 10 #define HEADER_INCLUDED 11 12 template <typename T> 13 using Id = T; 14 15 template <typename X> 16 struct Class1 { 17 template <typename Y, typename = decltype(Y())> 18 struct Nested1; 19 }; 20 21 template <typename A> 22 struct Class2 { 23 template <typename B, typename = Id<decltype(B())>> 24 struct Nested2; 25 }; 26 27 #else 28 29 Class2<char> test; 30 31 #endif 32