summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp')
-rw-r--r--lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp b/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp
index 4871c79f23d..40e5c89ecb0 100644
--- a/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp
+++ b/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp
@@ -10,6 +10,7 @@
#include "DisassemblerLLVM.h"
#include "llvm-c/EnhancedDisassembly.h"
+#include "llvm/Support/TargetSelect.h"
#include "lldb/Core/Address.h"
#include "lldb/Core/DataExtractor.h"
@@ -669,6 +670,16 @@ DisassemblerLLVM::DisassemblerLLVM(const ArchSpec &arch) :
m_disassembler (NULL),
m_disassembler_thumb (NULL) // For ARM only
{
+ // Initialize the LLVM objects needed to use the disassembler.
+ static struct InitializeLLVM {
+ InitializeLLVM() {
+ llvm::InitializeAllTargetInfos();
+ llvm::InitializeAllTargetMCs();
+ llvm::InitializeAllAsmParsers();
+ llvm::InitializeAllDisassemblers();
+ }
+ } InitializeLLVM;
+
const std::string &arch_triple = arch.GetTriple().str();
if (!arch_triple.empty())
{
OpenPOWER on IntegriCloud