Commit 929eeacd by Ian Lance Taylor

compiler: Reject invalid composite literals.

From-SVN: r186766
parent 46b380a2
......@@ -2865,7 +2865,16 @@ Parse::primary_expr(bool may_be_sink, bool may_be_composite_lit,
{
if (this->peek_token()->is_op(OPERATOR_LCURLY))
{
if (is_parenthesized)
if (!may_be_composite_lit)
{
Type* t = ret->type();
if (t->named_type() != NULL
|| t->forward_declaration_type() != NULL)
error_at(start_loc,
_("parentheses required around this composite literal"
"to avoid parsing ambiguity"));
}
else if (is_parenthesized)
error_at(start_loc,
"cannot parenthesize type in composite literal");
ret = this->composite_lit(ret->type(), 0, ret->location());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment