Index: cfe/trunk/lib/Sema/SemaTemplateVariadic.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaTemplateVariadic.cpp +++ cfe/trunk/lib/Sema/SemaTemplateVariadic.cpp @@ -164,7 +164,7 @@ // A function parameter pack is a pack expansion, so cannot contain // an unexpanded parameter pack. Likewise for a template parameter // pack that contains any references to other packs. - if (D->isParameterPack()) + if (D && D->isParameterPack()) return true; return inherited::TraverseDecl(D); Index: cfe/trunk/test/SemaCXX/alias-template.cpp =================================================================== --- cfe/trunk/test/SemaCXX/alias-template.cpp +++ cfe/trunk/test/SemaCXX/alias-template.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -verify -std=c++11 %s +// RUN: %clang_cc1 -verify -std=c++14 -fcxx-exceptions %s namespace RedeclAliasTypedef { template using T = int; @@ -189,3 +189,7 @@ int g = sfinae_me(); // expected-error{{no matching function for call to 'sfinae_me'}} } + +namespace NullExceptionDecl { +template auto get = []() { try { } catch(...) {}; return I; }; // expected-error{{initializer contains unexpanded parameter pack 'I'}} +}