Revert accidental commit

llvm-svn: 91795
This commit is contained in:
Douglas Gregor 2009-12-20 21:10:58 +00:00
parent b752f1e25c
commit 1b6d10555f
1 changed files with 19 additions and 10 deletions

View File

@ -3745,19 +3745,28 @@ void Sema::ActOnUninitializedDecl(DeclPtrTy dcl,
InitType->isRecordType() && !InitType->isDependentType()) { InitType->isRecordType() && !InitType->isDependentType()) {
if (!RequireCompleteType(Var->getLocation(), InitType, if (!RequireCompleteType(Var->getLocation(), InitType,
diag::err_invalid_incomplete_type_use)) { diag::err_invalid_incomplete_type_use)) {
InitializedEntity Entity ASTOwningVector<&ActionBase::DeleteExpr> ConstructorArgs(*this);
= InitializedEntity::InitializeVariable(Var);
InitializationKind Kind
= InitializationKind::CreateDefault(Var->getLocation());
InitializationSequence InitSeq(*this, Entity, Kind, 0, 0); CXXConstructorDecl *Constructor
OwningExprResult Init = InitSeq.Perform(*this, Entity, Kind, = PerformInitializationByConstructor(InitType,
MultiExprArg(*this, 0, 0)); MultiExprArg(*this, 0, 0),
if (Init.isInvalid()) Var->getLocation(),
SourceRange(Var->getLocation(),
Var->getLocation()),
Var->getDeclName(),
InitializationKind::CreateDefault(Var->getLocation()),
ConstructorArgs);
// FIXME: Location info for the variable initialization?
if (!Constructor)
Var->setInvalidDecl(); Var->setInvalidDecl();
else { else {
Var->setInit(Context, // FIXME: Cope with initialization of arrays
MaybeCreateCXXExprWithTemporaries(Init.takeAs<Expr>())); if (!Constructor->isTrivial() &&
InitializeVarWithConstructor(Var, Constructor,
move_arg(ConstructorArgs)))
Var->setInvalidDecl();
FinalizeVarWithDestructor(Var, InitType); FinalizeVarWithDestructor(Var, InitType);
} }
} else { } else {