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/FrontendActions.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/FrontendActions.cpp')
-rw-r--r-- | clang/lib/Frontend/FrontendActions.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/Frontend/FrontendActions.cpp b/clang/lib/Frontend/FrontendActions.cpp index d18baaa7e1e..0ffc06a4772 100644 --- a/clang/lib/Frontend/FrontendActions.cpp +++ b/clang/lib/Frontend/FrontendActions.cpp @@ -59,6 +59,17 @@ ASTConsumer *ASTDumpAction::CreateASTConsumer(CompilerInstance &CI, return CreateASTDumper(); } +ASTConsumer *ASTDumpXMLAction::CreateASTConsumer(CompilerInstance &CI, + llvm::StringRef InFile) { + llvm::raw_ostream *OS; + if (CI.getFrontendOpts().OutputFile.empty()) + OS = &llvm::outs(); + else + OS = CI.createDefaultOutputFile(false, InFile); + if (!OS) return 0; + return CreateASTDumperXML(*OS); +} + ASTConsumer *ASTViewAction::CreateASTConsumer(CompilerInstance &CI, llvm::StringRef InFile) { return CreateASTViewer(); |