]> granicus.if.org Git - clang/commitdiff
[Android] Default to -fno-math-errno
authorPirama Arumuga Nainar <pirama@google.com>
Wed, 22 Aug 2018 17:43:05 +0000 (17:43 +0000)
committerPirama Arumuga Nainar <pirama@google.com>
Wed, 22 Aug 2018 17:43:05 +0000 (17:43 +0000)
Summary: Android's libm does not set errno.

Reviewers: srhines, enh

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D51068

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

lib/Driver/ToolChains/Linux.cpp
lib/Driver/ToolChains/Linux.h
test/Driver/fast-math.c

index f8f36239180cf3f87064755d2b3c3d6d257f3067..4e4317076fdc5386393de45581ec7501f7564770 100644 (file)
@@ -907,6 +907,12 @@ bool Linux::isPIEDefault() const {
           getTriple().isMusl() || getSanitizerArgs().requiresPIE();
 }
 
+bool Linux::IsMathErrnoDefault() const {
+  if (getTriple().isAndroid())
+    return false;
+  return Generic_ELF::IsMathErrnoDefault();
+}
+
 SanitizerMask Linux::getSupportedSanitizers() const {
   const bool IsX86 = getTriple().getArch() == llvm::Triple::x86;
   const bool IsX86_64 = getTriple().getArch() == llvm::Triple::x86_64;
index 22dbbecf6b96d96b1d7ef6eb322f9cb8d957471d..2f0c36190f2cc6168301bb4b2ea2677fe0cb2a9f 100644 (file)
@@ -38,6 +38,7 @@ public:
   void AddIAMCUIncludeArgs(const llvm::opt::ArgList &DriverArgs,
                            llvm::opt::ArgStringList &CC1Args) const override;
   bool isPIEDefault() const override;
+  bool IsMathErrnoDefault() const override;
   SanitizerMask getSupportedSanitizers() const override;
   void addProfileRTLibs(const llvm::opt::ArgList &Args,
                         llvm::opt::ArgStringList &CmdArgs) const override;
index 57e5d2c71575d55d10c5be4b8cf80df7137946cb..470e5a8104b435e40e7c70aeb0bcfc8cba8bdcc0 100644 (file)
@@ -95,6 +95,8 @@
 // RUN:   | FileCheck --check-prefix=CHECK-NO-MATH-ERRNO %s
 // RUN: %clang -### -target x86_64-fuchsia -c %s 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-NO-MATH-ERRNO %s
+// RUN: %clang -### -target x86_64-linux-android -c %s 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-NO-MATH-ERRNO %s
 //
 // Check that -ffast-math disables -fmath-errno, and -fno-fast-math merely
 // preserves the target default. Also check various flag set operations between