diff --git a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
index df42b2c..f2eb5cf 100644
--- a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+++ b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
@@ -487,12 +487,8 @@
 
   // .comm doesn't support alignment before Leopard.
   Triple T(((LLVMTargetMachine&)TM).getTargetTriple());
-  if (T.isMacOSX()) {
-    if (T.isMacOSXVersionLT(10, 5))
-      CommDirectiveSupportsAlignment = false;
-    if (!T.isMacOSXVersionLT(10, 6))
-      SupportsCompactUnwindInfo = true;
-  }
+  if (T.isMacOSX() && T.isMacOSXVersionLT(10, 5))
+    CommDirectiveSupportsAlignment = false;
 
   TargetLoweringObjectFile::Initialize(Ctx, TM);
 
@@ -610,10 +606,11 @@
   LSDASection = getContext().getMachOSection("__TEXT", "__gcc_except_tab", 0,
                                              SectionKind::getReadOnlyWithRel());
 
-  CompactUnwindSection =
-    getContext().getMachOSection("__LD", "__compact_unwind",
-                                 MCSectionMachO::S_ATTR_DEBUG,
-                                 SectionKind::getReadOnly());
+  if (T.isMacOSX() && !T.isMacOSXVersionLT(10, 6))
+    CompactUnwindSection =
+      getContext().getMachOSection("__LD", "__compact_unwind",
+                                   MCSectionMachO::S_ATTR_DEBUG,
+                                   SectionKind::getReadOnly());
 
   // Debug Information.
   DwarfAbbrevSection =
diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp
index 937dad4..dd63c15 100644
--- a/lib/MC/MCDwarf.cpp
+++ b/lib/MC/MCDwarf.cpp
@@ -917,7 +917,7 @@
     CIEKey key(frame.Personality, frame.PersonalityEncoding,
                frame.LsdaEncoding);
     const MCSymbol *&cieStart = isEH ? CIEStarts[key] : DummyDebugKey;
-    if (isEH && asmInfo.getSupportsCompactUnwindInfo() &&
+    if (isEH && asmInfo.getCompactUnwindSection() &&
         Emitter.EmitCompactUnwind(streamer, frame))
       continue;
 
diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp
index 130a553..9f87c07 100644
--- a/lib/Target/TargetLoweringObjectFile.cpp
+++ b/lib/Target/TargetLoweringObjectFile.cpp
@@ -61,7 +61,6 @@
   
   IsFunctionEHFrameSymbolPrivate = true;
   SupportsWeakOmittedEHFrame = true;
-  SupportsCompactUnwindInfo = false;
 }
 
 TargetLoweringObjectFile::~TargetLoweringObjectFile() {
