From e4b26fc7a7573aff71ca3d3b9c21ae3556e7d659 Mon Sep 17 00:00:00 2001 From: Adrian McCarthy Date: Fri, 13 May 2016 23:20:11 +0000 Subject: Get default -fms-compatibility-version from cl.exe's version -fms-compatibility-version was defaulting to 18 (VS 2013), which is a pain if your environment is pointing to version 19 (VS 2015) libraries. If cl.exe can be found, this patch uses its version number as the default instead. It re-uses the existing code to find the Visual Studio binaries folder and WinAPI methods to check its version. You can still explicitly specify a compatibility version on the command line. If you don't have cl.exe, this should be a no-op and you'll get the old default of 18. This affected the tests, which assumed that if you didn't specific a version, that it would default to 18, but this won't be true for all machines. So a couple test cases had to be eliminated and a couple others had to be tweaked to allow for various outputs. Addresses: https://llvm.org/bugs/show_bug.cgi?id=27215 Differential Revision: http://reviews.llvm.org/D20136 llvm-svn: 269515 --- clang/lib/Driver/Tools.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'clang/lib/Driver/Tools.h') diff --git a/clang/lib/Driver/Tools.h b/clang/lib/Driver/Tools.h index c9d5c2238d6..723b1dcfa9b 100644 --- a/clang/lib/Driver/Tools.h +++ b/clang/lib/Driver/Tools.h @@ -682,7 +682,8 @@ public: /// Visual studio tools. namespace visualstudio { -VersionTuple getMSVCVersion(const Driver *D, const llvm::Triple &Triple, +VersionTuple getMSVCVersion(const Driver *D, const ToolChain &TC, + const llvm::Triple &Triple, const llvm::opt::ArgList &Args, bool IsWindowsMSVC); class LLVM_LIBRARY_VISIBILITY Linker : public Tool { -- cgit v1.2.3