aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGClass.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2011-06-16 04:16:24 +0000
committerJohn McCall <rjmccall@apple.com>2011-06-16 04:16:24 +0000
commita07398ed98ea2b55ad7a505a3aab18aed93b149f (patch)
tree131d1435c6d1cdebdeab4c2a48e1f4371cd23c9e /lib/CodeGen/CGClass.cpp
parentc7b993b4dfc14ca2389087f21467259de8af7e91 (diff)
Restore correct use of GC barriers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133144 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGClass.cpp')
-rw-r--r--lib/CodeGen/CGClass.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/CodeGen/CGClass.cpp b/lib/CodeGen/CGClass.cpp
index 066f0d5c7d..77a5be6c96 100644
--- a/lib/CodeGen/CGClass.cpp
+++ b/lib/CodeGen/CGClass.cpp
@@ -430,10 +430,8 @@ static void EmitAggMemberInitializer(CodeGenFunction &CGF,
}
if (!CGF.hasAggregateLLVMType(T)) {
- CGF.EmitScalarInit(MemberInit->getInit(), 0, Dest, false,
- LHS.isVolatileQualified(),
- CGF.getContext().getTypeAlign(T),
- T);
+ LValue lvalue = CGF.MakeAddrLValue(Dest, T);
+ CGF.EmitScalarInit(MemberInit->getInit(), /*decl*/ 0, lvalue, false);
} else if (T->isAnyComplexType()) {
CGF.EmitComplexExprIntoAddr(MemberInit->getInit(), Dest,
LHS.isVolatileQualified());
@@ -555,8 +553,7 @@ static void EmitMemberInitializer(CodeGenFunction &CGF,
CGF.EmitNullInitialization(LHS.getAddress(), Field->getType());
} else if (!CGF.hasAggregateLLVMType(Field->getType())) {
if (LHS.isSimple()) {
- CGF.EmitExprAsInit(MemberInit->getInit(), Field, LHS.getAddress(),
- CGF.getContext().getDeclAlign(Field), false);
+ CGF.EmitExprAsInit(MemberInit->getInit(), Field, LHS, false);
} else {
RValue RHS = RValue::get(CGF.EmitScalarExpr(MemberInit->getInit()));
CGF.EmitStoreThroughLValue(RHS, LHS, FieldType);