forked from OSchip/llvm-project
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:
parent
8170bab10a
commit
156ed8ddd7
|
@ -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);
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in New Issue