]> granicus.if.org Git - llvm/commitdiff
[XCOFF] Use a single symbolic constant for the size of an embeded name. [NFC]
authorSean Fertile <sfertile@ca.ibm.com>
Mon, 12 Aug 2019 15:27:40 +0000 (15:27 +0000)
committerSean Fertile <sfertile@ca.ibm.com>
Mon, 12 Aug 2019 15:27:40 +0000 (15:27 +0000)
Convert SymbolNameSize and SectionNameSize into just `NameSize`. The length of
a name embeded in a symbol table entry or section header table entry is length 8
for Sections, Symbols and Files. No need to have a distinct constant for each
one. Also removes the Size argument to 'generateStringRef' as the size is
always 'XCOFF::NameSize'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368584 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/BinaryFormat/XCOFF.h
include/llvm/Object/XCOFFObjectFile.h
lib/Object/XCOFFObjectFile.cpp

index 5008bd19dbd2e4b8c2afdd437651998cc8024b64..e6d50501dc663d769360190a9124e09e8fac5f8a 100644 (file)
@@ -19,7 +19,7 @@ namespace llvm {
 namespace XCOFF {
 
 // Constants used in the XCOFF definition.
-enum { SectionNameSize = 8, SymbolNameSize = 8 };
+enum { NameSize = 8 };
 enum ReservedSectionNum { N_DEBUG = -2, N_ABS = -1, N_UNDEF = 0 };
 
 // x_smclas field of x_csect from system header: /usr/include/syms.h
index 17bb907ac16f0ff7d611d8e22ffa10c40a0e0530..2634e1505161e6c1969f62c34d788b6073d00a32 100644 (file)
@@ -48,7 +48,7 @@ struct XCOFFFileHeader64 {
 };
 
 struct XCOFFSectionHeader32 {
-  char Name[XCOFF::SectionNameSize];
+  char Name[XCOFF::NameSize];
   support::ubig32_t PhysicalAddress;
   support::ubig32_t VirtualAddress;
   support::ubig32_t SectionSize;
@@ -63,7 +63,7 @@ struct XCOFFSectionHeader32 {
 };
 
 struct XCOFFSectionHeader64 {
-  char Name[XCOFF::SectionNameSize];
+  char Name[XCOFF::NameSize];
   support::ubig64_t PhysicalAddress;
   support::ubig64_t VirtualAddress;
   support::ubig64_t SectionSize;
@@ -91,7 +91,7 @@ struct XCOFFSymbolEntry {
   } CFileLanguageIdAndTypeIdType;
 
   union {
-    char SymbolName[XCOFF::SymbolNameSize];
+    char SymbolName[XCOFF::NameSize];
     NameInStrTblType NameInStrTbl;
   };
 
index 960b7695110b24fed5f6d55288b489d8b32c7039..65ccee1ff29ca976553dc0b12cfad04628cfe719 100644 (file)
@@ -37,10 +37,11 @@ template <typename T> static const T *viewAs(uintptr_t in) {
   return reinterpret_cast<const T *>(in);
 }
 
-static StringRef generateStringRef(const char *Name, uint64_t Size) {
-  auto NulCharPtr = static_cast<const char *>(memchr(Name, '\0', Size));
+static StringRef generateStringRef(const char *Name) {
+  auto NulCharPtr =
+      static_cast<const char *>(memchr(Name, '\0', XCOFF::NameSize));
   return NulCharPtr ? StringRef(Name, NulCharPtr - Name)
-                    : StringRef(Name, Size);
+                    : StringRef(Name, XCOFF::NameSize);
 }
 
 void XCOFFObjectFile::checkSectionAddress(uintptr_t Addr,
@@ -114,7 +115,7 @@ Expected<StringRef> XCOFFObjectFile::getSymbolName(DataRefImpl Symb) const {
   const XCOFFSymbolEntry *SymEntPtr = toSymbolEntry(Symb);
 
   if (SymEntPtr->NameInStrTbl.Magic != XCOFFSymbolEntry::NAME_IN_STR_TBL_MAGIC)
-    return generateStringRef(SymEntPtr->SymbolName, XCOFF::SymbolNameSize);
+    return generateStringRef(SymEntPtr->SymbolName);
 
   // A storage class value with the high-order bit on indicates that the name is
   // a symbolic debugger stabstring.
@@ -180,7 +181,7 @@ void XCOFFObjectFile::moveSectionNext(DataRefImpl &Sec) const {
 }
 
 Expected<StringRef> XCOFFObjectFile::getSectionName(DataRefImpl Sec) const {
-  return generateStringRef(getSectionNameInternal(Sec), XCOFF::SectionNameSize);
+  return generateStringRef(getSectionNameInternal(Sec));
 }
 
 uint64_t XCOFFObjectFile::getSectionAddress(DataRefImpl Sec) const {
@@ -388,8 +389,7 @@ XCOFFObjectFile::getSymbolSectionName(const XCOFFSymbolEntry *SymEntPtr) const {
   default:
     Expected<DataRefImpl> SecRef = getSectionByNum(SectionNum);
     if (SecRef)
-      return generateStringRef(getSectionNameInternal(SecRef.get()),
-                               XCOFF::SectionNameSize);
+      return generateStringRef(getSectionNameInternal(SecRef.get()));
     return SecRef.takeError();
   }
 }
@@ -568,11 +568,11 @@ ObjectFile::createXCOFFObjectFile(MemoryBufferRef MemBufRef,
 }
 
 StringRef XCOFFSectionHeader32::getName() const {
-  return generateStringRef(Name, XCOFF::SectionNameSize);
+  return generateStringRef(Name);
 }
 
 StringRef XCOFFSectionHeader64::getName() const {
-  return generateStringRef(Name, XCOFF::SectionNameSize);
+  return generateStringRef(Name);
 }
 
 } // namespace object