git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34875 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nate Begeman 2007-03-03 06:18:18 +00:00
parent 93a2875456
commit af80638869

View File

@ -736,8 +736,8 @@ void MachOWriter::CalculateRelocations(MachOSection &MOS) {
for (unsigned i = 0, e = MOS.Relocations.size(); i != e; ++i) {
MachineRelocation &MR = MOS.Relocations[i];
unsigned TargetSection = MR.getConstantVal();
unsigned TargetAddr;
unsigned TargetIndex;
unsigned TargetAddr = 0;
unsigned TargetIndex = 0;
// This is a scattered relocation entry if it points to a global value with
// a non-zero offset.
@ -762,12 +762,17 @@ void MachOWriter::CalculateRelocations(MachOSection &MOS) {
} else {
Scattered = TargetSection != 0;
TargetSection = MOSPtr->Index;
}
MR.setResultPointer((void*)Offset);
}
// If the symbol is locally defined, pass in the address of the section and
// the section index to the code which will generate the target relocation.
if (!Extern) {
MachOSection &To = *SectionList[TargetSection - 1];
TargetAddr = To.addr;
TargetIndex = To.Index;
}
MR.setResultPointer((void*)Offset);
}
OutputBuffer RelocOut(MOS.RelocBuffer, is64Bit, isLittleEndian);
OutputBuffer SecOut(MOS.SectionData, is64Bit, isLittleEndian);