summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/TemplateBase.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-12-21 22:10:26 +0000
committerDouglas Gregor <dgregor@apple.com>2010-12-21 22:10:26 +0000
commit08f4e8097a27b5bbf7bc866ef38678c6be46060d (patch)
tree3b031b312875c5717940d97adcd3beb928621697 /clang/lib/AST/TemplateBase.cpp
parenta94e36bbeea731ba06b4a80d86062a79857d59c6 (diff)
downloadbcm5719-llvm-08f4e8097a27b5bbf7bc866ef38678c6be46060d.tar.gz
bcm5719-llvm-08f4e8097a27b5bbf7bc866ef38678c6be46060d.zip
Add a hack to work around the lack of proper type-source info in a pack expansion TypeLoc
llvm-svn: 122367
Diffstat (limited to 'clang/lib/AST/TemplateBase.cpp')
-rw-r--r--clang/lib/AST/TemplateBase.cpp9
1 files changed, 8 insertions, 1 deletions
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<PackExpansionTypeLoc>(getTypeSourceInfo()->getTypeLoc());
+ = cast<PackExpansionTypeLoc>(ExpansionTSInfo->getTypeLoc());
Ellipsis = Expansion.getEllipsisLoc();
TypeLoc Pattern = Expansion.getPatternLoc();
OpenPOWER on IntegriCloud