[llvm] [ObjCopy][DX] Support for -dump-section flag (PR #159999)

James Henderson via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 23 00:24:54 PDT 2025


================
@@ -42,7 +44,40 @@ static Error extractPartAsObject(StringRef PartName, StringRef OutFilename,
                          "part '%s' not found", PartName.str().c_str());
 }
 
+static Error dumpPartToFile(StringRef PartName, StringRef Filename,
+                            StringRef InputFilename, Object &Obj) {
+  for (const Part &P : Obj.Parts) {
+    if (P.Name == PartName) {
+      ArrayRef<uint8_t> Contents = P.Data;
+      // For parts containing llvm bitcode, don't dump the program headers so
+      // that we get a valid .bc file.
+      if (PartName == "DXIL" || PartName == "STAT")
+        Contents = Contents.drop_front(sizeof(llvm::dxbc::ProgramHeader));
+      Expected<std::unique_ptr<FileOutputBuffer>> BufferOrErr =
+          FileOutputBuffer::create(Filename, Contents.size());
+      if (!BufferOrErr)
+        return createFileError(Filename, BufferOrErr.takeError());
----------------
jh7370 wrote:

Test cases for this and other error paths are required.

https://github.com/llvm/llvm-project/pull/159999


More information about the llvm-commits mailing list