Changes in directory llvm/lib/CodeGen:
MachOWriter.cpp updated: 1.30 -> 1.31 --- Log message: http://llvm.org/bugs/show_bug.cgi?id=1237 --- Diffs of the changes: (+10 -5) MachOWriter.cpp | 15 ++++++++++----- 1 files changed, 10 insertions(+), 5 deletions(-) Index: llvm/lib/CodeGen/MachOWriter.cpp diff -u llvm/lib/CodeGen/MachOWriter.cpp:1.30 llvm/lib/CodeGen/MachOWriter.cpp:1.31 --- llvm/lib/CodeGen/MachOWriter.cpp:1.30 Wed Feb 28 03:16:38 2007 +++ llvm/lib/CodeGen/MachOWriter.cpp Sat Mar 3 00:18:18 2007 @@ -736,14 +736,14 @@ 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. bool Scattered = false; bool Extern = false; - + // Since we may not have seen the GlobalValue we were interested in yet at // the time we emitted the relocation for it, fix it up now so that it // points to the offset into the correct section. @@ -762,11 +762,16 @@ } 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); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits