summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/TemplateName.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-04-01 00:28:59 +0000
committerDouglas Gregor <dgregor@apple.com>2009-04-01 00:28:59 +0000
commitdce2b62b70063f041bbfa179bb1e26e1fbc9a2dc (patch)
treed73c467e43256efc1376bf33c7189a2e5eb89e3c /clang/lib/AST/TemplateName.cpp
parent5c9c118600667501aa7ae643a3f78c287c330004 (diff)
downloadbcm5719-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.cpp8
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();
}
OpenPOWER on IntegriCloud