IK_Direct);
if (!Constructor)
RealDecl->setInvalidDecl();
- else
- Exprs.release();
-
- // Let clients know that initialization was done with a direct
- // initializer.
- VDecl->setCXXDirectInitializer(true);
-
- // FIXME: Add ExprTys and Constructor to the RealDecl as part of
- // the initializer.
+ else {
+ // Let clients know that initialization was done with a direct
+ // initializer.
+ VDecl->setCXXDirectInitializer(true);
+
+ Expr *Temp =
+ new (Context) CXXTemporaryObjectExpr(Constructor, DeclInitType,
+ SourceLocation(),
+ (Expr**)Exprs.release(),
+ NumExprs,
+ SourceLocation());
+ AddInitializerToDecl(Dcl, ExprArg(*this, Temp), /*DirectInit=*/true);
+ }
return;
}