[clang-tools-extra] b22d8ae - Use ASTDumper to dump the AST from clang-query
Stephen Kelly via cfe-commits
cfe-commits at lists.llvm.org
Fri Dec 6 15:41:27 PST 2019
Author: Stephen Kelly
Date: 2019-12-06T23:38:56Z
New Revision: b22d8ae7f436bfe63b28ceddea743071a6601eb1
URL: https://github.com/llvm/llvm-project/commit/b22d8ae7f436bfe63b28ceddea743071a6601eb1
DIFF: https://github.com/llvm/llvm-project/commit/b22d8ae7f436bfe63b28ceddea743071a6601eb1.diff
LOG: Use ASTDumper to dump the AST from clang-query
Summary:
This way, the output is not limited by the various API differences
between the dump() member functions. For example, all dumps are now in
color, while that used to be the case only for Decls and Stmts, but not
Types.
Additionally, while DynTypedNode::dump (which was used up to now) was
limited to dumping only Decls, Stmts and Types, this makes clang-query
support everything ASTNodeTraverser supports.
Reviewers: aaron.ballman
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62056
Added:
Modified:
clang-tools-extra/clang-query/Query.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clang-query/Query.cpp b/clang-tools-extra/clang-query/Query.cpp
index eea0e7766d3e..675fd968f46e 100644
--- a/clang-tools-extra/clang-query/Query.cpp
+++ b/clang-tools-extra/clang-query/Query.cpp
@@ -8,6 +8,7 @@
#include "Query.h"
#include "QuerySession.h"
+#include "clang/AST/ASTDumper.h"
#include "clang/ASTMatchers/ASTMatchFinder.h"
#include "clang/Frontend/ASTUnit.h"
#include "clang/Frontend/TextDiagnostic.h"
@@ -128,7 +129,11 @@ bool MatchQuery::run(llvm::raw_ostream &OS, QuerySession &QS) const {
}
if (QS.DetailedASTOutput) {
OS << "Binding for \"" << BI->first << "\":\n";
- BI->second.dump(OS, AST->getSourceManager());
+ const ASTContext &Ctx = AST->getASTContext();
+ const SourceManager &SM = Ctx.getSourceManager();
+ ASTDumper Dumper(OS, &Ctx.getCommentCommandTraits(), &SM,
+ SM.getDiagnostics().getShowColors(), Ctx.getPrintingPolicy());
+ Dumper.Visit(BI->second);
OS << "\n";
}
}
More information about the cfe-commits
mailing list