From 08f4e8097a27b5bbf7bc866ef38678c6be46060d Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Tue, 21 Dec 2010 22:10:26 +0000 Subject: Add a hack to work around the lack of proper type-source info in a pack expansion TypeLoc llvm-svn: 122367 --- clang/lib/AST/TemplateBase.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'clang/lib/AST/TemplateBase.cpp') diff --git a/clang/lib/AST/TemplateBase.cpp b/clang/lib/AST/TemplateBase.cpp index fd1146c084d..bfc834f0900 100644 --- a/clang/lib/AST/TemplateBase.cpp +++ b/clang/lib/AST/TemplateBase.cpp @@ -295,8 +295,15 @@ TemplateArgumentLoc::getPackExpansionPattern(SourceLocation &Ellipsis, switch (Argument.getKind()) { case TemplateArgument::Type: { + // FIXME: We shouldn't ever have to worry about missing + // type-source info! + TypeSourceInfo *ExpansionTSInfo = getTypeSourceInfo(); + if (!ExpansionTSInfo) + ExpansionTSInfo = Context.getTrivialTypeSourceInfo( + getArgument().getAsType(), + Ellipsis); PackExpansionTypeLoc Expansion - = cast(getTypeSourceInfo()->getTypeLoc()); + = cast(ExpansionTSInfo->getTypeLoc()); Ellipsis = Expansion.getEllipsisLoc(); TypeLoc Pattern = Expansion.getPatternLoc(); -- cgit v1.2.3