The order of the two symbol listings in a Macho x86_64 subtractor relocation is reversed from what seems intuitive to me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143035 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Object/MachOObjectFile.cpp b/lib/Object/MachOObjectFile.cpp
index 82b9231..97eb52d 100644
--- a/lib/Object/MachOObjectFile.cpp
+++ b/lib/Object/MachOObjectFile.cpp
@@ -835,7 +835,9 @@
if (error_code ec = getRelocationTargetName(RENext->Word1, SucName))
report_fatal_error(ec.message());
- fmt << Name << "-" << SucName;
+ // The X86_64_RELOC_UNSIGNED contains the minuend symbol,
+ // X86_64_SUBTRACTOR contains to the subtrahend.
+ fmt << SucName << "-" << Name;
}
case 6: // X86_64_RELOC_SIGNED1
fmt << Name << "-1";