From: Hans Wennborg Date: Thu, 8 Aug 2013 16:54:31 +0000 (+0000) Subject: clang-cl: Hook up /Za to prevent adding oldnames.lib dependency X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bccf68f0901f6457ff00874ef57644100a1c7a59;p=clang clang-cl: Hook up /Za to prevent adding oldnames.lib dependency The /Za flag should probably do more, but let's start with this. Differential Revision: http://llvm-reviews.chandlerc.com/D1320 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187991 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Driver/CLCompatOptions.td b/include/clang/Driver/CLCompatOptions.td index e98d8e8516..197ae9ebe5 100644 --- a/include/clang/Driver/CLCompatOptions.td +++ b/include/clang/Driver/CLCompatOptions.td @@ -98,6 +98,7 @@ def _SLASH_TC : CLFlag<"TC">, HelpText<"Treat all source files as C">; def _SLASH_Tp : CLJoinedOrSeparate<"Tp">, HelpText<"Specify a C++ source file">, MetaVarName<"">; def _SLASH_TP : CLFlag<"TP">, HelpText<"Treat all source files as C++">; +def _SLASH_Za : CLFlag<"Za">; // Ignored: diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index fb27bfde62..a1193f5473 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -3719,10 +3719,11 @@ void Clang::AddClangCLArgs(const ArgList &Args, ArgStringList &CmdArgs) const { llvm_unreachable("Unexpected option ID."); } - // This provides POSIX compatibility (maps 'open' to '_open'), which most users - // want. MSVC has a switch to turn off this autolinking, but it's not - // implemented in clang yet. - CmdArgs.push_back("--dependent-lib=oldnames"); + if (!Args.hasArg(options::OPT__SLASH_Za)) { + // This provides POSIX compatibility (maps 'open' to '_open'), + // which most users want. + CmdArgs.push_back("--dependent-lib=oldnames"); + } } void ClangAs::ConstructJob(Compilation &C, const JobAction &JA, diff --git a/test/Driver/cl-Za.c b/test/Driver/cl-Za.c new file mode 100644 index 0000000000..b1cb0b785b --- /dev/null +++ b/test/Driver/cl-Za.c @@ -0,0 +1,11 @@ +// Don't attempt slash switches on msys bash. +// REQUIRES: shell-preserves-root + +// Note: %s must be preceded by --, otherwise it may be interpreted as a +// command-line option, e.g. on Mac where %s is commonly under /Users. + +// RUN: %clang_cl -### -- %s 2>&1 | FileCheck -check-prefix=DEFAULT %s +// DEFAULT: "--dependent-lib=oldnames" + +// RUN: %clang_cl /Za -### -- %s 2>&1 | FileCheck -check-prefix=Za %s +// Za-NOT: "--dependent-lib=oldnames"