Don't try to take the address of a bitfield; fixes PR2310.

llvm-svn: 50966
diff --git a/clang/lib/CodeGen/CGExprAgg.cpp b/clang/lib/CodeGen/CGExprAgg.cpp
index 508bf75..6b68705 100644
--- a/clang/lib/CodeGen/CGExprAgg.cpp
+++ b/clang/lib/CodeGen/CGExprAgg.cpp
@@ -304,12 +304,11 @@
   // FIXME: Are initializers affected by volatile?
   if (E->getType()->isComplexType()) {
     CGF.EmitComplexExprIntoAddr(E, LV.getAddress(), false);
-    return;
+  } else if (CGF.hasAggregateLLVMType(E->getType())) {
+    CGF.EmitAnyExpr(E, LV.getAddress(), false);
+  } else {
+    CGF.EmitStoreThroughLValue(CGF.EmitAnyExpr(E), LV, E->getType());
   }
-  RValue RV = CGF.EmitAnyExpr(E, LV.getAddress(), false);
-  if (CGF.hasAggregateLLVMType(E->getType()))
-    return;
-  CGF.EmitStoreThroughLValue(RV, LV, E->getType());
 }
 
 void AggExprEmitter::EmitNullInitializationToLValue(LValue LV, QualType T) {