From: Dan Albert Date: Thu, 21 Feb 2019 21:13:03 +0000 (+0000) Subject: [Driver] Fix float ABI default for Android ARMv8. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ae84a25bd6058e620d852a22cc337ea6f35c682f;p=clang [Driver] Fix float ABI default for Android ARMv8. Summary: Android doesn't regress back to soft float after ARMv7 :) Reviewers: srhines, pirama Reviewed By: srhines, pirama Subscribers: javed.absar, kristof.beyls, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58477 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354622 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/ToolChains/Arch/ARM.cpp b/lib/Driver/ToolChains/Arch/ARM.cpp index c641e5c171..81aba54710 100644 --- a/lib/Driver/ToolChains/Arch/ARM.cpp +++ b/lib/Driver/ToolChains/Arch/ARM.cpp @@ -248,7 +248,7 @@ arm::FloatABI arm::getARMFloatABI(const ToolChain &TC, const ArgList &Args) { ABI = FloatABI::SoftFP; break; case llvm::Triple::Android: - ABI = (SubArch == 7) ? FloatABI::SoftFP : FloatABI::Soft; + ABI = (SubArch >= 7) ? FloatABI::SoftFP : FloatABI::Soft; break; default: // Assume "soft", but warn the user we are guessing. diff --git a/test/Driver/arm-float-abi.c b/test/Driver/arm-float-abi.c index e5b42c9696..9a76d1ee39 100644 --- a/test/Driver/arm-float-abi.c +++ b/test/Driver/arm-float-abi.c @@ -4,3 +4,13 @@ // ARMV7-ERROR: unsupported option '-mfloat-abi=hard' for target 'thumbv7' // NOERROR-NOT: unsupported option + +// RUN: %clang -target armv7-linux-androideabi21 %s -### -c 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-ARM7-ANDROID %s +// CHECK-ARM7-ANDROID-NOT: "-target-feature" "+soft-float" +// CHECK-ARM7-ANDROID: "-target-feature" "+soft-float-abi" + +// RUN: %clang -target armv8-linux-androideabi21 %s -### -c 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-ARM8-ANDROID %s +// CHECK-ARM8-ANDROID-NOT: "-target-feature" "+soft-float" +// CHECK-ARM8-ANDROID: "-target-feature" "+soft-float-abi"