MCAssembler: Sink fixup list into MCDataFragment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96093 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/MC/MCAssembler.cpp b/lib/MC/MCAssembler.cpp
index 7f3930c..2875730 100644
--- a/lib/MC/MCAssembler.cpp
+++ b/lib/MC/MCAssembler.cpp
@@ -455,7 +455,7 @@
     }
   }
 
-  void ComputeRelocationInfo(MCAssembler &Asm, MCFragment &Fragment,
+  void ComputeRelocationInfo(MCAssembler &Asm, MCDataFragment &Fragment,
                              MCAsmFixup &Fixup,
                              DenseMap<const MCSymbol*,MCSymbolData*> &SymbolMap,
                              std::vector<MachRelocationEntry> &Relocs) {
@@ -780,9 +780,10 @@
       unsigned NumRelocsStart = RelocInfos.size();
       for (MCSectionData::reverse_iterator it2 = SD.rbegin(),
              ie2 = SD.rend(); it2 != ie2; ++it2)
-        for (unsigned i = 0, e = it2->fixup_size(); i != e; ++i)
-          ComputeRelocationInfo(Asm, *it2, it2->getFixups()[e - i - 1],
-                                SymbolMap, RelocInfos);
+        if (MCDataFragment *DF = dyn_cast<MCDataFragment>(&*it2))
+          for (unsigned i = 0, e = DF->fixup_size(); i != e; ++i)
+            ComputeRelocationInfo(Asm, *DF, DF->getFixups()[e - i - 1],
+                                  SymbolMap, RelocInfos);
 
       unsigned NumRelocs = RelocInfos.size() - NumRelocsStart;
       uint64_t SectionStart = SectionDataStart + SD.getAddress();
@@ -1198,16 +1199,6 @@
   OS << "<MCFragment " << (void*) this << " Offset:" << Offset
      << " FileSize:" << FileSize;
 
-  if (!Fixups.empty()) {
-    OS << "\n";
-    OS << "          Fixups:[";
-    for (fixup_iterator it = fixup_begin(), ie = fixup_end(); it != ie; ++it) {
-      if (it != fixup_begin()) OS << ",\n            ";
-      OS << *it;
-    }
-    OS << "]";
-  }
-
   OS << ">";
 }
 
@@ -1233,7 +1224,19 @@
     if (i) OS << ",";
     OS << hexdigit((Contents[i] >> 4) & 0xF) << hexdigit(Contents[i] & 0xF);
   }
-  OS << "]>";
+  OS << "]";
+
+  if (!getFixups().empty()) {
+    OS << ",\n       ";
+    OS << " Fixups:[";
+    for (fixup_iterator it = fixup_begin(), ie = fixup_end(); it != ie; ++it) {
+      if (it != fixup_begin()) OS << ",\n            ";
+      OS << *it;
+    }
+    OS << "]";
+  }
+
+  OS << ">";
 }
 
 void MCFillFragment::dump() {