summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2015-03-04 23:16:21 +0000
committerHans Wennborg <hans@hanshq.net>2015-03-04 23:16:21 +0000
commite4c47f2e8b5a43f58e690b3312fb71c42c620c33 (patch)
tree28b585b9218b8f5d3f1bb35816fb76d0f8eb4c0a
parentb844b1a0ffc29ae18aa6dc36c060366ad91e7955 (diff)
downloadbcm5719-llvm-e4c47f2e8b5a43f58e690b3312fb71c42c620c33.tar.gz
bcm5719-llvm-e4c47f2e8b5a43f58e690b3312fb71c42c620c33.zip
Pass -dll to link.exe when building with -shared (PR22697)
And start building a test for non-clang-cl link.exe invocations. llvm-svn: 231312
-rw-r--r--clang/lib/Driver/Tools.cpp4
-rw-r--r--clang/test/Driver/msvc-link.c12
2 files changed, 15 insertions, 1 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 5d66605c257..a80214e1e66 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -8098,7 +8098,9 @@ void visualstudio::Link::ConstructJob(Compilation &C, const JobAction &JA,
if (Args.hasArg(options::OPT_g_Group))
CmdArgs.push_back("-debug");
- bool DLL = Args.hasArg(options::OPT__SLASH_LD, options::OPT__SLASH_LDd);
+ bool DLL = Args.hasArg(options::OPT__SLASH_LD,
+ options::OPT__SLASH_LDd,
+ options::OPT_shared);
if (DLL) {
CmdArgs.push_back(Args.MakeArgString("-dll"));
diff --git a/clang/test/Driver/msvc-link.c b/clang/test/Driver/msvc-link.c
new file mode 100644
index 00000000000..a93ecaf9b63
--- /dev/null
+++ b/clang/test/Driver/msvc-link.c
@@ -0,0 +1,12 @@
+// RUN: %clang -target i686-pc-windows-msvc -### %s 2>&1 | FileCheck --check-prefix=BASIC %s
+// BASIC: "link.exe"
+// BASIC: "-out:a.exe"
+// BASIC: "-defaultlib:libcmt"
+// BASIC: "-nologo"
+
+// RUN: %clang -target i686-pc-windows-msvc -shared -o a.dll -### %s 2>&1 | FileCheck --check-prefix=DLL %s
+// DLL: "link.exe"
+// DLL: "-out:a.dll"
+// DLL: "-defaultlib:libcmt"
+// DLL: "-nologo"
+// DLL: "-dll"
OpenPOWER on IntegriCloud