Use a SymbolBody to represent the personality.

NFC, just more in line with the rest of lld.

Thanks to Rui for the suggestion.

llvm-svn: 260380
This commit is contained in:
Rafael Espindola 2016-02-10 13:19:32 +00:00
parent 8170bab10a
commit 156ed8ddd7
2 changed files with 4 additions and 5 deletions

View File

@ -1027,14 +1027,13 @@ void EHOutputSection<ELFT>::addSectionAux(
if (Config->EhFrameHdr) if (Config->EhFrameHdr)
C.FdeEncoding = getFdeEncoding(D); C.FdeEncoding = getFdeEncoding(D);
StringRef Personality; SymbolBody *Personality = nullptr;
if (HasReloc) { if (HasReloc) {
uint32_t SymIndex = RelI->getSymbol(Config->Mips64EL); uint32_t SymIndex = RelI->getSymbol(Config->Mips64EL);
SymbolBody &Body = *S->getFile()->getSymbolBody(SymIndex)->repl(); Personality = S->getFile()->getSymbolBody(SymIndex)->repl();
Personality = Body.getName();
} }
std::pair<StringRef, StringRef> CieInfo(Entry, Personality); std::pair<StringRef, SymbolBody *> CieInfo(Entry, Personality);
auto P = CieMap.insert(std::make_pair(CieInfo, Cies.size())); auto P = CieMap.insert(std::make_pair(CieInfo, Cies.size()));
if (P.second) { if (P.second) {
Cies.push_back(C); Cies.push_back(C);

View File

@ -342,7 +342,7 @@ private:
std::vector<Cie<ELFT>> Cies; std::vector<Cie<ELFT>> Cies;
// Maps CIE content + personality to a index in Cies. // Maps CIE content + personality to a index in Cies.
llvm::DenseMap<std::pair<StringRef, StringRef>, unsigned> CieMap; llvm::DenseMap<std::pair<StringRef, SymbolBody *>, unsigned> CieMap;
}; };
template <class ELFT> template <class ELFT>