diff options
| author | John McCall <rjmccall@apple.com> | 2010-11-24 11:21:45 +0000 |
|---|---|---|
| committer | John McCall <rjmccall@apple.com> | 2010-11-24 11:21:45 +0000 |
| commit | 9b66c4bbbe23accc8c3b3b8cbacf7f093870f68f (patch) | |
| tree | b57f74dd7f5edfbff1e89f832d76a03a0f4ebee2 /clang/lib/Frontend/ASTConsumers.cpp | |
| parent | cb29802198d0f0fc623c53b34af64f364f1ea45f (diff) | |
| download | bcm5719-llvm-9b66c4bbbe23accc8c3b3b8cbacf7f093870f68f.tar.gz bcm5719-llvm-9b66c4bbbe23accc8c3b3b8cbacf7f093870f68f.zip | |
Add -cc1 -ast-dump-xml, an excessively detailed XML dump of the internals
of the ASTs. Only available in assertions builds. No stability guarantee.
This is intended solely as a debugging tool. I'm not sure if the goals
are sufficiently aligned with the XML printer to allow a common
implementation.
Currently just falls back on the StmtDumper to display statements,
which means it doesn't produce valid XML in those cases.
llvm-svn: 120088
Diffstat (limited to 'clang/lib/Frontend/ASTConsumers.cpp')
| -rw-r--r-- | clang/lib/Frontend/ASTConsumers.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/lib/Frontend/ASTConsumers.cpp b/clang/lib/Frontend/ASTConsumers.cpp index eb7f270ae8f..5c7c02da9b0 100644 --- a/clang/lib/Frontend/ASTConsumers.cpp +++ b/clang/lib/Frontend/ASTConsumers.cpp @@ -449,3 +449,23 @@ public: ASTConsumer *clang::CreateInheritanceViewer(const std::string& clsname) { return new InheritanceViewer(clsname); } + +//===----------------------------------------------------------------------===// +/// ASTDumperXML - In-depth XML dumping. + +namespace { +class ASTDumpXML : public ASTConsumer { + llvm::raw_ostream &OS; + +public: + ASTDumpXML(llvm::raw_ostream &OS) : OS(OS) {} + + void HandleTranslationUnit(ASTContext &C) { + C.getTranslationUnitDecl()->dumpXML(OS); + } +}; +} + +ASTConsumer *clang::CreateASTDumperXML(llvm::raw_ostream &OS) { + return new ASTDumpXML(OS); +} |

