diff options
| author | Baitinq <[email protected]> | 2025-02-12 20:24:22 +0100 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-02-12 20:24:22 +0100 |
| commit | a65ccc0c3401d4fe8f7202f98cee17667004912b (patch) | |
| tree | f6206651e8af6a08c7989e4efb12413690119ca6 | |
| parent | Misc: Update flake (diff) | |
| download | interpreter-a65ccc0c3401d4fe8f7202f98cee17667004912b.tar.gz interpreter-a65ccc0c3401d4fe8f7202f98cee17667004912b.tar.bz2 interpreter-a65ccc0c3401d4fe8f7202f98cee17667004912b.zip | |
Codegen: Dont alloca for function definitions
| -rw-r--r-- | src/codegen.zig | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index ddc34cc..b5f46ae 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -130,7 +130,7 @@ pub const CodeGen = struct { std.debug.assert(self.environment.contains_variable(assignment_statement.name) != assignment_statement.is_declaration); - if (assignment_statement.is_declaration and self.environment.scope_stack.items.len > 1) { + if (assignment_statement.is_declaration and self.environment.scope_stack.items.len > 1 and assignment_statement.expression.* != .FUNCTION_DEFINITION) { const y = core.LLVMGetLastFunction(self.llvm_module); core.LLVMPositionBuilderAtEnd(self.builder, core.LLVMGetEntryBasicBlock(y)); const x = try std.fmt.allocPrintZ(self.arena, "{s}", .{assignment_statement.name}); |