]> granicus.if.org Git - clang/commitdiff
Imply linker arguments from '-fveclib' option.
authorMichael Zolotukhin <mzolotukhin@apple.com>
Tue, 17 Mar 2015 22:13:05 +0000 (22:13 +0000)
committerMichael Zolotukhin <mzolotukhin@apple.com>
Tue, 17 Mar 2015 22:13:05 +0000 (22:13 +0000)
Summary: As discussed in D8097, we should provide corresponding linking flags when 'fveclib' is specified.

Reviewers: hfinkel

Differential Revision: http://reviews.llvm.org/D8362

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

lib/Driver/Tools.cpp
test/Driver/fveclib.c

index 3650a94b92bcc0856dfc6e28c97eb2a240947a61..681a9a388503b94e69e2ea54135feafc0d574403 100644 (file)
@@ -6138,6 +6138,16 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
     CmdArgs.push_back(Args.MakeArgString(std::string("-F") +
                                          (*it)->getValue()));
 
+  if (!Args.hasArg(options::OPT_nostdlib) &&
+      !Args.hasArg(options::OPT_nodefaultlibs)) {
+    if (Arg *A = Args.getLastArg(options::OPT_fveclib)) {
+      if (A->getValue() == StringRef("Accelerate")) {
+        CmdArgs.push_back("-framework");
+        CmdArgs.push_back("Accelerate");
+      }
+    }
+  }
+
   const char *Exec =
     Args.MakeArgString(getToolChain().GetLinkerPath());
   std::unique_ptr<Command> Cmd =
index 4515dd77316fb56e6a44c79b50e85c925b0ac6a4..3bd4bf630f0ad6f953effa3d76176130a8fcd8d2 100644 (file)
@@ -6,3 +6,12 @@
 // CHECK-ACCELERATE: "-fveclib=Accelerate"
 
 // CHECK-INVALID: error: invalid value 'something' in '-fveclib=something'
+
+// RUN: %clang -fveclib=Accelerate %s -target arm64-apple-ios8.0.0 -### 2>&1 | FileCheck --check-prefix=CHECK-LINK %s
+// CHECK-LINK: "-framework" "Accelerate"
+
+// RUN: %clang -fveclib=Accelerate %s -nostdlib -target arm64-apple-ios8.0.0 -### 2>&1 | FileCheck --check-prefix=CHECK-LINK-NOSTDLIB %s
+// CHECK-LINK-NOSTDLIB-NOT: "-framework" "Accelerate"
+
+// RUN: %clang -fveclib=Accelerate %s -nodefaultlibs -target arm64-apple-ios8.0.0 -### 2>&1 | FileCheck --check-prefix=CHECK-LINK-NODEFAULTLIBS %s
+// CHECK-LINK-NODEFAULTLIBS-NOT: "-framework" "Accelerate"