diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 3 | ||||
| -rw-r--r-- | clang/test/Driver/Xlinker-args.c | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 5dd6fa1eacc..2d0998f099e 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -6597,7 +6597,8 @@ void visualstudio::Link::ConstructJob(Compilation &C, const JobAction &JA, it = Inputs.begin(), ie = Inputs.end(); it != ie; ++it) { if (it->isFilename()) CmdArgs.push_back(it->getFilename()); - // FIXME: Forward -Wl, etc. + else + it->getInputArg().renderAsInput(Args, CmdArgs); } const char *Exec = diff --git a/clang/test/Driver/Xlinker-args.c b/clang/test/Driver/Xlinker-args.c index d89d5bad1aa..4285af7944b 100644 --- a/clang/test/Driver/Xlinker-args.c +++ b/clang/test/Driver/Xlinker-args.c @@ -14,3 +14,11 @@ // DARWIN-NOT: --no-demangle // DARWIN: "one" "two" "three" "four" // LINUX: "--no-demangle" "one" "two" "three" "four" + +// Check that we forward '-Xlinker' and '-Wl,' on Windows. +// RUN: %clang -target i686-pc-win32 -### \ +// RUN: -Xlinker one -Wl,two %s 2>&1 | \ +// RUN: FileCheck -check-prefix=WIN %s +// WIN: link.exe +// WIN: "one" +// WIN: "two" |

