diff options
Diffstat (limited to 'lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp')
| -rw-r--r-- | lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp | 20 | 
1 files changed, 9 insertions, 11 deletions
diff --git a/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp b/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp index caf98bffb80d..8f2017e990c5 100644 --- a/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp +++ b/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp @@ -396,7 +396,7 @@ bool X86MachObjectWriter::recordScatteredRelocation(MachObjectWriter *Writer,      if (!SB->getFragment()) {        Asm.getContext().reportError(            Fixup.getLoc(), -          "symbol '" + B->getSymbol().getName() + +          "symbol '" + SB->getName() +                "' can not be undefined in a subtraction expression");        return false;      } @@ -408,7 +408,7 @@ bool X86MachObjectWriter::recordScatteredRelocation(MachObjectWriter *Writer,      // pedantic compatibility with 'as'.      Type = A->isExternal() ? (unsigned)MachO::GENERIC_RELOC_SECTDIFF                             : (unsigned)MachO::GENERIC_RELOC_LOCAL_SECTDIFF; -    Value2 = Writer->getSymbolAddress(B->getSymbol(), Layout); +    Value2 = Writer->getSymbolAddress(*SB, Layout);      FixedValue -= Writer->getSectionAddress(SB->getFragment()->getParent());    } @@ -468,8 +468,8 @@ void X86MachObjectWriter::recordTLVPRelocation(MachObjectWriter *Writer,                                                 const MCFixup &Fixup,                                                 MCValue Target,                                                 uint64_t &FixedValue) { -  assert(Target.getSymA()->getKind() == MCSymbolRefExpr::VK_TLVP && -         !is64Bit() && +  const MCSymbolRefExpr *SymA = Target.getSymA(); +  assert(SymA->getKind() == MCSymbolRefExpr::VK_TLVP && !is64Bit() &&           "Should only be called with a 32-bit TLVP relocation!");    unsigned Log2Size = getFixupKindLog2Size(Fixup.getKind()); @@ -480,15 +480,14 @@ void X86MachObjectWriter::recordTLVPRelocation(MachObjectWriter *Writer,    // subtraction from the picbase. For 32-bit pic the addend is the difference    // between the picbase and the next address.  For 32-bit static the addend is    // zero. -  if (Target.getSymB()) { +  if (auto *SymB = Target.getSymB()) {      // If this is a subtraction then we're pcrel.      uint32_t FixupAddress =        Writer->getFragmentAddress(Fragment, Layout) + Fixup.getOffset();      IsPCRel = 1; -    FixedValue = -        FixupAddress - -        Writer->getSymbolAddress(Target.getSymB()->getSymbol(), Layout) + -        Target.getConstant(); +    FixedValue = FixupAddress - +                 Writer->getSymbolAddress(SymB->getSymbol(), Layout) + +                 Target.getConstant();      FixedValue += 1ULL << Log2Size;    } else {      FixedValue = 0; @@ -499,8 +498,7 @@ void X86MachObjectWriter::recordTLVPRelocation(MachObjectWriter *Writer,    MRE.r_word0 = Value;    MRE.r_word1 =        (IsPCRel << 24) | (Log2Size << 25) | (MachO::GENERIC_RELOC_TLV << 28); -  Writer->addRelocation(&Target.getSymA()->getSymbol(), Fragment->getParent(), -                        MRE); +  Writer->addRelocation(&SymA->getSymbol(), Fragment->getParent(), MRE);  }  void X86MachObjectWriter::RecordX86Relocation(MachObjectWriter *Writer,  | 
