summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MachObjectWriter.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2012-01-24 21:45:25 +0000
committerJim Grosbach <grosbach@apple.com>2012-01-24 21:45:25 +0000
commit35bc8f915923904a38827f103c0403a8e3a70dfb (patch)
treec4f75385256bfc8ed84e0891c35ba4dd59892630 /llvm/lib/MC/MachObjectWriter.cpp
parenta410ed3ced5cb7c0576d15896bad32d5973721de (diff)
downloadbcm5719-llvm-35bc8f915923904a38827f103c0403a8e3a70dfb.tar.gz
bcm5719-llvm-35bc8f915923904a38827f103c0403a8e3a70dfb.zip
ARM Darwin symbol ref differences w/o subsection-via-symbols.
When not using subsections via symbols, the assembler can resolve symbol differences (including pcrel references) to non-local labels at assembly time, not just those in the same atom. llvm-svn: 148865
Diffstat (limited to 'llvm/lib/MC/MachObjectWriter.cpp')
-rw-r--r--llvm/lib/MC/MachObjectWriter.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp
index a3445219f1e..57f90d95527 100644
--- a/llvm/lib/MC/MachObjectWriter.cpp
+++ b/llvm/lib/MC/MachObjectWriter.cpp
@@ -592,7 +592,8 @@ IsSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
if (!Asm.getBackend().hasReliableSymbolDifference()) {
if (!SA.isInSection() || &SecA != &SecB ||
(!SA.isTemporary() &&
- FB.getAtom() != Asm.getSymbolData(SA).getFragment()->getAtom()))
+ FB.getAtom() != Asm.getSymbolData(SA).getFragment()->getAtom() &&
+ Asm.getSubsectionsViaSymbols()))
return false;
return true;
}
OpenPOWER on IntegriCloud