From: Sean Fertile Date: Mon, 12 Aug 2019 15:27:40 +0000 (+0000) Subject: [XCOFF] Use a single symbolic constant for the size of an embeded name. [NFC] X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4ad4c5dcdead4c485ec45808a3a98d09705a2764;p=llvm [XCOFF] Use a single symbolic constant for the size of an embeded name. [NFC] 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 --- diff --git a/include/llvm/BinaryFormat/XCOFF.h b/include/llvm/BinaryFormat/XCOFF.h index 5008bd19dbd..e6d50501dc6 100644 --- a/include/llvm/BinaryFormat/XCOFF.h +++ b/include/llvm/BinaryFormat/XCOFF.h @@ -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 diff --git a/include/llvm/Object/XCOFFObjectFile.h b/include/llvm/Object/XCOFFObjectFile.h index 17bb907ac16..2634e150516 100644 --- a/include/llvm/Object/XCOFFObjectFile.h +++ b/include/llvm/Object/XCOFFObjectFile.h @@ -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; }; diff --git a/lib/Object/XCOFFObjectFile.cpp b/lib/Object/XCOFFObjectFile.cpp index 960b7695110..65ccee1ff29 100644 --- a/lib/Object/XCOFFObjectFile.cpp +++ b/lib/Object/XCOFFObjectFile.cpp @@ -37,10 +37,11 @@ template static const T *viewAs(uintptr_t in) { return reinterpret_cast(in); } -static StringRef generateStringRef(const char *Name, uint64_t Size) { - auto NulCharPtr = static_cast(memchr(Name, '\0', Size)); +static StringRef generateStringRef(const char *Name) { + auto NulCharPtr = + static_cast(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 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 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 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