summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/tools/clang/lib/AST/TemplateName.cpp
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2019-01-27 16:42:12 +0000
committerpatrick <patrick@openbsd.org>2019-01-27 16:42:12 +0000
commitb773203fb58f3ef282fb69c832d8710cab5bc82d (patch)
treee75913f147570fbd75169647b144df85b88a038c /gnu/llvm/tools/clang/lib/AST/TemplateName.cpp
parenttweak errno in previous (diff)
downloadwireguard-openbsd-b773203fb58f3ef282fb69c832d8710cab5bc82d.tar.xz
wireguard-openbsd-b773203fb58f3ef282fb69c832d8710cab5bc82d.zip
Import LLVM 7.0.1 release including clang, lld and lldb.
Diffstat (limited to 'gnu/llvm/tools/clang/lib/AST/TemplateName.cpp')
-rw-r--r--gnu/llvm/tools/clang/lib/AST/TemplateName.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/gnu/llvm/tools/clang/lib/AST/TemplateName.cpp b/gnu/llvm/tools/clang/lib/AST/TemplateName.cpp
index bd04fd8366b..0a7a6bc3c6a 100644
--- a/gnu/llvm/tools/clang/lib/AST/TemplateName.cpp
+++ b/gnu/llvm/tools/clang/lib/AST/TemplateName.cpp
@@ -31,7 +31,7 @@
using namespace clang;
-TemplateArgument
+TemplateArgument
SubstTemplateTemplateParmPackStorage::getArgumentPack() const {
return TemplateArgument(llvm::makeArrayRef(Arguments, size()));
}
@@ -40,7 +40,7 @@ void SubstTemplateTemplateParmStorage::Profile(llvm::FoldingSetNodeID &ID) {
Profile(ID, Parameter, Replacement);
}
-void SubstTemplateTemplateParmStorage::Profile(llvm::FoldingSetNodeID &ID,
+void SubstTemplateTemplateParmStorage::Profile(llvm::FoldingSetNodeID &ID,
TemplateTemplateParmDecl *parameter,
TemplateName replacement) {
ID.AddPointer(parameter);
@@ -52,7 +52,7 @@ void SubstTemplateTemplateParmPackStorage::Profile(llvm::FoldingSetNodeID &ID,
Profile(ID, Context, Parameter, getArgumentPack());
}
-void SubstTemplateTemplateParmPackStorage::Profile(llvm::FoldingSetNodeID &ID,
+void SubstTemplateTemplateParmPackStorage::Profile(llvm::FoldingSetNodeID &ID,
ASTContext &Context,
TemplateTemplateParmDecl *Parameter,
const TemplateArgument &ArgPack) {
@@ -180,13 +180,18 @@ bool TemplateName::isInstantiationDependent() const {
if (QTN->getQualifier()->isInstantiationDependent())
return true;
}
-
+
return isDependent();
}
bool TemplateName::containsUnexpandedParameterPack() const {
+ if (QualifiedTemplateName *QTN = getAsQualifiedTemplateName()) {
+ if (QTN->getQualifier()->containsUnexpandedParameterPack())
+ return true;
+ }
+
if (TemplateDecl *Template = getAsTemplateDecl()) {
- if (TemplateTemplateParmDecl *TTP
+ if (TemplateTemplateParmDecl *TTP
= dyn_cast<TemplateTemplateParmDecl>(Template))
return TTP->isParameterPack();
@@ -194,7 +199,7 @@ bool TemplateName::containsUnexpandedParameterPack() const {
}
if (DependentTemplateName *DTN = getAsDependentTemplateName())
- return DTN->getQualifier() &&
+ return DTN->getQualifier() &&
DTN->getQualifier()->containsUnexpandedParameterPack();
return getAsSubstTemplateTemplateParmPack() != nullptr;
@@ -215,7 +220,7 @@ TemplateName::print(raw_ostream &OS, const PrintingPolicy &Policy,
if (!SuppressNNS && DTN->getQualifier())
DTN->getQualifier()->print(OS, Policy);
OS << "template ";
-
+
if (DTN->isIdentifier())
OS << DTN->getIdentifier()->getName();
else