diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2009-07-20 23:18:55 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2009-07-20 23:18:55 +0000 |
commit | e7d346b6d5cee14b75e34928b3fd423f21d8d80d (patch) | |
tree | 917de35bb3f05c11cf38771417d41b161f3bd75b /lib/CodeGen/CodeGenFunction.cpp | |
parent | 25c545788da6e3a725206cfa378b9b83a7da6024 (diff) |
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
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r-- | lib/CodeGen/CodeGenFunction.cpp | 33 |
1 files changed, 0 insertions, 33 deletions
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, |