summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ASTDumper.cpp
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2018-12-10 21:03:00 +0000
committerStephen Kelly <steveire@gmail.com>2018-12-10 21:03:00 +0000
commit43835951f43b768a5023a6add654d2f0dc471dc2 (patch)
tree8e5b68daa305587c120bb103cb6eea54f609c6b5 /clang/lib/AST/ASTDumper.cpp
parentbd72be0b441482b9bd46841420a5b45f03d8e457 (diff)
downloadbcm5719-llvm-43835951f43b768a5023a6add654d2f0dc471dc2.tar.gz
bcm5719-llvm-43835951f43b768a5023a6add654d2f0dc471dc2.zip
Re-order content of template parameter dumps
Reviewers: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D55393 llvm-svn: 348797
Diffstat (limited to 'clang/lib/AST/ASTDumper.cpp')
-rw-r--r--clang/lib/AST/ASTDumper.cpp43
1 files changed, 26 insertions, 17 deletions
diff --git a/clang/lib/AST/ASTDumper.cpp b/clang/lib/AST/ASTDumper.cpp
index 2c128f49436..5c12c2b3663 100644
--- a/clang/lib/AST/ASTDumper.cpp
+++ b/clang/lib/AST/ASTDumper.cpp
@@ -98,10 +98,14 @@ namespace {
void dumpCXXCtorInitializer(const CXXCtorInitializer *Init);
void dumpTemplateParameters(const TemplateParameterList *TPL);
void dumpTemplateArgumentListInfo(const TemplateArgumentListInfo &TALI);
- void dumpTemplateArgumentLoc(const TemplateArgumentLoc &A);
+ void dumpTemplateArgumentLoc(const TemplateArgumentLoc &A,
+ const Decl *From = nullptr,
+ const char *label = nullptr);
void dumpTemplateArgumentList(const TemplateArgumentList &TAL);
void dumpTemplateArgument(const TemplateArgument &A,
- SourceRange R = SourceRange());
+ SourceRange R = SourceRange(),
+ const Decl *From = nullptr,
+ const char *label = nullptr);
template <typename SpecializationDecl>
void dumpTemplateDeclSpecialization(const SpecializationDecl *D,
bool DumpExplicitInst,
@@ -673,8 +677,9 @@ void ASTDumper::dumpTemplateArgumentListInfo(
dumpTemplateArgumentLoc(TALI[i]);
}
-void ASTDumper::dumpTemplateArgumentLoc(const TemplateArgumentLoc &A) {
- dumpTemplateArgument(A.getArgument(), A.getSourceRange());
+void ASTDumper::dumpTemplateArgumentLoc(const TemplateArgumentLoc &A,
+ const Decl *From, const char *label) {
+ dumpTemplateArgument(A.getArgument(), A.getSourceRange(), From, label);
}
void ASTDumper::dumpTemplateArgumentList(const TemplateArgumentList &TAL) {
@@ -682,12 +687,17 @@ void ASTDumper::dumpTemplateArgumentList(const TemplateArgumentList &TAL) {
dumpTemplateArgument(TAL[i]);
}
-void ASTDumper::dumpTemplateArgument(const TemplateArgument &A, SourceRange R) {
+void ASTDumper::dumpTemplateArgument(const TemplateArgument &A, SourceRange R,
+ const Decl *From, const char *label) {
dumpChild([=] {
OS << "TemplateArgument";
if (R.isValid())
NodeDumper.dumpSourceRange(R);
+ if (From) {
+ dumpDeclRef(From, label);
+ }
+
switch (A.getKind()) {
case TemplateArgument::Null:
OS << " null";
@@ -1380,10 +1390,10 @@ void ASTDumper::VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D) {
OS << " ...";
NodeDumper.dumpName(D);
if (D->hasDefaultArgument())
- dumpTemplateArgument(D->getDefaultArgument());
- if (auto *From = D->getDefaultArgStorage().getInheritedFrom())
- dumpDeclRef(From, D->defaultArgumentWasInherited() ? "inherited from"
- : "previous");
+ dumpTemplateArgument(D->getDefaultArgument(), SourceRange(),
+ D->getDefaultArgStorage().getInheritedFrom(),
+ D->defaultArgumentWasInherited() ? "inherited from"
+ : "previous");
}
void ASTDumper::VisitNonTypeTemplateParmDecl(const NonTypeTemplateParmDecl *D) {
@@ -1393,10 +1403,10 @@ void ASTDumper::VisitNonTypeTemplateParmDecl(const NonTypeTemplateParmDecl *D) {
OS << " ...";
NodeDumper.dumpName(D);
if (D->hasDefaultArgument())
- dumpTemplateArgument(D->getDefaultArgument());
- if (auto *From = D->getDefaultArgStorage().getInheritedFrom())
- dumpDeclRef(From, D->defaultArgumentWasInherited() ? "inherited from"
- : "previous");
+ dumpTemplateArgument(D->getDefaultArgument(), SourceRange(),
+ D->getDefaultArgStorage().getInheritedFrom(),
+ D->defaultArgumentWasInherited() ? "inherited from"
+ : "previous");
}
void ASTDumper::VisitTemplateTemplateParmDecl(
@@ -1407,10 +1417,9 @@ void ASTDumper::VisitTemplateTemplateParmDecl(
NodeDumper.dumpName(D);
dumpTemplateParameters(D->getTemplateParameters());
if (D->hasDefaultArgument())
- dumpTemplateArgumentLoc(D->getDefaultArgument());
- if (auto *From = D->getDefaultArgStorage().getInheritedFrom())
- dumpDeclRef(From, D->defaultArgumentWasInherited() ? "inherited from"
- : "previous");
+ dumpTemplateArgumentLoc(
+ D->getDefaultArgument(), D->getDefaultArgStorage().getInheritedFrom(),
+ D->defaultArgumentWasInherited() ? "inherited from" : "previous");
}
void ASTDumper::VisitUsingDecl(const UsingDecl *D) {
OpenPOWER on IntegriCloud