Exprs.push_back(Expr.get());
- if (Tok.isNot(tok::comma))
+ // We might be parsing the LHS of a fold-expression. If we reached the fold
+ // operator, stop.
+ if (Tok.isNot(tok::comma) || NextToken().is(tok::ellipsis))
return false;
// Move to the next argument, remember where the comma was.
(int)(t + ... + undeclared_junk) + // expected-error {{undeclared}}
(int)(... + undeclared_junk) + // expected-error {{undeclared}} expected-error {{does not contain any unexpanded}}
(int)(undeclared_junk + ...) + // expected-error {{undeclared}}
- (int)(a + ...); // expected-error {{does not contain any unexpanded}}
+ (int)(a + ...) + // expected-error {{does not contain any unexpanded}}
+ (int)(a, ...) + // expected-error {{does not contain any unexpanded}}
+ (int)(..., a) + // expected-error {{does not contain any unexpanded}}
+ (int)(a, ..., undeclared_junk) + // expected-error {{undeclared}} expected-error {{does not contain any unexpanded}}
+ (int)(t, ...) +
+ (int)(..., t) +
+ (int)(t, ..., a);
}
// fold-operator can be '>' or '>>'.