From c681e5f6088da18442c75b702ad09178023e1ed3 Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Thu, 27 Sep 2012 22:13:33 +0000 Subject: [PATCH] Fix a regression from r164656. llvm-svn: 164804 --- clang/lib/AST/TypeLoc.cpp | 7 +++++-- clang/test/SemaTemplate/deduction-crash.cpp | 11 +++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/clang/lib/AST/TypeLoc.cpp b/clang/lib/AST/TypeLoc.cpp index 945e783835b2..4c103dbf544a 100644 --- a/clang/lib/AST/TypeLoc.cpp +++ b/clang/lib/AST/TypeLoc.cpp @@ -301,7 +301,6 @@ void TemplateSpecializationTypeLoc::initializeArgLocs(ASTContext &Context, case TemplateArgument::Null: case TemplateArgument::Declaration: case TemplateArgument::Integral: - case TemplateArgument::Pack: case TemplateArgument::NullPtr: llvm_unreachable("Impossible TemplateArgument"); @@ -331,7 +330,11 @@ void TemplateSpecializationTypeLoc::initializeArgLocs(ASTContext &Context, ? SourceLocation() : Loc); break; - } + } + + case TemplateArgument::Pack: + ArgInfos[i] = TemplateArgumentLocInfo(); + break; } } } diff --git a/clang/test/SemaTemplate/deduction-crash.cpp b/clang/test/SemaTemplate/deduction-crash.cpp index ab5e46568000..0714c5e51648 100644 --- a/clang/test/SemaTemplate/deduction-crash.cpp +++ b/clang/test/SemaTemplate/deduction-crash.cpp @@ -99,3 +99,14 @@ namespacae PR12933 { return 0; } } + +// A buildbot failure from libcxx +namespace libcxx_test { + template struct __pointer_traits_element_type; + template struct __pointer_traits_element_type<_Ptr, true>; + template