aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2013-05-03 15:05:50 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2013-05-03 15:05:50 +0000
commit1f78a50f8aee58f8e07f6307f4b8d0b1742e9a2b (patch)
tree2aadba4e61c99f5c7be138a78b34a6e9392ddf3f /lib/Sema/SemaDecl.cpp
parent363f99d0cd6c00e54dde2bc66a3af234ed805b2c (diff)
ArrayRef'ize InitializationSequence constructor and InitializationSequence::Diagnose()
Patch by Robert Wilhelm. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181022 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaDecl.cpp')
-rw-r--r--lib/Sema/SemaDecl.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index e2f1e016e7..5e0d7f2a0a 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -7476,15 +7476,13 @@ void Sema::AddInitializerToDecl(Decl *RealDecl, Expr *Init,
: InitializationKind::CreateCopy(VDecl->getLocation(),
Init->getLocStart());
- Expr **Args = &Init;
- unsigned NumArgs = 1;
- if (CXXDirectInit) {
- Args = CXXDirectInit->getExprs();
- NumArgs = CXXDirectInit->getNumExprs();
- }
- InitializationSequence InitSeq(*this, Entity, Kind, Args, NumArgs);
- ExprResult Result = InitSeq.Perform(*this, Entity, Kind,
- MultiExprArg(Args, NumArgs), &DclT);
+ MultiExprArg Args = Init;
+ if (CXXDirectInit)
+ Args = MultiExprArg(CXXDirectInit->getExprs(),
+ CXXDirectInit->getNumExprs());
+
+ InitializationSequence InitSeq(*this, Entity, Kind, Args);
+ ExprResult Result = InitSeq.Perform(*this, Entity, Kind, Args, &DclT);
if (Result.isInvalid()) {
VDecl->setInvalidDecl();
return;
@@ -7934,7 +7932,7 @@ void Sema::ActOnUninitializedDecl(Decl *RealDecl,
InitializationKind Kind
= InitializationKind::CreateDefault(Var->getLocation());
- InitializationSequence InitSeq(*this, Entity, Kind, 0, 0);
+ InitializationSequence InitSeq(*this, Entity, Kind, MultiExprArg());
ExprResult Init = InitSeq.Perform(*this, Entity, Kind, MultiExprArg());
if (Init.isInvalid())
Var->setInvalidDecl();