Add support for a missed case when the symbols in a difference
expression are in the same section but not the same fragment.
rdar://
10924681
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151345
91177308-0d34-0410-b5e6-
96231b3b80d8
if (Addrs && (&SecA != &SecB))
Addend += (Addrs->lookup(&SecA) - Addrs->lookup(&SecB));
+ // Pointers to Thumb symbols need to have their low-bit set to allow
+ // for interworking.
+ if (Asm->isThumbFunc(&SA))
+ Addend |= 1;
+
// Clear the symbol expr pointers to indicate we have folded these
// operands.
A = B = 0;