diff options
-rw-r--r-- | lldb/source/Expression/ClangExpressionParser.cpp | 10 | ||||
-rw-r--r-- | lldb/source/lldb.cpp | 17 |
2 files changed, 16 insertions, 11 deletions
diff --git a/lldb/source/Expression/ClangExpressionParser.cpp b/lldb/source/Expression/ClangExpressionParser.cpp index 3b0269ab319..a204a1ea916 100644 --- a/lldb/source/Expression/ClangExpressionParser.cpp +++ b/lldb/source/Expression/ClangExpressionParser.cpp @@ -103,16 +103,6 @@ ClangExpressionParser::ClangExpressionParser (ExecutionContextScope *exe_scope, m_compiler (), m_code_generator () { - // Initialize targets first, so that --version shows registered targets. - static struct InitializeLLVM { - InitializeLLVM() { - llvm::InitializeAllTargets(); - llvm::InitializeAllAsmPrinters(); - llvm::InitializeAllTargetMCs(); - llvm::InitializeAllDisassemblers(); - } - } InitializeLLVM; - // 1. Create a new compiler instance. m_compiler.reset(new CompilerInstance()); diff --git a/lldb/source/lldb.cpp b/lldb/source/lldb.cpp index 613eaf27b31..cd620b7945b 100644 --- a/lldb/source/lldb.cpp +++ b/lldb/source/lldb.cpp @@ -25,6 +25,7 @@ #include "lldb/Target/Thread.h" #include "llvm/ADT/StringRef.h" +#include "llvm/Support/TargetSelect.h" #include "Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h" #include "Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h" @@ -95,6 +96,12 @@ using namespace lldb; using namespace lldb_private; +static void fatal_error_handler(void *user_data, const std::string& reason, + bool gen_crash_diag) { + Host::SetCrashDescription(reason.c_str()); + ::abort(); +} + void lldb_private::Initialize () { @@ -110,7 +117,15 @@ lldb_private::Initialize () HostInfo::Initialize(); Timer::Initialize (); Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__); - + + // Initialize LLVM and Clang + llvm::InitializeAllTargets(); + llvm::InitializeAllAsmPrinters(); + llvm::InitializeAllTargetMCs(); + llvm::InitializeAllDisassemblers(); + llvm::install_fatal_error_handler(fatal_error_handler, 0); + + // Initialize plug-ins ABIMacOSX_i386::Initialize(); ABIMacOSX_arm::Initialize(); ABIMacOSX_arm64::Initialize(); |