[PATCH] D61532: implement of the parsing symbol table for xcoffobjfile and output as yaml format

Digger via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 14 13:21:04 PDT 2019


DiggerLin updated this revision to Diff 199502.
DiggerLin marked 10 inline comments as done.
DiggerLin added a comment.

changed code based on the comment


Repository:
  rL LLVM

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

https://reviews.llvm.org/D61532

Files:
  llvm/include/llvm/Object/XCOFFObjectFile.h
  llvm/lib/Object/XCOFFObjectFile.cpp


Index: llvm/lib/Object/XCOFFObjectFile.cpp
===================================================================
--- llvm/lib/Object/XCOFFObjectFile.cpp
+++ llvm/lib/Object/XCOFFObjectFile.cpp
@@ -92,9 +92,7 @@
   return sizeof(XCOFFSectionHeader);
 }
 
-uint16_t XCOFFObjectFile::getMagic() const {
-  return FileHdrPtr->Magic;
-}
+uint16_t XCOFFObjectFile::getMagic() const { return FileHdrPtr->Magic; }
 
 void XCOFFObjectFile::moveSymbolNext(DataRefImpl &Symb) const {
   const XCOFFSymbolEntry *SymEntPtr = toSymbolEntry(Symb);
@@ -110,16 +108,11 @@
   if (SymEntPtr->NameInStrTbl.Magic != 0)
     return generateStringRef(SymEntPtr->SymbolName, XCOFF::SymbolNameSize);
 
-  int16_t SectNum = SymEntPtr->SectionNumber;
+  if (SymEntPtr->SectionNumber == XCOFF::N_DEBUG) {
+    llvm_unreachable("Not yet implemented!");
+    return StringRef(nullptr, 0);
+  }
 
-  if (!isReservedSectionNumber(SectNum)) {
-     const XCOFFSectionHeader *Sec;
-     if (std::error_code EC = getSectionByNum(SectNum, Sec))
-       return errorCodeToError(EC);
-     if (Sec->Flags == XCOFF::STYP_DEBUG) {
-       llvm_unreachable("Not yet implemented!");
-     }
-  } 
   uint32_t Offset = SymEntPtr->NameInStrTbl.Offset;
   // The byte offset is relative to the start of the string table
   // or .debug section.
@@ -311,7 +304,7 @@
 
 uint8_t XCOFFObjectFile::getBytesInAddress() const {
   // Only support 32-bit object files for now ...
-  assert(getFileHeaderSize() ==  XCOFF32FileHeaderSize);
+  assert(getFileHeaderSize() == XCOFF32FileHeaderSize);
   return 4;
 }
 
@@ -383,9 +376,7 @@
   return FileHdrPtr->NumberOfSections;
 }
 
-int32_t XCOFFObjectFile::getTimeStamp() const {
-  return FileHdrPtr->TimeStamp;
-}
+int32_t XCOFFObjectFile::getTimeStamp() const { return FileHdrPtr->TimeStamp; }
 
 uint32_t XCOFFObjectFile::getSymbolTableOffset() const {
   return FileHdrPtr->SymbolTableOffset;
@@ -405,10 +396,6 @@
   return FileHdrPtr->AuxHeaderSize;
 }
 
-uint16_t XCOFFObjectFile::getFlags() const {
-  return FileHdrPtr->Flags;
-}
-
 XCOFFObjectFile::XCOFFObjectFile(MemoryBufferRef Object, std::error_code &EC)
     : ObjectFile(Binary::ID_XCOFF32, Object) {
 
Index: llvm/include/llvm/Object/XCOFFObjectFile.h
===================================================================
--- llvm/include/llvm/Object/XCOFFObjectFile.h
+++ llvm/include/llvm/Object/XCOFFObjectFile.h
@@ -175,7 +175,7 @@
   // Return sanitized value, useable as an index into the symbol table.
   uint32_t getLogicalNumberOfSymbolTableEntries() const;
   uint16_t getOptionalHeaderSize() const;
-  uint16_t getFlags() const;
+  uint16_t getFlags() const { return FileHdrPtr->Flags; };
 }; // XCOFFObjectFile
 
 } // namespace object


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61532.199502.patch
Type: text/x-patch
Size: 2706 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190514/a96187e4/attachment.bin>


More information about the llvm-commits mailing list