github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. 
:warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff HEAD~1 HEAD --extensions c,h,cpp -- 
clang/test/CodeGen/ms-secure-hotpatch-bad-file.c 
clang/test/CodeGen/ms-secure-hotpatch-cpp.cpp 
clang/test/CodeGen/ms-secure-hotpatch-lto.c 
clang/test/CodeGen/ms-secure-hotpatch.c 
llvm/lib/CodeGen/WindowsSecureHotPatching.cpp 
clang/include/clang/Basic/CodeGenOptions.h clang/lib/CodeGen/CGCall.cpp 
clang/lib/CodeGen/CodeGenModule.cpp clang/lib/CodeGen/CodeGenModule.h 
clang/lib/Driver/ToolChains/Clang.cpp llvm/include/llvm/Bitcode/LLVMBitCodes.h 
llvm/include/llvm/CodeGen/Passes.h 
llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h 
llvm/include/llvm/InitializePasses.h llvm/lib/Bitcode/Reader/BitcodeReader.cpp 
llvm/lib/Bitcode/Writer/BitcodeWriter.cpp 
llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp 
llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h 
llvm/lib/CodeGen/TargetPassConfig.cpp 
llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp 
llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp 
llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp 
llvm/lib/Transforms/Utils/CodeExtractor.cpp 
llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/llvm/lib/CodeGen/WindowsSecureHotPatching.cpp 
b/llvm/lib/CodeGen/WindowsSecureHotPatching.cpp
index 977f950ee..acde07000 100644
--- a/llvm/lib/CodeGen/WindowsSecureHotPatching.cpp
+++ b/llvm/lib/CodeGen/WindowsSecureHotPatching.cpp
@@ -8,48 +8,61 @@
 //
 // Provides support for the Windows "Secure Hot-Patching" feature.
 //
-// Windows contains technology, called "Secure Hot-Patching" (SHP), for 
securely applying
-// hot-patches to a running system. Hot-patches may be applied to the kernel, 
kernel-mode
-// components, device drivers, user-mode system services, etc.
+// Windows contains technology, called "Secure Hot-Patching" (SHP), for 
securely
+// applying hot-patches to a running system. Hot-patches may be applied to the
+// kernel, kernel-mode components, device drivers, user-mode system services,
+// etc.
 //
-// SHP relies on integration between many tools, including compiler, linker, 
hot-patch
-// generation tools, and the Windows kernel. This file implements that part of 
the workflow
-// needed in compilers / code generators.
+// SHP relies on integration between many tools, including compiler, linker,
+// hot-patch generation tools, and the Windows kernel. This file implements 
that
+// part of the workflow needed in compilers / code generators.
 //
-// SHP is not intended for productivity scenarios, such as Edit-and-Continue 
or interactive
-// development. SHP is intended to minimize downtime during installation of 
Windows OS patches.
+// SHP is not intended for productivity scenarios, such as Edit-and-Continue or
+// interactive development. SHP is intended to minimize downtime during
+// installation of Windows OS patches.
 //
 // In order to work with SHP, LLVM must do all of the following:
 //
-// * On some architectures (X86, AMD64), the function prolog must begin with 
hot-patchable
-//   instructions. This is handled by the MSVC `/hotpatch` option and the 
equivalent `-fms-hotpatch`
-//   function. This is necessary because we generally cannot anticipate which 
functions will need
-//   to be patched in the future. This option ensures that a function can be 
hot-patched in the
-//   future, but does not actually generate any hot-patch for it.
+// * On some architectures (X86, AMD64), the function prolog must begin with
+// hot-patchable
+//   instructions. This is handled by the MSVC `/hotpatch` option and the
+//   equivalent `-fms-hotpatch` function. This is necessary because we 
generally
+//   cannot anticipate which functions will need to be patched in the future.
+//   This option ensures that a function can be hot-patched in the future, but
+//   does not actually generate any hot-patch for it.
 //
-// * For a selected set of functions that are being hot-patched (which are 
identified using
-//   command-line options), LLVM must generate the `S_HOTPATCHFUNC` CodeView 
record (symbol).
-//   This record indicates that a function was compiled with hot-patching 
enabled.
+// * For a selected set of functions that are being hot-patched (which are
+// identified using
+//   command-line options), LLVM must generate the `S_HOTPATCHFUNC` CodeView
+//   record (symbol). This record indicates that a function was compiled with
+//   hot-patching enabled.
 //
-//   This implementation uses the `MarkedForWindowsHotPatching` attribute to 
annotate those
-//   functions that were marked for hot-patching by command-line parameters. 
The attribute
-//   may be specified by a language front-end by setting an attribute when a 
function is created
-//   in LLVM IR, or it may be set by passing LLVM arguments.
+//   This implementation uses the `MarkedForWindowsHotPatching` attribute to
+//   annotate those functions that were marked for hot-patching by command-line
+//   parameters. The attribute may be specified by a language front-end by
+//   setting an attribute when a function is created in LLVM IR, or it may be
+//   set by passing LLVM arguments.
 //
