aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaojian Wu <hokein.wu@gmail.com>2021-02-11 09:25:17 +0100
committerHaojian Wu <hokein.wu@gmail.com>2021-02-11 09:40:47 +0100
commitdf1a17c219c073427f9d00eb042057bb3a4a3c64 (patch)
tree4707f60d23bdf3be208a6f1105e5ab1425f2e973
parent3b4f706ae16bb12b7d925fbf428def7cb2a6f7db (diff)
downloadllvm-df1a17c219c073427f9d00eb042057bb3a4a3c64.zip
llvm-df1a17c219c073427f9d00eb042057bb3a4a3c64.tar.gz
llvm-df1a17c219c073427f9d00eb042057bb3a4a3c64.tar.bz2
[clang-check] Add tokens-dump in clang-check.
It is useful for syntax-tree developement. Reviewed By: kbobyrev Differential Revision: https://reviews.llvm.org/D96017
-rw-r--r--clang/tools/clang-check/ClangCheck.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/tools/clang-check/ClangCheck.cpp b/clang/tools/clang-check/ClangCheck.cpp
index 4be3ce9..11fdeb7 100644
--- a/clang/tools/clang-check/ClangCheck.cpp
+++ b/clang/tools/clang-check/ClangCheck.cpp
@@ -88,6 +88,9 @@ static cl::opt<bool> FixWhatYouCan(
static cl::opt<bool> SyntaxTreeDump("syntax-tree-dump",
cl::desc("dump the syntax tree"),
cl::cat(ClangCheckCategory));
+static cl::opt<bool> TokensDump("tokens-dump",
+ cl::desc("dump the preprocessed tokens"),
+ cl::cat(ClangCheckCategory));
namespace {
@@ -148,6 +151,8 @@ public:
void HandleTranslationUnit(clang::ASTContext &AST) override {
clang::syntax::TokenBuffer TB = std::move(Collector).consume();
+ if (TokensDump)
+ llvm::outs() << TB.dumpForTests();
clang::syntax::Arena A(AST.getSourceManager(), AST.getLangOpts(), TB);
llvm::outs() << clang::syntax::buildSyntaxTree(A, AST)->dump(
AST.getSourceManager());
@@ -217,7 +222,7 @@ int main(int argc, const char **argv) {
FrontendFactory = newFrontendActionFactory<clang::ento::AnalysisAction>();
else if (Fixit)
FrontendFactory = newFrontendActionFactory<ClangCheckFixItAction>();
- else if (SyntaxTreeDump)
+ else if (SyntaxTreeDump || TokensDump)
FrontendFactory = newFrontendActionFactory<DumpSyntaxTree>();
else
FrontendFactory = newFrontendActionFactory(&CheckFactory);