From 1ca9dd8507c7541b86e313b4ff99cdb98ee4dfd2 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Tue, 12 Feb 2019 18:19:34 +0000 Subject: [PATCH] [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 --- lldb/tools/lldb-instr/CMakeLists.txt | 1 + lldb/tools/lldb-instr/Instrument.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lldb/tools/lldb-instr/CMakeLists.txt b/lldb/tools/lldb-instr/CMakeLists.txt index 31776e5a1662..e3dbeba40066 100644 --- a/lldb/tools/lldb-instr/CMakeLists.txt +++ b/lldb/tools/lldb-instr/CMakeLists.txt @@ -4,6 +4,7 @@ add_lldb_tool(lldb-instr LINK_LIBS clangAST clangBasic + clangCodeGen clangFrontend clangLex clangRewrite diff --git a/lldb/tools/lldb-instr/Instrument.cpp b/lldb/tools/lldb-instr/Instrument.cpp index a2850f5461b4..cbc284233753 100644 --- a/lldb/tools/lldb-instr/Instrument.cpp +++ b/lldb/tools/lldb-instr/Instrument.cpp @@ -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(); + PCHOpts->registerWriter(llvm::make_unique()); + PCHOpts->registerReader(llvm::make_unique()); + + ClangTool T(OP.getCompilations(), OP.getSourcePathList(), PCHOpts); return T.run(newFrontendActionFactory().get()); }