aboutsummaryrefslogtreecommitdiffstats
path: root/lib/MC
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2013-07-15 19:41:21 +0000
committerReid Kleckner <reid@kleckner.net>2013-07-15 19:41:21 +0000
commit6057eb7ab697fcd0feb3cdd55e9a497cfe0aff72 (patch)
treecd6e39c0d4b88f97728cea466781b37440d382ab /lib/MC
parentcd0f2458641ebebdb887da0381bd3acea6a1902f (diff)
downloadexternal_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.cpp5
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();