diff options
Diffstat (limited to 'lib/CodeGen/CGClass.cpp')
-rw-r--r-- | lib/CodeGen/CGClass.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/CodeGen/CGClass.cpp b/lib/CodeGen/CGClass.cpp index ae99e03c35..e2a3f27a1d 100644 --- a/lib/CodeGen/CGClass.cpp +++ b/lib/CodeGen/CGClass.cpp @@ -512,21 +512,21 @@ static void EmitMemberInitializer(CodeGenFunction &CGF, CXXBaseOrMemberInitializer *MemberInit, const CXXConstructorDecl *Constructor, FunctionArgList &Args) { - assert(MemberInit->isMemberInitializer() && + assert(MemberInit->isAnyMemberInitializer() && "Must have member initializer!"); // non-static data member initializers. - FieldDecl *Field = MemberInit->getMember(); + FieldDecl *Field = MemberInit->getAnyMember(); QualType FieldType = CGF.getContext().getCanonicalType(Field->getType()); llvm::Value *ThisPtr = CGF.LoadCXXThis(); LValue LHS; // If we are initializing an anonymous union field, drill down to the field. - if (MemberInit->getAnonUnionMember()) { - Field = MemberInit->getAnonUnionMember(); - LHS = CGF.EmitLValueForAnonRecordField(ThisPtr, Field, 0); - FieldType = Field->getType(); + if (MemberInit->isIndirectMemberInitializer()) { + LHS = CGF.EmitLValueForAnonRecordField(ThisPtr, + MemberInit->getIndirectMember(), 0); + FieldType = MemberInit->getIndirectMember()->getAnonField()->getType(); } else { LHS = CGF.EmitLValueForFieldInitialization(ThisPtr, Field, 0); } |