about summary refs log tree commit diff
path: root/src/codegen.zig
diff options
context:
space:
mode:
authorBaitinq <[email protected]>2025-05-10 16:05:51 +0200
committerBaitinq <[email protected]>2025-05-10 16:05:51 +0200
commitff00882673bae48ff2ddbc9f66e79efd624824ef (patch)
tree8f885c4914cee352d9a2cabcd80c870b90dddbf5 /src/codegen.zig
parentExamples: Add example sorting array (diff)
downloadinterpreter-ff00882673bae48ff2ddbc9f66e79efd624824ef.tar.gz
interpreter-ff00882673bae48ff2ddbc9f66e79efd624824ef.tar.bz2
interpreter-ff00882673bae48ff2ddbc9f66e79efd624824ef.zip
Feature: Support returning void from functions
Diffstat (limited to '')
-rw-r--r--src/codegen.zig7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index 38febe6..05d31e9 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -235,7 +235,12 @@ pub const CodeGen = struct {
 
         const expression = statement.RETURN_STATEMENT.expression;
 
-        const val = try self.generate_expression_value(expression, null);
+        if (expression == null) {
+            _ = llvm.LLVMBuildRetVoid(self.builder);
+            return;
+        }
+
+        const val = try self.generate_expression_value(expression.?, null);
         _ = llvm.LLVMBuildRet(self.builder, val.value);
     }