aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CodeGenFunction.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2009-07-20 23:18:55 +0000
committerFariborz Jahanian <fjahanian@apple.com>2009-07-20 23:18:55 +0000
commite7d346b6d5cee14b75e34928b3fd423f21d8d80d (patch)
tree917de35bb3f05c11cf38771417d41b161f3bd75b /lib/CodeGen/CodeGenFunction.cpp
parent25c545788da6e3a725206cfa378b9b83a7da6024 (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.cpp33
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,