Parsing fix for casts in ObjC message expressions.

This commit is contained in:
Erik Verbruggen
2009-08-10 12:44:52 +02:00
parent 0ab8f1ed46
commit ffccb612af

View File

@@ -3076,7 +3076,12 @@ bool Parser::parseObjCSelectorArg(ObjCSelectorArgumentAST *&selNode, ObjCMessage
selNode->colon_token = consumeToken();
argNode = new (_pool) ObjCMessageArgumentAST;
parseAssignmentExpression(argNode->parameter_value_expression);
ExpressionAST *expr = argNode->parameter_value_expression;
unsigned expressionStart = cursor();
if (parseAssignmentExpression(expr) && LA() == T_COLON && expr->asCastExpression()) {
rewind(expressionStart);
parseUnaryExpression(expr);
}
return true;
}