diff options
author | Sebastian Redl <sebastian.redl@getdesigned.at> | 2012-02-12 18:41:05 +0000 |
---|---|---|
committer | Sebastian Redl <sebastian.redl@getdesigned.at> | 2012-02-12 18:41:05 +0000 |
commit | 6dc00f6e98a00bd1c332927c3e04918d7e8b0d4f (patch) | |
tree | 89c48828f1a3db02f895af002fea1b3202670def /lib/Parse/ParseExprCXX.cpp | |
parent | 215e4e17d00e12c38687a95502506d8f2ca3e646 (diff) |
Proper initializer list support for new expressions and type construct expressions. Array new still missing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150346 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseExprCXX.cpp')
-rw-r--r-- | lib/Parse/ParseExprCXX.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp index 7dee5ecc5a..fe212f4ebc 100644 --- a/lib/Parse/ParseExprCXX.cpp +++ b/lib/Parse/ParseExprCXX.cpp @@ -1151,10 +1151,13 @@ Parser::ParseCXXTypeConstructExpression(const DeclSpec &DS) { && "Expected '(' or '{'!"); if (Tok.is(tok::l_brace)) { - - // FIXME: Convert to a proper type construct expression. - return ParseBraceInitializer(); - + ExprResult Init = ParseBraceInitializer(); + if (Init.isInvalid()) + return Init; + Expr *InitList = Init.take(); + return Actions.ActOnCXXTypeConstructExpr(TypeRep, SourceLocation(), + MultiExprArg(&InitList, 1), + SourceLocation()); } else { GreaterThanIsOperatorScope G(GreaterThanIsOperator, true); |