diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2010-08-27 10:38:39 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2010-08-27 10:38:39 +0000 |
commit | 95c602ade3aa30de17abd53b85968a3feb8fdfbc (patch) | |
tree | d011681fe436af9340d71250136b1601cd6fa318 /lib | |
parent | a87c163355d542ccf4543f71d8ab8101b2567558 (diff) | |
download | external_llvm-95c602ade3aa30de17abd53b85968a3feb8fdfbc.zip external_llvm-95c602ade3aa30de17abd53b85968a3feb8fdfbc.tar.gz external_llvm-95c602ade3aa30de17abd53b85968a3feb8fdfbc.tar.bz2 |
MCELF: Always overwrite FixedValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112259 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/MC/ELFObjectWriter.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp index 0135662..02a98bb 100644 --- a/lib/MC/ELFObjectWriter.cpp +++ b/lib/MC/ELFObjectWriter.cpp @@ -462,13 +462,13 @@ void ELFObjectWriterImpl::RecordRelocation(const MCAssembler &Asm, uint64_t &FixedValue) { int64_t Addend = 0; unsigned Index = 0; + int64_t Value = Target.getConstant(); if (!Target.isAbsolute()) { const MCSymbol *Symbol = &Target.getSymA()->getSymbol(); MCSymbolData &SD = Asm.getSymbolData(*Symbol); const MCSymbolData *Base = Asm.getAtom(Layout, &SD); MCFragment *F = SD.getFragment(); - int64_t Value = Target.getConstant(); if (Base) { if (F && (!Symbol->isInSection() || SD.isCommon())) { @@ -496,9 +496,10 @@ void ELFObjectWriterImpl::RecordRelocation(const MCAssembler &Asm, return; } } - FixedValue = Value; } + FixedValue = Value; + // determine the type of the relocation bool IsPCRel = isFixupKindX86PCRel(Fixup.getKind()); unsigned Type; |