OSDN Git Service

Improve pretty printing of GOT relocations in MachO on x86_64.
authorOwen Anderson <resistor@mac.com>
Wed, 26 Oct 2011 17:05:20 +0000 (17:05 +0000)
committerOwen Anderson <resistor@mac.com>
Wed, 26 Oct 2011 17:05:20 +0000 (17:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143031 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Object/MachOObjectFile.cpp

index e3a7499..d973f43 100644 (file)
@@ -807,8 +807,15 @@ error_code MachOObjectFile::getRelocationValueString(DataRefImpl Rel,
     StringRef Name;
     if (error_code ec = getRelocationTargetName(RE->Word1, Name))
       report_fatal_error(ec.message());
+    bool isPCRel = ((RE->Word1 >> 24) & 1);
 
     switch (Type) {
+      case 3:   // X86_64_RELOC_GOT_LOAD
+      case 4: { // X86_64_RELOC_GOT
+        fmt << Name << "@GOT";
+        if (isPCRel) fmt << "PCREL";
+        break;
+      }
       case 5: { // X86_64_RELOC_SUBTRACTOR
         InMemoryStruct<macho::RelocationEntry> RENext;
         DataRefImpl RelNext = Rel;