diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-01-03 19:31:53 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-01-03 19:31:53 +0000 |
commit | 968f23ab97f1a6ee606c79911eec53c1b5d9f717 (patch) | |
tree | f33b4d5a6f4b6d3fd3161eceb81aab3388449718 /clang/lib/Parse/ParseInit.cpp | |
parent | 8e666510f6f9fa832aa8393be5331ba4456ab63a (diff) | |
download | bcm5719-llvm-968f23ab97f1a6ee606c79911eec53c1b5d9f717.tar.gz bcm5719-llvm-968f23ab97f1a6ee606c79911eec53c1b5d9f717.zip |
Implement support for pack expansions in initializer lists and
expression lists.
llvm-svn: 122764
Diffstat (limited to 'clang/lib/Parse/ParseInit.cpp')
-rw-r--r-- | clang/lib/Parse/ParseInit.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Parse/ParseInit.cpp b/clang/lib/Parse/ParseInit.cpp index c2675f33e78..82dda2b793d 100644 --- a/clang/lib/Parse/ParseInit.cpp +++ b/clang/lib/Parse/ParseInit.cpp @@ -310,8 +310,8 @@ ExprResult Parser::ParseInitializerWithPotentialDesignator() { /// [GNU] '{' '}' /// /// initializer-list: -/// designation[opt] initializer -/// initializer-list ',' designation[opt] initializer +/// designation[opt] initializer ...[opt] +/// initializer-list ',' designation[opt] initializer ...[opt] /// ExprResult Parser::ParseBraceInitializer() { InMessageExpressionRAIIObject InMessage(*this, false); @@ -344,6 +344,9 @@ ExprResult Parser::ParseBraceInitializer() { else SubElt = ParseInitializer(); + if (Tok.is(tok::ellipsis)) + SubElt = Actions.ActOnPackExpansion(SubElt.get(), ConsumeToken()); + // If we couldn't parse the subelement, bail out. if (!SubElt.isInvalid()) { InitExprs.push_back(SubElt.release()); |