[PATCH] D78363: [yaml2obj] - Change how p_offset is calculated when creating segments. NFCI.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 17 06:27:14 PDT 2020


grimar created this revision.
grimar added reviewers: jhenderson, MaskRay.
Herald added a subscriber: hiraditya.

This depends on D78361 <https://reviews.llvm.org/D78361> and simplifies the computation of the `p_offset`.


https://reviews.llvm.org/D78363

Files:
  llvm/lib/ObjectYAML/ELFEmitter.cpp


Index: llvm/lib/ObjectYAML/ELFEmitter.cpp
===================================================================
--- llvm/lib/ObjectYAML/ELFEmitter.cpp
+++ llvm/lib/ObjectYAML/ELFEmitter.cpp
@@ -759,18 +759,12 @@
       reportError("sections in the program header with index " +
                   Twine(PhdrIdx) + " are not sorted by their file offset");
 
-    if (YamlPhdr.Offset) {
+    if (YamlPhdr.Offset)
       PHeader.p_offset = *YamlPhdr.Offset;
-    } else {
-      if (YamlPhdr.Sections.size())
-        PHeader.p_offset = UINT32_MAX;
-      else
-        PHeader.p_offset = 0;
-
-      // Find the minimum offset for the program header.
-      for (const Fragment &F : Fragments)
-        PHeader.p_offset = std::min((uint64_t)PHeader.p_offset, F.Offset);
-    }
+    else if (!Fragments.empty())
+      PHeader.p_offset = Fragments.front().Offset;
+    else
+      PHeader.p_offset = 0;
 
     // Find the maximum offset of the end of a section in order to set p_filesz
     // and p_memsz. When setting p_filesz, trailing SHT_NOBITS sections are not


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D78363.258306.patch
Type: text/x-patch
Size: 1062 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200417/1233f35c/attachment-0001.bin>


More information about the llvm-commits mailing list