summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCObjectWriter.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2011-02-16 03:25:55 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2011-02-16 03:25:55 +0000
commit490d02a3349ff7af8827c5c070fce539d3bed034 (patch)
treeb7d3992dcd7cc0cde6f85d528b99b14d20d0d53d /llvm/lib/MC/MCObjectWriter.cpp
parent2ec773f7720950dc97081affac9e2c3d12154a88 (diff)
downloadbcm5719-llvm-490d02a3349ff7af8827c5c070fce539d3bed034.tar.gz
bcm5719-llvm-490d02a3349ff7af8827c5c070fce539d3bed034.zip
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
Diffstat (limited to 'llvm/lib/MC/MCObjectWriter.cpp')
-rw-r--r--llvm/lib/MC/MCObjectWriter.cpp12
1 files changed, 12 insertions, 0 deletions
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;
+}
OpenPOWER on IntegriCloud