authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-11-10 14:58:50-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-11-10 14:58:50-05:00
log029d37d6a7dc96f71dded5d5a9c8e7477aaa4146
tree518cb47a9dab91cfb7e7d9491cfe97ed59895d87
parent20c2dbdbd3847cfaa580878fca2566347a2f4733

fix bug when multiple function definitions exist

This might be related to #529

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

src/codegen.cpp+1
...@@ -408,6 +408,7 @@ static LLVMValueRef fn_llvm_value(CodeGen *g, FnTableEntry *fn_table_entry) {...@@ -408,6 +408,7 @@ static LLVMValueRef fn_llvm_value(CodeGen *g, FnTableEntry *fn_table_entry) {
408 LLVMValueRef existing_llvm_fn = LLVMGetNamedFunction(g->module, buf_ptr(symbol_name));408 LLVMValueRef existing_llvm_fn = LLVMGetNamedFunction(g->module, buf_ptr(symbol_name));
409 if (existing_llvm_fn) {409 if (existing_llvm_fn) {
410 fn_table_entry->llvm_value = LLVMConstBitCast(existing_llvm_fn, LLVMPointerType(fn_llvm_type, 0));410 fn_table_entry->llvm_value = LLVMConstBitCast(existing_llvm_fn, LLVMPointerType(fn_llvm_type, 0));
411 return fn_table_entry->llvm_value;
411 } else {412 } else {
412 fn_table_entry->llvm_value = LLVMAddFunction(g->module, buf_ptr(symbol_name), fn_llvm_type);413 fn_table_entry->llvm_value = LLVMAddFunction(g->module, buf_ptr(symbol_name), fn_llvm_type);
413 }414 }