diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-03-04 21:37:14 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-03-04 21:37:14 +0000 |
commit | 6cd9d4aa13c2145c8b4398453974515b734bfe42 (patch) | |
tree | 32e2b9ddbad8409e4d8e56de3564249fd8ab8fef /lib/AST/TemplateName.cpp | |
parent | a93fc9f053bae84cf7c2a04ea6b1b26e0ea44d8f (diff) |
Teach Sema::ActOnCXXNestedNameSpecifier and Sema::CheckTemplateIdType
to cope with non-type templates by providing appropriate
errors. Previously, we would either assert, crash, or silently build a
dependent type when we shouldn't. Fixes PR9226.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127037 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/TemplateName.cpp')
-rw-r--r-- | lib/AST/TemplateName.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/AST/TemplateName.cpp b/lib/AST/TemplateName.cpp index 6b378a0011..ebd07f4867 100644 --- a/lib/AST/TemplateName.cpp +++ b/lib/AST/TemplateName.cpp @@ -118,6 +118,10 @@ TemplateName::print(llvm::raw_ostream &OS, const PrintingPolicy &Policy, } else if (SubstTemplateTemplateParmPackStorage *SubstPack = getAsSubstTemplateTemplateParmPack()) OS << SubstPack->getParameterPack()->getNameAsString(); + else { + OverloadedTemplateStorage *OTS = getAsOverloadedTemplate(); + (*OTS->begin())->printName(OS); + } } const DiagnosticBuilder &clang::operator<<(const DiagnosticBuilder &DB, |