summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Fertile <sfertile@ca.ibm.com>2019-08-12 15:27:40 +0000
committerSean Fertile <sfertile@ca.ibm.com>2019-08-12 15:27:40 +0000
commit29141da75ed940723af43131cb5566dfe3aae9e5 (patch)
tree6c12ecb9e787fd316dfefd9235932cd2646627b5
parent24a9e86849ff0c88ed67b72e08da58ce6ffe5a6f (diff)
downloadbcm5719-llvm-29141da75ed940723af43131cb5566dfe3aae9e5.tar.gz
bcm5719-llvm-29141da75ed940723af43131cb5566dfe3aae9e5.zip
[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'. llvm-svn: 368584
-rw-r--r--llvm/include/llvm/BinaryFormat/XCOFF.h2
-rw-r--r--llvm/include/llvm/Object/XCOFFObjectFile.h6
-rw-r--r--llvm/lib/Object/XCOFFObjectFile.cpp18
3 files changed, 13 insertions, 13 deletions
diff --git a/llvm/include/llvm/BinaryFormat/XCOFF.h b/llvm/include/llvm/BinaryFormat/XCOFF.h
index 5008bd19dbd..e6d50501dc6 100644
--- a/llvm/include/llvm/BinaryFormat/XCOFF.h
+++ b/llvm/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/llvm/include/llvm/Object/XCOFFObjectFile.h b/llvm/include/llvm/Object/XCOFFObjectFile.h
index 17bb907ac16..2634e150516 100644
--- a/llvm/include/llvm/Object/XCOFFObjectFile.h
+++ b/llvm/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/llvm/lib/Object/XCOFFObjectFile.cpp b/llvm/lib/Object/XCOFFObjectFile.cpp
index 960b7695110..65ccee1ff29 100644
--- a/llvm/lib/Object/XCOFFObjectFile.cpp
+++ b/llvm/lib/Object/XCOFFObjectFile.cpp
@@ -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
OpenPOWER on IntegriCloud