summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/lto/lto.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/lto/lto.cpp b/tools/lto/lto.cpp
index 99024589f1..963c67ee7d 100644
--- a/tools/lto/lto.cpp
+++ b/tools/lto/lto.cpp
@@ -31,6 +31,7 @@
#include "llvm/Analysis/Verifier.h"
#include "llvm/CodeGen/FileWriters.h"
#include "llvm/Target/SubtargetFeature.h"
+#include "llvm/Target/TargetOptions.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetMachineRegistry.h"
@@ -266,7 +267,11 @@ LTO::optimize(Module *M, std::ostream &Out,
if (!Target)
return LTO_NO_TARGET;
-
+
+ // If target supports exception handling then enable it now.
+ if (Target->getTargetAsmInfo()->doesSupportExceptionHandling())
+ ExceptionHandling = true;
+
// Start off with a verification pass.
Passes.add(createVerifierPass());