From 490d02a3349ff7af8827c5c070fce539d3bed034 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Wed, 16 Feb 2011 03:25:55 +0000 Subject: Gas is very inconsistent about when a relaxation/relocation is needed. Do the right thing and stop trying to copy it. Fixes PR8944. llvm-svn: 125648 --- llvm/lib/MC/MCObjectWriter.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'llvm/lib/MC/MCObjectWriter.cpp') diff --git a/llvm/lib/MC/MCObjectWriter.cpp b/llvm/lib/MC/MCObjectWriter.cpp index f7a790410cd..efe9f68ee22 100644 --- a/llvm/lib/MC/MCObjectWriter.cpp +++ b/llvm/lib/MC/MCObjectWriter.cpp @@ -66,3 +66,15 @@ MCObjectWriter::IsSymbolRefDifferenceFullyResolved(const MCAssembler &Asm, InSet, false); } + +bool +MCObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm, + const MCSymbolData &DataA, + const MCFragment &FB, + bool InSet, + bool IsPCRel) const { + const MCSection &SecA = DataA.getSymbol().AliasedSymbol().getSection(); + const MCSection &SecB = FB.getParent()->getSection(); + // On ELF and COFF A - B is absolute if A and B are in the same section. + return &SecA == &SecB; +} -- cgit v1.2.3