diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp
index d715b45..f657d8f 100644
--- a/lib/CodeGen/CGExpr.cpp
+++ b/lib/CodeGen/CGExpr.cpp
@@ -557,9 +557,7 @@
   llvm::Value *V;
   unsigned idx = CGM.getTypes().getLLVMFieldNo(Field);
 
-  if (!Field->isBitField()) {
-    V = Builder.CreateStructGEP(BaseValue, idx, "tmp");
-  } else {
+  if (Field->isBitField()) {
     // FIXME: CodeGenTypes should expose a method to get the appropriate
     // type for FieldTy (the appropriate type is ABI-dependent).
     unsigned EltTySize =
@@ -574,8 +572,15 @@
     V = Builder.CreateGEP(BaseValue,
                           llvm::ConstantInt::get(llvm::Type::Int32Ty, idx),
                           "tmp");
+
+    CodeGenTypes::BitFieldInfo bitFieldInfo =
+      CGM.getTypes().getBitFieldInfo(Field);
+    return LValue::MakeBitfield(V, bitFieldInfo.Begin, bitFieldInfo.Size,
+                                Field->getType()->isSignedIntegerType());
   }
   
+  V = Builder.CreateStructGEP(BaseValue, idx, "tmp");
+
   // Match union field type.
   if (isUnion) {
     const llvm::Type * FieldTy = ConvertType(Field->getType());
@@ -587,13 +592,7 @@
                               "tmp");
   }
 
-  if (!Field->isBitField())
-    return LValue::MakeAddr(V);
-    
-  CodeGenTypes::BitFieldInfo bitFieldInfo =
-    CGM.getTypes().getBitFieldInfo(Field);
-  return LValue::MakeBitfield(V, bitFieldInfo.Begin, bitFieldInfo.Size,
-                              Field->getType()->isSignedIntegerType());
+  return LValue::MakeAddr(V);
 }
 
 LValue CodeGenFunction::EmitCompoundLiteralLValue(const CompoundLiteralExpr* E) {
diff --git a/test/CodeGen/union.c b/test/CodeGen/union.c
index 1e4346d..616cf56 100644
--- a/test/CodeGen/union.c
+++ b/test/CodeGen/union.c
@@ -36,3 +36,6 @@
 } q;
 int qfunc() {q buf; unsigned char* x = buf.x;}
 
+union RR {_Bool a : 1;} RRU;
+int RRF(void) {return RRU.a;}
+
