diff options
Diffstat (limited to 'lib/Driver/Driver.cpp')
-rw-r--r-- | lib/Driver/Driver.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp index e24f017ceb..86e1161169 100644 --- a/lib/Driver/Driver.cpp +++ b/lib/Driver/Driver.cpp @@ -158,15 +158,23 @@ DerivedArgList *Driver::TranslateInputArgs(const InputArgList &Args) const { continue; } - // Rewrite reserved library names, unless -nostdlib is present. - if (!HasNostdlib && A->getOption().matches(options::OPT_l)) { + // Rewrite reserved library names. + if (A->getOption().matches(options::OPT_l)) { llvm::StringRef Value = A->getValue(Args); - if (Value == "stdc++") { + // Rewrite unless -nostdlib is present. + if (!HasNostdlib && Value == "stdc++") { DAL->AddFlagArg(A, Opts->getOption( options::OPT_Z_reserved_lib_stdcxx)); continue; } + + // Rewrite unconditionally. + if (Value == "cc_kext") { + DAL->AddFlagArg(A, Opts->getOption( + options::OPT_Z_reserved_lib_cckext)); + continue; + } } DAL->append(*it); |