https://github.com/akparmar004 updated 
https://github.com/llvm/llvm-project/pull/174157

>From a4ca537edaf79070878c332e19c8ec35d40d2e51 Mon Sep 17 00:00:00 2001
From: akparmar004 <[email protected]>
Date: Fri, 2 Jan 2026 00:51:20 +0530
Subject: [PATCH 1/2] [Driver][Windows] Stop linking oldnames.lib for newer
 Windows SDKs

---
 clang/lib/Driver/ToolChains/MSVC.cpp | 30 ++++++++++++++++------------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/clang/lib/Driver/ToolChains/MSVC.cpp 
b/clang/lib/Driver/ToolChains/MSVC.cpp
index fcae5b7a18f34..2e6979f515f9e 100644
--- a/clang/lib/Driver/ToolChains/MSVC.cpp
+++ b/clang/lib/Driver/ToolChains/MSVC.cpp
@@ -26,12 +26,12 @@
 #include <cstdio>
 
 #ifdef _WIN32
-  #define WIN32_LEAN_AND_MEAN
-  #define NOGDI
-  #ifndef NOMINMAX
-    #define NOMINMAX
-  #endif
-  #include <windows.h>
+#define WIN32_LEAN_AND_MEAN
+#define NOGDI
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+#include <windows.h>
 #endif
 
 using namespace clang::driver;
@@ -88,7 +88,11 @@ void visualstudio::Linker::ConstructJob(Compilation &C, 
const JobAction &JA,
   if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles) &&
       !C.getDriver().IsCLMode() && !C.getDriver().IsFlangMode()) {
     CmdArgs.push_back("-defaultlib:libcmt");
-    CmdArgs.push_back("-defaultlib:oldnames");
+    bool NeedsOldNames = std::none_of(
+        TC.getFilePaths().begin(), TC.getFilePaths().end(),
+        [](const auto &P) { return P.find("10.") != llvm::StringRef::npos; });
+    if (NeedsOldNames)
+      CmdArgs.push_back("-defaultlib:oldnames");
   }
 
   // If the VC environment hasn't been configured (perhaps because the user
@@ -213,8 +217,8 @@ void visualstudio::Linker::ConstructJob(Compilation &C, 
const JobAction &JA,
       // to ensure proper SEH handling.
       CmdArgs.push_back(Args.MakeArgString(
           TC.getArch() == llvm::Triple::x86
-              ? "-include:___asan_seh_interceptor"
-              : "-include:__asan_seh_interceptor"));
+                                 ? "-include:___asan_seh_interceptor"
+                                 : "-include:__asan_seh_interceptor"));
       // Make sure the linker consider all object files from the dynamic 
