about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBaitinq <[email protected]>2025-05-15 12:07:23 +0200
committerBaitinq <[email protected]>2025-05-15 12:07:23 +0200
commita3a219dd0eb5b198dd6111a7a49ad12a24a4dcca (patch)
tree0b7da154d16c1c58a728f4418629b8acca30d499
parentMisc: Cleanup flake.nix (diff)
downloadpry-lang-a3a219dd0eb5b198dd6111a7a49ad12a24a4dcca.tar.gz
pry-lang-a3a219dd0eb5b198dd6111a7a49ad12a24a4dcca.tar.bz2
pry-lang-a3a219dd0eb5b198dd6111a7a49ad12a24a4dcca.zip
Codegen: Fix bug with nested ifs
-rw-r--r--src/codegen.zig4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index 6b8e310..5733d5f 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -275,8 +275,8 @@ pub const CodeGen = struct {
             try self.generate_statement(stmt);
         }
         const merge_block = llvm.LLVMAppendBasicBlock(llvm.LLVMGetLastFunction(self.llvm_module), "merge_block");
-        const last_instr = llvm.LLVMGetLastInstruction(then_block);
-        if (llvm.LLVMIsATerminatorInst(last_instr) == null) {
+        const last_instr = llvm.LLVMGetLastInstruction(llvm.LLVMGetInsertBlock(self.builder));
+        if (last_instr == null or llvm.LLVMIsATerminatorInst(last_instr) == null) {
             _ = llvm.LLVMBuildBr(self.builder, merge_block);
         }
         llvm.LLVMPositionBuilderAtEnd(self.builder, current_block);