[cfe-commits] r91795 - /cfe/trunk/lib/Sema/SemaDecl.cpp

Douglas Gregor dgregor at apple.com
Sun Dec 20 13:10:58 PST 2009


Author: dgregor
Date: Sun Dec 20 15:10:58 2009
New Revision: 91795

URL: http://llvm.org/viewvc/llvm-project?rev=91795&view=rev
Log:
Revert accidental commit

Modified:
    cfe/trunk/lib/Sema/SemaDecl.cpp

Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=91795&r1=91794&r2=91795&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDecl.cpp Sun Dec 20 15:10:58 2009
@@ -3745,19 +3745,28 @@
           InitType->isRecordType() && !InitType->isDependentType()) {
         if (!RequireCompleteType(Var->getLocation(), InitType,
                                  diag::err_invalid_incomplete_type_use)) {
-          InitializedEntity Entity
-            = InitializedEntity::InitializeVariable(Var);
-          InitializationKind Kind
-            = InitializationKind::CreateDefault(Var->getLocation());
-
-          InitializationSequence InitSeq(*this, Entity, Kind, 0, 0);
-          OwningExprResult Init = InitSeq.Perform(*this, Entity, Kind,
-                                                  MultiExprArg(*this, 0, 0));
-          if (Init.isInvalid())
+          ASTOwningVector<&ActionBase::DeleteExpr> ConstructorArgs(*this);
+
+          CXXConstructorDecl *Constructor
+            = PerformInitializationByConstructor(InitType, 
+                                                 MultiExprArg(*this, 0, 0),
+                                                 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();
           else {
-            Var->setInit(Context, 
-                       MaybeCreateCXXExprWithTemporaries(Init.takeAs<Expr>()));
+            // FIXME: Cope with initialization of arrays
+            if (!Constructor->isTrivial() &&
+                InitializeVarWithConstructor(Var, Constructor, 
+                                             move_arg(ConstructorArgs)))
+              Var->setInvalidDecl();
+            
             FinalizeVarWithDestructor(Var, InitType);
           }
         } else {





More information about the cfe-commits mailing list