commit 029d37d6a7dc96f71dded5d5a9c8e7477aaa4146 (tree)
parent 20c2dbdbd3847cfaa580878fca2566347a2f4733
Author: Andrew Kelley <superjoe30@gmail.com>
Date: Fri, 10 Nov 2017 14:58:50 -0500
fix bug when multiple function definitions exist
This might be related to #529
Diffstat:
1 file changed, 1 insertion(+), 0 deletions(-)
diff --git a/src/codegen.cpp b/src/codegen.cpp
@@ -408,6 +408,7 @@ static LLVMValueRef fn_llvm_value(CodeGen *g, FnTableEntry *fn_table_entry) {
LLVMValueRef existing_llvm_fn = LLVMGetNamedFunction(g->module, buf_ptr(symbol_name));
if (existing_llvm_fn) {
fn_table_entry->llvm_value = LLVMConstBitCast(existing_llvm_fn, LLVMPointerType(fn_llvm_type, 0));
+ return fn_table_entry->llvm_value;
} else {
fn_table_entry->llvm_value = LLVMAddFunction(g->module, buf_ptr(symbol_name), fn_llvm_type);
}