From e4c47f2e8b5a43f58e690b3312fb71c42c620c33 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Wed, 4 Mar 2015 23:16:21 +0000 Subject: [PATCH] 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 --- clang/lib/Driver/Tools.cpp | 4 +++- clang/test/Driver/msvc-link.c | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 clang/test/Driver/msvc-link.c diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 5d66605..a80214e 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 0000000..a93ecaf --- /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" -- 2.7.4