From e7d346b6d5cee14b75e34928b3fd423f21d8d80d Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Mon, 20 Jul 2009 23:18:55 +0000 Subject: Move EmitCtorPrologue to CGCXX. Add an assert and FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76498 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CodeGenFunction.cpp | 33 --------------------------------- 1 file changed, 33 deletions(-) (limited to 'lib/CodeGen/CodeGenFunction.cpp') diff --git a/lib/CodeGen/CodeGenFunction.cpp b/lib/CodeGen/CodeGenFunction.cpp index 4bfebe5c31..962f8a0950 100644 --- a/lib/CodeGen/CodeGenFunction.cpp +++ b/lib/CodeGen/CodeGenFunction.cpp @@ -141,39 +141,6 @@ void CodeGenFunction::FinishFunction(SourceLocation EndLoc) { Ptr->eraseFromParent(); } -/// EmitCtorPrologue - This routine generates necessary code to initialize -/// base classes and non-static data members belonging to this constructor. -void CodeGenFunction::EmitCtorPrologue(const CXXConstructorDecl *CD) { - for (CXXConstructorDecl::init_const_iterator B = CD->init_begin(), - E = CD->init_end(); - B != E; ++B) { - CXXBaseOrMemberInitializer *Member = (*B); - if (Member->isBaseInitializer()) { - // FIXME. Added base initialilzers here. - ; - } - else { - // non-static data member initilaizers. - FieldDecl *Field = Member->getMember(); - QualType FieldType = getContext().getCanonicalType((Field)->getType()); - assert(!getContext().getAsArrayType(FieldType) - && "Field arrays initialization unsupported"); - assert(!FieldType->getAsRecordType() - && "Field class initialization unsupported"); - llvm::Value *LoadOfThis = LoadCXXThis(); - LValue LHS = EmitLValueForField(LoadOfThis, Field, false, 0); - - assert(Member->getNumArgs() == 1 && "Initializer count must be 1 only"); - Expr *RhsExpr = *Member->begin(); - llvm::Value *RHS = EmitScalarExpr(RhsExpr, true); - if (LHS.isBitfield()) - EmitStoreThroughBitfieldLValue(RValue::get(RHS), LHS, FieldType, 0); - else - EmitStoreThroughLValue(RValue::get(RHS), LHS, FieldType); - } - } -} - void CodeGenFunction::StartFunction(const Decl *D, QualType RetTy, llvm::Function *Fn, const FunctionArgList &Args, -- cgit v1.2.3-18-g5258