runtime
       // thunk.
       CmdArgs.push_back(Args.MakeArgString(
@@ -776,10 +780,10 @@ void MSVCToolChain::AddClangSystemIncludeArgs(const 
ArgList &DriverArgs,
   // As a fallback, select default install paths.
   // FIXME: Don't guess drives and paths like this on Windows.
   const StringRef Paths[] = {
-    "C:/Program Files/Microsoft Visual Studio 10.0/VC/include",
-    "C:/Program Files/Microsoft Visual Studio 9.0/VC/include",
-    "C:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include",
-    "C:/Program Files/Microsoft Visual Studio 8/VC/include",
+      "C:/Program Files/Microsoft Visual Studio 10.0/VC/include",
+      "C:/Program Files/Microsoft Visual Studio 9.0/VC/include",
+      "C:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include",
+      "C:/Program Files/Microsoft Visual Studio 8/VC/include",
     "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include"
   };
   addSystemIncludes(DriverArgs, CC1Args, Paths);

>From 151af6380b6bfecd4615fed2239091491e9a3ced Mon Sep 17 00:00:00 2001
From: akparmar004 <[email protected]>
Date: Fri, 2 Jan 2026 01:11:27 +0530
Subject: [PATCH 2/2] [NFC][Format] Apply clang-format to MSVC.cpp

---
 clang/lib/Driver/ToolChains/MSVC.cpp | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/clang/lib/Driver/ToolChains/MSVC.cpp 
b/clang/lib/Driver/ToolChains/MSVC.cpp
index 2e6979f515f9e..165429e293258 100644
--- a/clang/lib/Driver/ToolChains/MSVC.cpp
+++ b/clang/lib/Driver/ToolChains/MSVC.cpp
@@ -215,8 +215,8 @@ void visualstudio::Linker::ConstructJob(Compilation &C, 
const JobAction &JA,
         llvm::is_contained(defines, "_DLL")) {
       // Make sure the dynamic runtime thunk is not optimized out at link time
       // to ensure proper SEH handling.
-      CmdArgs.push_back(Args.MakeArgString(
-          TC.getArch() == llvm::Triple::x86
+      CmdArgs.push_back(
+          Args.MakeArgString(TC.getArch() == llvm::Triple::x86
                                  ? "-include:___asan_seh_interceptor"
                                  : "-include:__asan_seh_interceptor"));
       // Make sure the linker consider all object files from the dynamic 
runtime
@@ -616,8 +616,8 @@ static VersionTuple getMSVCVersionFromExe(const std::string 
&BinDir) {
   if (!llvm::ConvertUTF8toWide(ClExe.c_str(), ClExeWide))
     return Version;
 
-  const DWORD VersionSize = ::GetFileVersionInfoSizeW(ClExeWide.c_str(),
-                                                      nullptr);
+  const DWORD VersionSize =
+      ::GetFileVersionInfoSizeW(ClExeWide.c_str(), nullptr);
   if (VersionSize == 0)
     return Version;
 
@@ -634,7 +634,7 @@ static VersionTuple getMSVCVersionFromExe(const std::string 
&BinDir) {
     return Version;
 
   const unsigned Major = (FileInfo->dwFileVersionMS >> 16) & 0xFFFF;
-  const unsigned Minor = (FileInfo->dwFileVersionMS      ) & 0xFFFF;
+  const unsigned Minor = (FileInfo->dwFileVersionMS) & 0xFFFF;
   const unsigned Micro = (FileInfo->dwFileVersionLS >> 16) & 0xFFFF;
 
   Version = VersionTuple(Major, Minor, Micro);
@@ -784,8 +784,7 @@ void MSVCToolChain::AddClangSystemIncludeArgs(const ArgList 
&DriverArgs,
       "C:/Program Files/Microsoft Visual Studio 9.0/VC/include",
       "C:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include",
       "C:/Program Files/Microsoft Visual Studio 8/VC/include",
-    "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include"
-  };
+      "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include"};
   addSystemIncludes(DriverArgs, CC1Args, Paths);
 #endif
 }
@@ -894,7 +893,8 @@ static void TranslateOptArg(Arg *A, 
llvm::opt::DerivedArgList &DAL,
           DAL.AddFlagArg(A, Opts.getOption(options::OPT_fno_inline));
           break;
         case '1':
-          DAL.AddFlagArg(A, 
Opts.getOption(options::OPT_finline_hint_functions));
+          DAL.AddFlagArg(A,
+                         Opts.getOption(options::OPT_finline_hint_functions));
           break;
         case '2':
         case '3':
@@ -929,11 +929,10 @@ static void TranslateOptArg(Arg *A, 
llvm::opt::DerivedArgList &DAL,
       }
       if (SupportsForcingFramePointer) {
         if (OmitFramePointer)
-          DAL.AddFlagArg(A,
-                         Opts.getOption(options::OPT_fomit_frame_pointer));
+          DAL.AddFlagArg(A, Opts.getOption(options::OPT_fomit_frame_pointer));
         else
-          DAL.AddFlagArg(
-              A, Opts.getOption(options::OPT_fno_omit_frame_pointer));
+          DAL.AddFlagArg(A,
+                         Opts.getOption(options::OPT_fno_omit_frame_pointer));
       } else {
         // Don't warn about /Oy- in x86-64 builds (where
         // SupportsForcingFramePointer is false).  The flag having no effect

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to