diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-04-01 00:28:59 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-04-01 00:28:59 +0000 |
commit | dce2b62b70063f041bbfa179bb1e26e1fbc9a2dc (patch) | |
tree | d73c467e43256efc1376bf33c7189a2e5eb89e3c /clang/lib/AST/TemplateName.cpp | |
parent | 5c9c118600667501aa7ae643a3f78c287c330004 (diff) | |
download | bcm5719-llvm-dce2b62b70063f041bbfa179bb1e26e1fbc9a2dc.tar.gz bcm5719-llvm-dce2b62b70063f041bbfa179bb1e26e1fbc9a2dc.zip |
Parsing, semantic analysis, and template instantiation for typename
specifiers that terminate in a simple-template-id, e.g.,
typename MetaFun::template apply<T1, T2>
Also, implement template instantiation for dependent
nested-name-specifiers that involve unresolved identifiers, e.g.,
typename T::type::type
llvm-svn: 68166
Diffstat (limited to 'clang/lib/AST/TemplateName.cpp')
-rw-r--r-- | clang/lib/AST/TemplateName.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/AST/TemplateName.cpp b/clang/lib/AST/TemplateName.cpp index 659796d27b2..16b96a01cd9 100644 --- a/clang/lib/AST/TemplateName.cpp +++ b/clang/lib/AST/TemplateName.cpp @@ -38,16 +38,18 @@ bool TemplateName::isDependent() const { return true; } -void TemplateName::print(llvm::raw_ostream &OS) const { +void TemplateName::print(llvm::raw_ostream &OS, bool SuppressNNS) const { if (TemplateDecl *Template = Storage.dyn_cast<TemplateDecl *>()) OS << Template->getIdentifier()->getName(); else if (QualifiedTemplateName *QTN = getAsQualifiedTemplateName()) { - QTN->getQualifier()->print(OS); + if (!SuppressNNS) + QTN->getQualifier()->print(OS); if (QTN->hasTemplateKeyword()) OS << "template "; OS << QTN->getTemplateDecl()->getIdentifier()->getName(); } else if (DependentTemplateName *DTN = getAsDependentTemplateName()) { - DTN->getQualifier()->print(OS); + if (!SuppressNNS) + DTN->getQualifier()->print(OS); OS << "template "; OS << DTN->getName()->getName(); } |