summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Driver.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2013-08-13 23:38:57 +0000
committerHans Wennborg <hans@hanshq.net>2013-08-13 23:38:57 +0000
commit2e27459d6c016cd0e49151fb3cd0c5c64b858412 (patch)
treec2974750c5691a6cd56e2812cbde4ddab4c9dd4b /clang/lib/Driver/Driver.cpp
parent7a15c4af9052cead89e81733d52ef9685905d1c8 (diff)
downloadbcm5719-llvm-2e27459d6c016cd0e49151fb3cd0c5c64b858412.tar.gz
bcm5719-llvm-2e27459d6c016cd0e49151fb3cd0c5c64b858412.zip
clang-cl: Support /link option and set target to win32
This adds support for the /link option, which forwards subsequent arguments to the linker. The test for this will only work when targetting win32. Since that's the only target where clang-cl makes sense, use that target by default. Differential Revision: http://llvm-reviews.chandlerc.com/D1388 llvm-svn: 188331
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r--clang/lib/Driver/Driver.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 68958047ba7..32a7d1aafd3 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -351,6 +351,12 @@ Compilation *Driver::BuildCompilation(ArrayRef<const char *> ArgList) {
options::OPT_ccc_pch_is_pth);
// FIXME: DefaultTargetTriple is used by the target-prefixed calls to as/ld
// and getToolChain is const.
+ if (IsCLMode()) {
+ // clang-cl targets Win32.
+ llvm::Triple T(DefaultTargetTriple);
+ T.setOSName(llvm::Triple::getOSTypeName(llvm::Triple::Win32));
+ DefaultTargetTriple = T.str();
+ }
if (const Arg *A = Args->getLastArg(options::OPT_target))
DefaultTargetTriple = A->getValue();
if (const Arg *A = Args->getLastArg(options::OPT_ccc_install_dir))
OpenPOWER on IntegriCloud