aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/parse.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/parse.c b/src/parse.c
index 41caa4a..12e8815 100644
--- a/src/parse.c
+++ b/src/parse.c
@@ -742,7 +742,9 @@ static AstNode* parse_argument_expr_list(Parser* p) {
// TODO 'alignof' '(' type-name ')'
static AstNode* parse_unary_expr(Parser* p) {
TokenKind op = peek_token(p)->kind;
- if (consume_token_if(p, TokenKind_minus)) {
+ if (consume_token_if(p, TokenKind_plus)) {
+ return parse_cast_expr(p);
+ } else if (consume_token_if(p, TokenKind_minus)) {
AstNode* operand = parse_cast_expr(p);
return ast_new_binary_expr(op, ast_new_int(0), operand);
} else if (consume_token_if(p, TokenKind_not)) {