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 | d74dd49065ba4109b8b04209fd197d85857d4281 (patch) | |
tree | d69627d08adff9adc4fcc5f27760933bc7782130 /clang/lib/Parse/ParseExprCXX.cpp | |
parent | 1a22d2889b234fcb10cad83be231b113e6d3a8b3 (diff) | |
download | bcm5719-llvm-d74dd49065ba4109b8b04209fd197d85857d4281.tar.gz bcm5719-llvm-d74dd49065ba4109b8b04209fd197d85857d4281.zip |
Proper initializer list support for new expressions and type construct expressions. Array new still missing.
llvm-svn: 150346
Diffstat (limited to 'clang/lib/Parse/ParseExprCXX.cpp')
-rw-r--r-- | clang/lib/Parse/ParseExprCXX.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/Parse/ParseExprCXX.cpp b/clang/lib/Parse/ParseExprCXX.cpp index 7dee5ecc5a8..fe212f4ebcf 100644 --- a/clang/lib/Parse/ParseExprCXX.cpp +++ b/clang/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); |