The order of the two symbol listings in a Macho x86_64 subtractor relocation is reversed from what seems intuitive to me.
llvm-svn: 143035
diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp
index 82b9231..97eb52d7 100644
--- a/llvm/lib/Object/MachOObjectFile.cpp
+++ b/llvm/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";