summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/FrontendActions.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-11-24 11:21:45 +0000
committerJohn McCall <rjmccall@apple.com>2010-11-24 11:21:45 +0000
commit9b66c4bbbe23accc8c3b3b8cbacf7f093870f68f (patch)
treeb57f74dd7f5edfbff1e89f832d76a03a0f4ebee2 /clang/lib/Frontend/FrontendActions.cpp
parentcb29802198d0f0fc623c53b34af64f364f1ea45f (diff)
downloadbcm5719-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.cpp11
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();
OpenPOWER on IntegriCloud