[clang] 40ea61b - [Clang][MinGW] Pass --functionpadmin to the linker when -fms-hotpatch is used (#116512)

via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 18 05:29:04 PST 2024


Author: Jacek Caban
Date: 2024-11-18T14:29:01+01:00
New Revision: 40ea61b41d3b70ccf39d5ec11ac54100c9b0b388

URL: https://github.com/llvm/llvm-project/commit/40ea61b41d3b70ccf39d5ec11ac54100c9b0b388
DIFF: https://github.com/llvm/llvm-project/commit/40ea61b41d3b70ccf39d5ec11ac54100c9b0b388.diff

LOG: [Clang][MinGW] Pass --functionpadmin to the linker when -fms-hotpatch is used (#116512)

Added: 
    

Modified: 
    clang/lib/Driver/ToolChains/MinGW.cpp
    clang/test/Driver/mingw.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Driver/ToolChains/MinGW.cpp b/clang/lib/Driver/ToolChains/MinGW.cpp
index e51daca5025a80..963de81027ca9f 100644
--- a/clang/lib/Driver/ToolChains/MinGW.cpp
+++ b/clang/lib/Driver/ToolChains/MinGW.cpp
@@ -188,6 +188,9 @@ void tools::MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA,
           << A->getSpelling() << GuardArgs;
   }
 
+  if (Args.hasArg(options::OPT_fms_hotpatch))
+    CmdArgs.push_back("--functionpadmin");
+
   CmdArgs.push_back("-o");
   const char *OutputFile = Output.getFilename();
   // GCC implicitly adds an .exe extension if it is given an output file name

diff  --git a/clang/test/Driver/mingw.cpp b/clang/test/Driver/mingw.cpp
index 4a9ba4d259b46f..9790c86a364f85 100644
--- a/clang/test/Driver/mingw.cpp
+++ b/clang/test/Driver/mingw.cpp
@@ -84,3 +84,7 @@
 // RUN: %clang --target=arm64ec-windows-gnu -### -o /dev/null %s 2>&1 \
 // RUN:   | FileCheck %s --check-prefix CHECK_MINGW_EC_LINK
 // CHECK_MINGW_EC_LINK: "-m" "arm64ecpe"
+
+// RUN: %clang --target=i686-windows-gnu -fms-hotpatch -### -- %s 2>&1 \
+// RUN:    | FileCheck %s --check-prefix=FUNCTIONPADMIN
+// FUNCTIONPADMIN: "--functionpadmin"


        


More information about the cfe-commits mailing list