diff options
author | Hans Wennborg <hans@hanshq.net> | 2015-03-04 23:16:21 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2015-03-04 23:16:21 +0000 |
commit | e4c47f2e8b5a43f58e690b3312fb71c42c620c33 (patch) | |
tree | 28b585b9218b8f5d3f1bb35816fb76d0f8eb4c0a | |
parent | b844b1a0ffc29ae18aa6dc36c060366ad91e7955 (diff) | |
download | bcm5719-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.cpp | 4 | ||||
-rw-r--r-- | clang/test/Driver/msvc-link.c | 12 |
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" |