[lldb-instr] Pass PCHContainerOperations to ClangTool

On a local modules build this would cause an error.

> fatal error: no handler registered for module format 'obj'
> LLVM ERROR: unknown module format

Interestingly enough, this didn't trigger on the GreenDragon CMake bot,
which is configured with modules.

llvm-svn: 353869
This commit is contained in:
Jonas Devlieghere 2019-02-12 18:19:34 +00:00
parent f6e5594e81
commit 1ca9dd8507
2 changed files with 8 additions and 1 deletions

View File

@ -4,6 +4,7 @@ add_lldb_tool(lldb-instr
LINK_LIBS
clangAST
clangBasic
clangCodeGen
clangFrontend
clangLex
clangRewrite

View File

@ -1,6 +1,7 @@
#include "clang/AST/AST.h"
#include "clang/AST/ASTConsumer.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/CodeGen/ObjectFilePCHContainerOperations.h"
#include "clang/Frontend/ASTConsumers.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/FrontendActions.h"
@ -280,6 +281,11 @@ int main(int argc, const char **argv) {
CommonOptionsParser OP(argc, argv, InstrCategory,
"Utility for generating the macros for LLDB's "
"instrumentation framework.");
ClangTool T(OP.getCompilations(), OP.getSourcePathList());
auto PCHOpts = std::make_shared<PCHContainerOperations>();
PCHOpts->registerWriter(llvm::make_unique<ObjectFilePCHContainerWriter>());
PCHOpts->registerReader(llvm::make_unique<ObjectFilePCHContainerReader>());
ClangTool T(OP.getCompilations(), OP.getSourcePathList(), PCHOpts);
return T.run(newFrontendActionFactory<SBAction>().get());
}