authorgravatar for thejoshwolfe@gmail.comJosh Wolfe <thejoshwolfe@gmail.com> 2017-09-11 20:08:45-07:00
committergravatar for thejoshwolfe@gmail.comJosh Wolfe <thejoshwolfe@gmail.com> 2017-09-11 20:08:45-07:00
loge52418097d908f6f0b96513395752405329caf4e
tree80ec64a7310936d48250c7b500b7cf6ad369ae9b
parent7e3f45a49f83fb1b9d182bcddeb0b34e49380c8f

not my segfault


1 files changed, 4 insertions(+), 1 deletions(-)

src/parsec.cpp+4-1
......@@ -988,7 +988,7 @@ static AstNode *trans_compound_assign_operator(Context *c, AstNode *block, Compo
988988 AstNode *addr_of_lhs = trans_create_node_addr_of(c, false, false, lhs);
989989 // TODO: avoid name collisions with generated variable names
990990 Buf* tmp_var_name = buf_create_from_str("_ref");
991 AstNode *tmp_var_decl = trans_create_node_var_decl(c, true, tmp_var_name, nullptr, addr_of_lhs);
991 AstNode *tmp_var_decl = trans_create_node_var_decl_local(c, true, tmp_var_name, nullptr, addr_of_lhs);
992992 child_block->data.block.statements.append(tmp_var_decl);
993993
994994 // *_ref = result_type(operation_type(*_ref) >> u5(rhs));
......@@ -2194,10 +2194,13 @@ static void visit_fn_decl(Context *c, const FunctionDecl *fn_decl) {
21942194 return;
21952195 }
21962196
2197 ZigList<Buf*> fake_names;
21972198 for (size_t i = 0; i < proto_node->data.fn_proto.params.length; i += 1) {
21982199 AstNode *param_node = proto_node->data.fn_proto.params.at(i);
21992200 const ParmVarDecl *param = fn_decl->getParamDecl(i);
22002201 const char *name = decl_name(param);
2202 fake_names.append(buf_create_from_str(name));
2203 buf_append_char(fake_names.at(i), '_');
22012204 if (strlen(name) == 0) {
22022205 Buf *proto_param_name = param_node->data.param_decl.name;
22032206 if (proto_param_name == nullptr) {