From aa87ff844052f02ca337c25013098e3a77208b8d Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Thu, 21 May 2015 00:39:24 +0000 Subject: [PATCH] MC: Remove last use of MCSymbolData::getSymbol(), NFC Remove the last use of `MCSymbolData::getSymbol()`. There's some *really* hairy stuff going on in `MachObjectWriter::WriteNList()` that I want to come back to. In particular, it updates `Symbol` to point at its aliasee (if any), but leaves `Data` behind, and it's not clear whether everything makes sense there. For now I've left the logic unchanged by adding `OrigSymbol` and moving the FIXME from r237750 up a bit higher. I've filed PR23598 to track looking into this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237867 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/MachObjectWriter.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/MC/MachObjectWriter.cpp b/lib/MC/MachObjectWriter.cpp index b4fd55e8e3d..2799298d762 100644 --- a/lib/MC/MachObjectWriter.cpp +++ b/lib/MC/MachObjectWriter.cpp @@ -338,12 +338,14 @@ void MachObjectWriter::WriteNlist(MachSymbolData &MSD, uint64_t Address = 0; bool IsAlias = Symbol != AliasedSymbol; + const MCSymbol &OrigSymbol = *Symbol; MachSymbolData *AliaseeInfo; if (IsAlias) { AliaseeInfo = findSymbolData(*AliasedSymbol); if (AliaseeInfo) SectionIndex = AliaseeInfo->SectionIndex; Symbol = AliasedSymbol; + // FIXME: Should this update Data as well? Do we need OrigSymbol at all? } // Set the N_TYPE bits. See . @@ -371,9 +373,7 @@ void MachObjectWriter::WriteNlist(MachSymbolData &MSD, if (IsAlias && Symbol->isUndefined()) Address = AliaseeInfo->StringIndex; else if (Symbol->isDefined()) - // FIXME: Should Data.getSymbol() always be *Symbol? It doesn't look like - // that's true. - Address = getSymbolAddress(Data.getSymbol(), Layout); + Address = getSymbolAddress(OrigSymbol, Layout); else if (Data.isCommon()) { // Common symbols are encoded with the size in the address // field, and their alignment in the flags. -- 2.34.1