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
def _SLASH_Tp : CLJoinedOrSeparate<"Tp">, HelpText<"Specify a C++ source file">,
MetaVarName<"<filename>">;
def _SLASH_TP : CLFlag<"TP">, HelpText<"Treat all source files as C++">;
+def _SLASH_Za : CLFlag<"Za">;
// Ignored:
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,
--- /dev/null
+// 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"