diff --git a/lib/CodeGen/AsmPrinter/DwarfException.cpp b/lib/CodeGen/AsmPrinter/DwarfException.cpp
index 4f6e685..fcdcfd3 100644
--- a/lib/CodeGen/AsmPrinter/DwarfException.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfException.cpp
@@ -728,7 +728,7 @@
     // in target-independent code.
     //
     if ((LSDASection->getKind().isWriteable() &&
-         !LSDASection->getKind().isDataRel()) ||
+         !LSDASection->getKind().isReadOnlyWithRel()) ||
         Asm->TM.getRelocationModel() == Reloc::Static)
       TTypeFormat = dwarf::DW_EH_PE_absptr;
     else
@@ -922,11 +922,11 @@
   unsigned Index = 1;
 
   for (std::vector<GlobalVariable *>::const_reverse_iterator
-         I = TypeInfos.rbegin(), E = TypeInfos.rend(); I != E; ++I, ++Index) {
+         I = TypeInfos.rbegin(), E = TypeInfos.rend(); I != E; ++I) {
     const GlobalVariable *TI = *I;
 
     if (TI) {
-      if (!LSDASection->getKind().isDataRel() &&
+      if (!LSDASection->getKind().isReadOnlyWithRel() &&
           (TTypeFormat == dwarf::DW_EH_PE_absptr ||
            TI->getLinkage() == GlobalValue::InternalLinkage)) {
         // Print out the unadorned name of the type info.
@@ -940,7 +940,8 @@
                                                 IsTypeInfoPCRel);
 
         if (!IsTypeInfoPCRel)
-          TypeInfoRef = CreateLabelDiff(TypeInfoRef, "typeinforef_addr", Index);
+          TypeInfoRef = CreateLabelDiff(TypeInfoRef, "typeinforef_addr",
+                                        Index++);
 
         O << MAI->getData32bitsDirective();
         TypeInfoRef->print(O, MAI);
diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp
index e36e453..6fdbc92 100644
--- a/lib/Target/TargetLoweringObjectFile.cpp
+++ b/lib/Target/TargetLoweringObjectFile.cpp
@@ -784,7 +784,7 @@
 
   // Exception Handling.
   LSDASection = getMachOSection("__TEXT", "__gcc_except_tab", 0,
-                                SectionKind::getDataRel());
+                                SectionKind::getReadOnlyWithRel());
   EHFrameSection =
     getMachOSection("__TEXT", "__eh_frame",
                     MCSectionMachO::S_COALESCED |
