diff --git a/src/compiler/crystal/codegen/codegen.cr b/src/compiler/crystal/codegen/codegen.cr index a775378f213a..54fe09cb978f 100644 --- a/src/compiler/crystal/codegen/codegen.cr +++ b/src/compiler/crystal/codegen/codegen.cr @@ -2142,7 +2142,7 @@ module Crystal printf_args = {printf_args, [] of LLVM::Value} if printf_args.is_a?(String) printf_args = {printf_args[0], [] of LLVM::Value} if printf_args.is_a?({String}) msg, args = printf_args - printf(" #{msg}\n", args) + printf(" #{msg}\n", args) end # :ditto: diff --git a/src/llvm/basic_block.cr b/src/llvm/basic_block.cr index 47511320fc82..6eec72229b2e 100644 --- a/src/llvm/basic_block.cr +++ b/src/llvm/basic_block.cr @@ -22,4 +22,9 @@ struct LLVM::BasicBlock block_name = LibLLVM.get_basic_block_name(self) block_name ? String.new(block_name) : nil end + + def parent : Function? + parent_func = LibLLVM.get_basic_block_parent(self) + parent_func ? Function.new(parent_func) : nil + end end diff --git a/src/llvm/lib_llvm/core.cr b/src/llvm/lib_llvm/core.cr index 1c5a580e6c5b..9f7d4217e357 100644 --- a/src/llvm/lib_llvm/core.cr +++ b/src/llvm/lib_llvm/core.cr @@ -188,6 +188,7 @@ lib LibLLVM {% end %} fun get_basic_block_name = LLVMGetBasicBlockName(bb : BasicBlockRef) : Char* + fun get_basic_block_parent = LLVMGetBasicBlockParent(bb : BasicBlockRef) : ValueRef fun get_first_basic_block = LLVMGetFirstBasicBlock(fn : ValueRef) : BasicBlockRef fun get_next_basic_block = LLVMGetNextBasicBlock(bb : BasicBlockRef) : BasicBlockRef fun append_basic_block_in_context = LLVMAppendBasicBlockInContext(c : ContextRef, fn : ValueRef, name : Char*) : BasicBlockRef