diff options
Diffstat (limited to 'test/SemaTemplate/recovery-crash.cpp')
-rw-r--r-- | test/SemaTemplate/recovery-crash.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/SemaTemplate/recovery-crash.cpp b/test/SemaTemplate/recovery-crash.cpp index 61e880b..78f6db40 100644 --- a/test/SemaTemplate/recovery-crash.cpp +++ b/test/SemaTemplate/recovery-crash.cpp @@ -16,3 +16,22 @@ void Test() { B<int> b(0); // expected-note{{in instantiation of function template}} } + +// Don't crash here. +namespace PR16134 { + template <class P> struct S // expected-error {{expected ';'}} + template <> static S<Q>::f() // expected-error +{{}} +} + +namespace PR16225 { + template <typename T> void f(); + template<typename C> void g(C*) { + struct LocalStruct : UnknownBase<Mumble, C> { }; // expected-error {{unknown template name 'UnknownBase'}} \ + // expected-error {{use of undeclared identifier 'Mumble'}} + f<LocalStruct>(); // expected-warning {{template argument uses local type 'LocalStruct'}} + } + struct S; + void h() { + g<S>(0); // expected-note {{in instantiation of function template specialization}} + } +} |