MC tweak symbol difference resolution for non-local symbols.
authorJim Grosbach <grosbach@apple.com>
Tue, 17 Jan 2012 22:14:39 +0000 (22:14 +0000)
committerJim Grosbach <grosbach@apple.com>
Tue, 17 Jan 2012 22:14:39 +0000 (22:14 +0000)
commit8b9300b972745a6d89b482cbcd4206c01359f7df
tree071c86c422c7148217e4bc75b6849d8b5227d38b
parent283f1fff47db3a483ab94e4b49cc39eb39dd48ea
MC tweak symbol difference resolution for non-local symbols.

When the non-local symbol in the expression is in the same fragment
as the second symbol, the assembler can still evaluate the expression
without needing a relocation.

For example, on ARM:
_foo:
ldr lr, (_foo - 4)

rdar://10348687

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148341 91177308-0d34-0410-b5e6-96231b3b80d8
lib/MC/MachObjectWriter.cpp
test/MC/MachO/ARM/darwin-ARM-reloc.s
test/MC/MachO/reloc-pcrel-offset.s
test/MC/MachO/reloc-pcrel.s