diff options
| author | Reid Kleckner <reid@kleckner.net> | 2013-07-15 19:41:21 +0000 |
|---|---|---|
| committer | Reid Kleckner <reid@kleckner.net> | 2013-07-15 19:41:21 +0000 |
| commit | 6057eb7ab697fcd0feb3cdd55e9a497cfe0aff72 (patch) | |
| tree | cd6e39c0d4b88f97728cea466781b37440d382ab /lib/MC | |
| parent | cd0f2458641ebebdb887da0381bd3acea6a1902f (diff) | |
| download | external_llvm-6057eb7ab697fcd0feb3cdd55e9a497cfe0aff72.zip external_llvm-6057eb7ab697fcd0feb3cdd55e9a497cfe0aff72.tar.gz external_llvm-6057eb7ab697fcd0feb3cdd55e9a497cfe0aff72.tar.bz2 | |
[mc-coff] Resolve aliases when emitting COFF relocations
This is consistent with the ELF object writer.
Add some COFF tests that relocate against an alias.
Reviewers: espindola
Differential Revision: http://llvm-reviews.chandlerc.com/D1079
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186341 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC')
| -rw-r--r-- | lib/MC/WinCOFFObjectWriter.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/MC/WinCOFFObjectWriter.cpp b/lib/MC/WinCOFFObjectWriter.cpp index cf73396..28e611f 100644 --- a/lib/MC/WinCOFFObjectWriter.cpp +++ b/lib/MC/WinCOFFObjectWriter.cpp @@ -637,8 +637,9 @@ void WinCOFFObjectWriter::RecordRelocation(const MCAssembler &Asm, uint64_t &FixedValue) { assert(Target.getSymA() != NULL && "Relocation must reference a symbol!"); - const MCSymbol *A = &Target.getSymA()->getSymbol(); - MCSymbolData &A_SD = Asm.getSymbolData(*A); + const MCSymbol &Symbol = Target.getSymA()->getSymbol(); + const MCSymbol &A = Symbol.AliasedSymbol(); + MCSymbolData &A_SD = Asm.getSymbolData(A); MCSectionData const *SectionData = Fragment->getParent(); |
