Set missing options in LTOCodeGenerator::setTargetOptions.
[oota-llvm.git] / lib / LTO / LTOCodeGenerator.cpp
index 99236bd24eaafa3a3d92a3e93a2bb3d7d490db24..2772676c8e8c2600078e8a24adb4fdc5316facd6 100644 (file)
@@ -44,7 +44,6 @@
 #include "llvm/Support/TargetSelect.h"
 #include "llvm/Support/ToolOutputFile.h"
 #include "llvm/Support/raw_ostream.h"
-#include "llvm/Support/system_error.h"
 #include "llvm/Target/TargetLibraryInfo.h"
 #include "llvm/Target/TargetLowering.h"
 #include "llvm/Target/TargetOptions.h"
@@ -52,6 +51,7 @@
 #include "llvm/Transforms/IPO.h"
 #include "llvm/Transforms/IPO/PassManagerBuilder.h"
 #include "llvm/Transforms/ObjCARC.h"
+#include <system_error>
 using namespace llvm;
 
 const char* LTOCodeGenerator::getVersionString() {
@@ -141,6 +141,11 @@ void LTOCodeGenerator::setTargetOptions(TargetOptions options) {
   Options.TrapFuncName = options.TrapFuncName;
   Options.PositionIndependentExecutable = options.PositionIndependentExecutable;
   Options.UseInitArray = options.UseInitArray;
+  Options.DataSections = options.DataSections;
+  Options.FunctionSections = options.FunctionSections;
+
+  Options.MCOptions = options.MCOptions;
+  Options.JTType = options.JTType;
 }
 
 void LTOCodeGenerator::setDebugInfo(lto_debug_model debug) {
@@ -208,7 +213,8 @@ bool LTOCodeGenerator::compile_to_file(const char** name,
   // make unique temp .o file to put generated object file
   SmallString<128> Filename;
   int FD;
-  error_code EC = sys::fs::createTemporaryFile("lto-llvm", "o", FD, Filename);
+  std::error_code EC =
+      sys::fs::createTemporaryFile("lto-llvm", "o", FD, Filename);
   if (EC) {
     errMsg = EC.message();
     return false;
@@ -252,7 +258,7 @@ const void* LTOCodeGenerator::compile(size_t* length,
 
   // read .o file into memory buffer
   std::unique_ptr<MemoryBuffer> BuffPtr;
-  if (error_code ec = MemoryBuffer::getFile(name, BuffPtr, -1, false)) {
+  if (std::error_code ec = MemoryBuffer::getFile(name, BuffPtr, -1, false)) {
     errMsg = ec.message();
     sys::fs::remove(NativeObjectPath);
     return nullptr;