diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 4 | ||||
-rw-r--r-- | clang/test/Driver/darwin-embedded.c | 25 |
2 files changed, 29 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index acb87a94148..a3a385d1cf1 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -662,6 +662,10 @@ 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)); diff --git a/clang/test/Driver/darwin-embedded.c b/clang/test/Driver/darwin-embedded.c index 5f545d535f2..66b7bd9fa7f 100644 --- a/clang/test/Driver/darwin-embedded.c +++ b/clang/test/Driver/darwin-embedded.c @@ -12,24 +12,49 @@ // RUN: FileCheck %s < %t // ARMv6m has no float +// CHECK-LABEL: Target: +// CHECK-NOT: warning: unknown platform +// CHECK: "-mfloat-abi" "soft" // CHECK: libclang_rt.soft_static.a // ARMv7em does, but defaults to soft +// CHECK-LABEL: Target: +// CHECK-NOT: warning: unknown platform +// CHECK: "-mfloat-abi" "soft" // CHECK: libclang_rt.soft_static.a // Which can be overridden +// CHECK-LABEL: Target: +// CHECK-NOT: warning: unknown platform +// CHECK: "-mfloat-abi" "hard" // CHECK: libclang_rt.hard_static.a // ARMv7m has no float either +// CHECK-LABEL: Target: +// CHECK-NOT: warning: unknown platform +// CHECK: "-mfloat-abi" "soft" // CHECK: libclang_rt.soft_pic.a // But it can be enabled on ARMv7em +// CHECK-LABEL: Target: +// CHECK-NOT: warning: unknown platform +// CHECK: "-mfloat-abi" "hard" // CHECK: libclang_rt.hard_pic.a // "softfp" must link against a soft-float library since that's what the // callers we're compiling will expect. +// CHECK-LABEL: Target: +// CHECK-NOT: warning: unknown platform +// CHECK: "-mfloat-abi" "soft" // CHECK: libclang_rt.soft_pic.a // -arch "armv7" (== embedded v7a) can be used in a couple of variants: +// CHECK-LABEL: Target: +// CHECK-NOT: warning: unknown platform +// CHECK: "-mfloat-abi" "hard" // CHECK: libclang_rt.hard_static.a + +// CHECK-LABEL: Target: +// CHECK-NOT: warning: unknown platform +// CHECK: "-mfloat-abi" "soft" // CHECK: libclang_rt.soft_pic.a |