summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-05-28 20:25:29 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-05-28 20:25:29 +0000
commitc66c8e7730a2048c971f74a7650f586d3e6506f8 (patch)
tree44db5afcb1dfef43f7f3df79f9d7102858820d67
parentf3344cdffb1ef2e94fdb9cf1f1af37e4c16eb1c8 (diff)
Remove structure field that can be computed just before use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238480 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/MC/ELFObjectWriter.cpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp
index 958591b1266..56490c7ab13 100644
--- a/lib/MC/ELFObjectWriter.cpp
+++ b/lib/MC/ELFObjectWriter.cpp
@@ -79,7 +79,6 @@ class ELFObjectWriter : public MCObjectWriter {
/// Helper struct for containing some precomputed information on symbols.
struct ELFSymbolData {
const MCSymbol *Symbol;
- uint64_t StringIndex;
uint32_t SectionIndex;
StringRef Name;
@@ -171,8 +170,8 @@ class ELFObjectWriter : public MCObjectWriter {
void writeHeader(const MCAssembler &Asm);
- void WriteSymbol(SymbolTableWriter &Writer, ELFSymbolData &MSD,
- const MCAsmLayout &Layout);
+ void writeSymbol(SymbolTableWriter &Writer, uint32_t StringIndex,
+ ELFSymbolData &MSD, const MCAsmLayout &Layout);
// Start and end offset of each section
typedef std::map<const MCSectionELF *, std::pair<uint64_t, uint64_t>>
@@ -451,7 +450,8 @@ static uint8_t mergeTypeForSet(uint8_t origType, uint8_t newType) {
return Type;
}
-void ELFObjectWriter::WriteSymbol(SymbolTableWriter &Writer, ELFSymbolData &MSD,
+void ELFObjectWriter::writeSymbol(SymbolTableWriter &Writer,
+ uint32_t StringIndex, ELFSymbolData &MSD,
const MCAsmLayout &Layout) {
MCSymbolData &OrigData = MSD.Symbol->getData();
assert((!OrigData.getFragment() ||
@@ -494,8 +494,8 @@ void ELFObjectWriter::WriteSymbol(SymbolTableWriter &Writer, ELFSymbolData &MSD,
}
// Write out the symbol table entry
- Writer.writeSymbol(MSD.StringIndex, Info, Value, Size, Other,
- MSD.SectionIndex, IsReserved);
+ Writer.writeSymbol(StringIndex, Info, Value, Size, Other, MSD.SectionIndex,
+ IsReserved);
}
// It is always valid to create a relocation with a symbol. It is preferable
@@ -948,26 +948,27 @@ void ELFObjectWriter::computeSymbolTable(
unsigned Index = FileNames.size() + 1;
for (ELFSymbolData &MSD : LocalSymbolData) {
- MSD.StringIndex = MCELF::GetType(MSD.Symbol->getData()) == ELF::STT_SECTION
- ? 0
- : StrTabBuilder.getOffset(MSD.Name);
+ unsigned StringIndex =
+ MCELF::GetType(MSD.Symbol->getData()) == ELF::STT_SECTION
+ ? 0
+ : StrTabBuilder.getOffset(MSD.Name);
MSD.Symbol->setIndex(Index++);
- WriteSymbol(Writer, MSD, Layout);
+ writeSymbol(Writer, StringIndex, MSD, Layout);
}
// Write the symbol table entries.
LastLocalSymbolIndex = Index;
for (ELFSymbolData &MSD : ExternalSymbolData) {
- MSD.StringIndex = StrTabBuilder.getOffset(MSD.Name);
+ unsigned StringIndex = StrTabBuilder.getOffset(MSD.Name);
MSD.Symbol->setIndex(Index++);
- WriteSymbol(Writer, MSD, Layout);
+ writeSymbol(Writer, StringIndex, MSD, Layout);
assert(MCELF::GetBinding(MSD.Symbol->getData()) != ELF::STB_LOCAL);
}
for (ELFSymbolData &MSD : UndefinedSymbolData) {
- MSD.StringIndex = StrTabBuilder.getOffset(MSD.Name);
+ unsigned StringIndex = StrTabBuilder.getOffset(MSD.Name);
MSD.Symbol->setIndex(Index++);
- WriteSymbol(Writer, MSD, Layout);
+ writeSymbol(Writer, StringIndex, MSD, Layout);
assert(MCELF::GetBinding(MSD.Symbol->getData()) != ELF::STB_LOCAL);
}