aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-09-30 20:12:00 -0400
committerAndrew Kelley <superjoe30@gmail.com>2016-09-30 20:12:00 -0400
commit633781e31dedaa27d9692d56f6cf073931ca311a (patch)
tree64f05abeb6225a8c45164a073afe02bb2af47ec0 /src/parser.cpp
parent4e2fa2d15be248c29051a58995e38caa0b1de0a5 (diff)
downloadzig-633781e31dedaa27d9692d56f6cf073931ca311a.tar.gz
zig-633781e31dedaa27d9692d56f6cf073931ca311a.zip
empty function compiles successfully with IR
Diffstat (limited to 'src/parser.cpp')
-rw-r--r--src/parser.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/parser.cpp b/src/parser.cpp
index 6ab0024433..cbd96e20ea 100644
--- a/src/parser.cpp
+++ b/src/parser.cpp
@@ -1912,14 +1912,14 @@ static AstNode *ast_parse_label(ParseContext *pc, size_t *token_index, bool mand
return node;
}
-static AstNode *ast_create_void_expr(ParseContext *pc, Token *token) {
- AstNode *node = ast_create_node(pc, NodeTypeContainerInitExpr, token);
- node->data.container_init_expr.type = ast_create_node(pc, NodeTypeSymbol, token);
- node->data.container_init_expr.kind = ContainerInitKindArray;
- node->data.container_init_expr.type->data.symbol_expr.symbol = pc->void_buf;
- normalize_parent_ptrs(node);
- return node;
-}
+//static AstNode *ast_create_void_expr(ParseContext *pc, Token *token) {
+// AstNode *node = ast_create_node(pc, NodeTypeContainerInitExpr, token);
+// node->data.container_init_expr.type = ast_create_node(pc, NodeTypeSymbol, token);
+// node->data.container_init_expr.kind = ContainerInitKindArray;
+// node->data.container_init_expr.type->data.symbol_expr.symbol = pc->void_buf;
+// normalize_parent_ptrs(node);
+// return node;
+//}
/*
Block : token(LBrace) list(option(Statement), token(Semicolon)) token(RBrace)
@@ -1961,13 +1961,12 @@ static AstNode *ast_parse_block(ParseContext *pc, size_t *token_index, bool mand
semicolon_expected = !statement_node;
if (!statement_node) {
statement_node = ast_parse_non_block_expr(pc, token_index, false);
- if (!statement_node) {
- statement_node = ast_create_void_expr(pc, last_token);
- }
}
}
}
- node->data.block.statements.append(statement_node);
+ if (statement_node) {
+ node->data.block.statements.append(statement_node);
+ }
last_token = &pc->tokens->at(*token_index);
if (last_token->id == TokenIdRBrace) {