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";