r258814 - [Driver] Make sure -fno-math-builtin option is being passed by the driver.

Chad Rosier via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 26 07:52:05 PST 2016


Author: mcrosier
Date: Tue Jan 26 09:52:05 2016
New Revision: 258814

URL: http://llvm.org/viewvc/llvm-project?rev=258814&view=rev
Log:
[Driver] Make sure -fno-math-builtin option is being passed by the driver.

Support for the -fno-math-builtin option was added in r186899.  The codegen side
is being tested in test/CodeGen/nomathbuiltin.c.  The missing part was just
passing the option through the driver.

PR26317

Modified:
    cfe/trunk/lib/Driver/Tools.cpp
    cfe/trunk/test/CodeGen/nomathbuiltin.c
    cfe/trunk/test/Driver/clang_f_opts.c

Modified: cfe/trunk/lib/Driver/Tools.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=258814&r1=258813&r2=258814&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Tools.cpp (original)
+++ cfe/trunk/lib/Driver/Tools.cpp Tue Jan 26 09:52:05 2016
@@ -5465,12 +5465,13 @@ void Clang::ConstructJob(Compilation &C,
                    options::OPT_fno_apple_pragma_pack, false))
     CmdArgs.push_back("-fapple-pragma-pack");
 
+  // Process -fno-math-builtin options.
   // le32-specific flags:
   //  -fno-math-builtin: clang should not convert math builtins to intrinsics
   //                     by default.
-  if (getToolChain().getArch() == llvm::Triple::le32) {
+  if (Args.hasArg(options::OPT_fno_math_builtin) ||
+      getToolChain().getArch() == llvm::Triple::le32)
     CmdArgs.push_back("-fno-math-builtin");
-  }
 
 // Default to -fno-builtin-str{cat,cpy} on Darwin for ARM.
 //

Modified: cfe/trunk/test/CodeGen/nomathbuiltin.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/nomathbuiltin.c?rev=258814&r1=258813&r2=258814&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/nomathbuiltin.c (original)
+++ cfe/trunk/test/CodeGen/nomathbuiltin.c Tue Jan 26 09:52:05 2016
@@ -9,4 +9,3 @@ double foo(double a, double b) {
   return pow(a, b);
 // CHECK: call {{.*}}double @pow
 }
-

Modified: cfe/trunk/test/Driver/clang_f_opts.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/clang_f_opts.c?rev=258814&r1=258813&r2=258814&view=diff
==============================================================================
--- cfe/trunk/test/Driver/clang_f_opts.c (original)
+++ cfe/trunk/test/Driver/clang_f_opts.c Tue Jan 26 09:52:05 2016
@@ -191,6 +191,9 @@
 // RUN: %clang -### -S -fexec-charset=iso-8859-1 -o /dev/null %s 2>&1 | FileCheck -check-prefix=CHECK-INVALID-INPUT-CHARSET %s
 // CHECK-INVALID-INPUT-CHARSET: error: invalid value 'iso-8859-1' in '-fexec-charset=iso-8859-1'
 
+// RUN: %clang -### -S -fno-math-builtin %s 2>&1 | FileCheck -check-prefix=CHECK-NO-MATH-BUILTIN %s
+// CHECK-NO-MATH-BUILTIN: "-fno-math-builtin"
+
 // Test that we don't error on these.
 // RUN: %clang -### -S -Werror                                                \
 // RUN:     -falign-functions -falign-functions=2 -fno-align-functions        \




More information about the cfe-commits mailing list