diff --git a/lib/CodeGen/ModuleBuilder.cpp b/lib/CodeGen/ModuleBuilder.cpp
index 4835454..600271f 100644
--- a/lib/CodeGen/ModuleBuilder.cpp
+++ b/lib/CodeGen/ModuleBuilder.cpp
@@ -54,7 +54,7 @@
     virtual void Initialize(ASTContext &Context) {
       Ctx = &Context;
       
-      M->setTargetTriple(Ctx->Target.getTargetTriple());
+      M->setTargetTriple(Ctx->Target.getTriple().getTriple());
       M->setDataLayout(Ctx->Target.getTargetDescription());
       TD.reset(new llvm::TargetData(Ctx->Target.getTargetDescription()));
       Builder.reset(new CodeGen::CodeGenModule(Context, CompileOpts,
diff --git a/lib/CodeGen/TargetABIInfo.cpp b/lib/CodeGen/TargetABIInfo.cpp
index a307435..96c70fe 100644
--- a/lib/CodeGen/TargetABIInfo.cpp
+++ b/lib/CodeGen/TargetABIInfo.cpp
@@ -1524,18 +1524,16 @@
 
   // For now we just cache the ABIInfo in CodeGenTypes and don't free it.
 
-  llvm::Triple TargetTriple(getContext().Target.getTargetTriple());
-  switch (TargetTriple.getArch()) {
+  const llvm::Triple &Triple(getContext().Target.getTriple());
+  switch (Triple.getArch()) {
   default:
     return *(TheABIInfo = new DefaultABIInfo);
 
-  case llvm::Triple::x86: {
-    llvm::Triple::OSType OS = TargetTriple.getOS();
-    
-    if (OS == llvm::Triple::Darwin)
+  case llvm::Triple::x86:
+    if (Triple.getOS() == llvm::Triple::Darwin)
       return *(TheABIInfo = new X86_32ABIInfo(Context, true, true));
 
-    switch (OS) {
+    switch (Triple.getOS()) {
     case llvm::Triple::Cygwin:
     case llvm::Triple::DragonFly:
     case llvm::Triple::MinGW32:
@@ -1547,7 +1545,6 @@
     default:
       return *(TheABIInfo = new X86_32ABIInfo(Context, false, false));
     }
-  }
 
   case llvm::Triple::x86_64:
     return *(TheABIInfo = new X86_64ABIInfo());
