From 370de7386ce811b6381c3ffcf5dd8efd2810da2b Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 2 Dec 2015 00:53:57 -0700 Subject: fix parameter access and thus shared library example --- src/codegen.cpp | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'src/codegen.cpp') diff --git a/src/codegen.cpp b/src/codegen.cpp index d442856692..45bbfeb310 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -105,19 +105,13 @@ static LLVMValueRef find_or_create_string(CodeGen *g, Buf *str) { static LLVMValueRef get_variable_value(CodeGen *g, Buf *name) { assert(g->cur_fn->proto_node->type == NodeTypeFnProto); - int param_count = g->cur_fn->proto_node->data.fn_proto.params.length; - for (int i = 0; i < param_count; i += 1) { - AstNode *param_decl_node = g->cur_fn->proto_node->data.fn_proto.params.at(i); - assert(param_decl_node->type == NodeTypeParamDecl); - Buf *param_name = ¶m_decl_node->data.param_decl.name; - if (buf_eql_buf(name, param_name)) { - CodeGenNode *codegen_node = g->cur_fn->fn_def_node->codegen_node; - assert(codegen_node); - FnDefNode *codegen_fn_def = &codegen_node->data.fn_def_node; - return codegen_fn_def->params[i]; - } - } - zig_unreachable(); + + SymbolTableEntry *symbol_entry = g->cur_fn->symbol_table.get(name); + + CodeGenNode *codegen_node = g->cur_fn->fn_def_node->codegen_node; + assert(codegen_node); + FnDefNode *codegen_fn_def = &codegen_node->data.fn_def_node; + return codegen_fn_def->params[symbol_entry->param_index]; } static TypeTableEntry *get_expr_type(AstNode *node) { -- cgit v1.2.3