[PATCH] D65639: [MachO] Update LLD to use 64-bit offsets with DataExtractor (3/5)

Igor Kudrin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 6 06:37:00 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL368032: [MachO] Update LLD to use 64-bit offsets with DataExtractor (3/5) (authored by ikudrin, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D65639?vs=212995&id=213595#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65639/new/

https://reviews.llvm.org/D65639

Files:
  lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp


Index: lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
===================================================================
--- lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
+++ lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
@@ -832,10 +832,10 @@
 
 // FIXME: Cribbed from llvm-dwp -- should share "lightweight CU DIE
 //        inspection" code if possible.
-static uint32_t getCUAbbrevOffset(llvm::DataExtractor abbrevData,
+static uint64_t getCUAbbrevOffset(llvm::DataExtractor abbrevData,
                                   uint64_t abbrCode) {
   uint64_t curCode;
-  uint32_t offset = 0;
+  uint64_t offset = 0;
   while ((curCode = abbrevData.getULEB128(&offset)) != abbrCode) {
     // Tag
     abbrevData.getULEB128(&offset);
@@ -853,13 +853,13 @@
 static Expected<const char *>
 getIndexedString(const NormalizedFile &normalizedFile,
                  llvm::dwarf::Form form, llvm::DataExtractor infoData,
-                 uint32_t &infoOffset, const Section &stringsSection) {
+                 uint64_t &infoOffset, const Section &stringsSection) {
   if (form == llvm::dwarf::DW_FORM_string)
    return infoData.getCStr(&infoOffset);
   if (form != llvm::dwarf::DW_FORM_strp)
     return llvm::make_error<GenericError>(
         "string field encoded without DW_FORM_strp");
-  uint32_t stringOffset = infoData.getU32(&infoOffset);
+  uint64_t stringOffset = infoData.getU32(&infoOffset);
   llvm::DataExtractor stringsData =
     dataExtractorFromSection(normalizedFile, stringsSection);
   return stringsData.getCStr(&stringOffset);
@@ -875,7 +875,7 @@
              StringRef path) {
   // FIXME: Cribbed from llvm-dwp -- should share "lightweight CU DIE
   //        inspection" code if possible.
-  uint32_t offset = 0;
+  uint64_t offset = 0;
   llvm::dwarf::DwarfFormat Format = llvm::dwarf::DwarfFormat::DWARF32;
   auto infoData = dataExtractorFromSection(normalizedFile, info);
   uint32_t length = infoData.getU32(&offset);
@@ -897,7 +897,7 @@
 
   uint32_t abbrCode = infoData.getULEB128(&offset);
   auto abbrevData = dataExtractorFromSection(normalizedFile, abbrev);
-  uint32_t abbrevOffset = getCUAbbrevOffset(abbrevData, abbrCode);
+  uint64_t abbrevOffset = getCUAbbrevOffset(abbrevData, abbrCode);
   uint64_t tag = abbrevData.getULEB128(&abbrevOffset);
   if (tag != llvm::dwarf::DW_TAG_compile_unit)
     return llvm::make_error<GenericError>("top level DIE is not a compile unit");


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65639.213595.patch
Type: text/x-patch
Size: 2468 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190806/459c58b1/attachment.bin>


More information about the llvm-commits mailing list