From fcedc35551cc6b14756499414e47c33004de3be4 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 14 Apr 2016 10:39:03 -0700 Subject: fix crash with generic function and implicit cast --- src/parser.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/parser.cpp') diff --git a/src/parser.cpp b/src/parser.cpp index 650a7e614d..0bd2f57830 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -2927,6 +2927,7 @@ static void clone_subtree_list(ZigList *dest, ZigList *src dest->resize(src->length); for (int i = 0; i < src->length; i += 1) { dest->at(i) = ast_clone_subtree(src->at(i), next_node_index); + dest->at(i)->parent_field = &dest->at(i); } } @@ -2958,11 +2959,12 @@ AstNode *ast_clone_subtree(AstNode *old_node, uint32_t *next_node_index) { memcpy(new_node, old_node, sizeof(AstNode)); new_node->create_index = *next_node_index; *next_node_index += 1; + new_node->parent_field = nullptr; switch (new_node->type) { case NodeTypeRoot: - clone_subtree_list(&new_node->data.root.top_level_decls, &old_node->data.root.top_level_decls, - next_node_index); + clone_subtree_list(&new_node->data.root.top_level_decls, + &old_node->data.root.top_level_decls, next_node_index); break; case NodeTypeFnProto: clone_subtree_tld(&new_node->data.fn_proto.top_level_decl, &old_node->data.fn_proto.top_level_decl, -- cgit v1.2.3