Don't try to take the address of a bitfield; fixes PR2310.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50966 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp
index 508bf75..6b68705 100644
--- a/lib/CodeGen/CGExprAgg.cpp
+++ b/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) {