-// * For those functions that are hot-patched, LLVM must rewrite references to 
global variables
-//   so that they are indirected through a `__ref_*` pointer variable.  For 
each global variable,
-//   that is accessed by a hot-patched function, e.g. `FOO`, a `__ref_FOO` 
global pointer variable
-//   is created and all references to the original `FOO` are rewritten as 
dereferences of the
+// * For those functions that are hot-patched, LLVM must rewrite references to
+// global variables
+//   so that they are indirected through a `__ref_*` pointer variable.  For 
each
+//   global variable, that is accessed by a hot-patched function, e.g. `FOO`, a
+//   `__ref_FOO` global pointer variable is created and all references to the
+//   original `FOO` are rewritten as dereferences of the
 //   `__ref_FOO` pointer.
 //
-//   Some globals do not need `__ref_*` indirection. The pointer indirection 
behavior can be
-//   disabled for these globals by marking them with the 
`AllowDirectAccessInHotPatchFunction`.
+//   Some globals do not need `__ref_*` indirection. The pointer indirection
+//   behavior can be disabled for these globals by marking them with the
+//   `AllowDirectAccessInHotPatchFunction`.
 //
 // References
 //
-// * "Hotpatching on Windows": 
https://techcommunity.microsoft.com/blog/windowsosplatform/hotpatching-on-windows/2959541
-// * "Hotpatch for Windows client now available": 
https://techcommunity.microsoft.com/blog/windows-itpro-blog/hotpatch-for-windows-client-now-available/4399808
-// * "Get hotpatching for Windows Server": 
https://www.microsoft.com/en-us/windows-server/blog/2025/04/24/tired-of-all-the-restarts-get-hotpatching-for-windows-server/?msockid=19a6f8f09bd160ac0b18ed449afc614b
+// * "Hotpatching on Windows":
+// 
https://techcommunity.microsoft.com/blog/windowsosplatform/hotpatching-on-windows/2959541
+// * "Hotpatch for Windows client now available":
+// 
https://techcommunity.microsoft.com/blog/windows-itpro-blog/hotpatch-for-windows-client-now-available/4399808
+// * "Get hotpatching for Windows Server":
+// 
https://www.microsoft.com/en-us/windows-server/blog/2025/04/24/tired-of-all-the-restarts-get-hotpatching-for-windows-server/?msockid=19a6f8f09bd160ac0b18ed449afc614b
 //
 
//===----------------------------------------------------------------------===//
 
@@ -75,12 +88,14 @@ using namespace llvm;
 // A file containing list of mangled function names to mark for hot patching.
 static cl::opt<std::string> LLVMMSSecureHotPatchFunctionsFile(
     "ms-secure-hotpatch-functions-file", cl::value_desc("filename"),
-    cl::desc("A file containing list of mangled function names to mark for 
Windows Secure Hot-Patching"));
+    cl::desc("A file containing list of mangled function names to mark for "
+             "Windows Secure Hot-Patching"));
 
 // A list of mangled function names to mark for hot patching.
 static cl::list<std::string> LLVMMSSecureHotPatchFunctionsList(
     "ms-secure-hotpatch-functions-list", cl::value_desc("list"),
-    cl::desc("A list of mangled function names to mark for Windows Secure 
Hot-Patching"),
+    cl::desc("A list of mangled function names to mark for Windows Secure "
+             "Hot-Patching"),
     cl::CommaSeparated);
 
 namespace {
@@ -121,7 +136,9 @@ char WindowsSecureHotPatching::ID = 0;
 
 INITIALIZE_PASS(WindowsSecureHotPatching, "windows-secure-hot-patch",
                 "Mark functions for Windows hot patch support", false, false)
-ModulePass *llvm::createWindowsSecureHotPatching() { return new 
WindowsSecureHotPatching(); }
+ModulePass *llvm::createWindowsSecureHotPatching() {
+  return new WindowsSecureHotPatching();
+}
 
 // Find functions marked with Attribute::MarkedForWindowsHotPatching and modify
 // their code (if necessary) to account for accesses to global variables.
@@ -135,7 +152,8 @@ bool WindowsSecureHotPatching::runOnModule(Module &M) {
     std::vector<std::string> HotPatchFunctionsList;
 
     if (!LLVMMSSecureHotPatchFunctionsFile.empty()) {
-      auto BufOrErr = 
llvm::MemoryBuffer::getFile(LLVMMSSecureHotPatchFunctionsFile);
+      auto BufOrErr =
+          llvm::MemoryBuffer::getFile(LLVMMSSecureHotPatchFunctionsFile);
       if (BufOrErr) {
         const llvm::MemoryBuffer &FileBuffer = **BufOrErr;
         for (llvm::line_iterator I(FileBuffer.getMemBufferRef(), true), E;

``````````

</details>


https://github.com/llvm/llvm-project/pull/138972
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to