]> granicus.if.org Git - clang/commitdiff
Update for LLVM API change
authorSaleem Abdulrasool <compnerd@compnerd.org>
Thu, 6 Mar 2014 20:47:19 +0000 (20:47 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Thu, 6 Mar 2014 20:47:19 +0000 (20:47 +0000)
Use the new getObjectFormat/setObjectFormat instead of Environment now that the
file format is a separate field.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203161 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/Targets.cpp
lib/Driver/Driver.cpp
lib/Driver/Tools.cpp
lib/Driver/WindowsToolChain.cpp

index 1a59ec6208668650700ea481508cdc1cc2c4d6c6..6df7b95b29e346b8b82197943bc6a9bad14076bd 100644 (file)
@@ -5911,7 +5911,7 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) {
     }
 
   case llvm::Triple::x86_64:
-    if (Triple.isOSDarwin() || Triple.getEnvironment() == llvm::Triple::MachO)
+    if (Triple.isOSDarwin() || Triple.getObjectFormat() == llvm::Triple::MachO)
       return new DarwinX86_64TargetInfo(Triple);
 
     switch (os) {
index ba53db073ce2afdf4167757a0f60ac472544312a..382f8af405b87aa6e28ded162fab783ea2bd6551 100644 (file)
@@ -1971,7 +1971,7 @@ const ToolChain &Driver::getToolChain(const ArgList &Args,
         TC = new toolchains::Generic_ELF(*this, Target, Args);
         break;
       }
-      if (Target.getEnvironment() == llvm::Triple::MachO) {
+      if (Target.getObjectFormat() == llvm::Triple::MachO) {
         TC = new toolchains::MachO(*this, Target, Args);
         break;
       }
index 70c06466bfd153532ffcb39360ccc21d1e86167b..86a62376abdc4970c238f9d682f9c209c6c11883 100644 (file)
@@ -666,10 +666,6 @@ StringRef tools::arm::getARMFloatABI(const Driver &D, const ArgList &Args,
         // EABI is always AAPCS, and if it was not marked 'hard', it's softfp
         FloatABI = "softfp";
         break;
-      case llvm::Triple::MachO: {
-        FloatABI = "soft";
-        break;
-      }
       case llvm::Triple::Android: {
         std::string ArchName =
           arm::getLLVMArchSuffixForARM(arm::getARMTargetCPU(Args, Triple));
@@ -682,6 +678,10 @@ StringRef tools::arm::getARMFloatABI(const Driver &D, const ArgList &Args,
       default:
         // Assume "soft", but warn the user we are guessing.
         FloatABI = "soft";
+        // *-macho defaults to "soft"
+        if (Triple.getOS() == llvm::Triple::UnknownOS &&
+            Triple.getObjectFormat() == llvm::Triple::MachO)
+          break;
         D.Diag(diag::warn_drv_assuming_mfloat_abi_is) << "soft";
         break;
       }
@@ -761,7 +761,8 @@ void Clang::AddARMTargetArgs(const ArgList &Args,
     // The backend is hardwired to assume AAPCS for M-class processors, ensure
     // the frontend matches that.
     if (Triple.getEnvironment() == llvm::Triple::EABI ||
-        Triple.getEnvironment() == llvm::Triple::MachO ||
+        (Triple.getOS() == llvm::Triple::UnknownOS &&
+         Triple.getObjectFormat() == llvm::Triple::MachO) ||
         StringRef(CPUName).startswith("cortex-m")) {
       ABIName = "aapcs";
     } else {
@@ -4885,7 +4886,7 @@ void darwin::setTripleTypeForMachOArchName(llvm::Triple &T, StringRef Str) {
     T.setArchName(Str);
   else if (Str == "armv6m" || Str == "armv7m" || Str == "armv7em") {
     T.setOS(llvm::Triple::UnknownOS);
-    T.setEnvironment(llvm::Triple::MachO);
+    T.setObjectFormat(llvm::Triple::MachO);
   }
 }
 
index e19292085e8a628324c575cf4e8ef185615d338a..c9328e682531cd0b37dfe5058885fa59dd4edc55 100644 (file)
@@ -43,7 +43,7 @@ Tool *Windows::buildLinker() const {
 }
 
 Tool *Windows::buildAssembler() const {
-  if (getTriple().getEnvironment() == llvm::Triple::MachO)
+  if (getTriple().getObjectFormat() == llvm::Triple::MachO)
     return new tools::darwin::Assemble(*this);
   getDriver().Diag(clang::diag::err_no_external_assembler);
   return NULL;