aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-18 12:18:18 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-18 12:18:18 +0100
commit63188f20bc0b685b63217f829ef6059fb0b71e58 (patch)
tree54d90b664d5fb86012e3b5a96e8285143ee72574 /src/main/java
parent9e08a99b327c7d704f533e3535b77a1bbdc04919 (diff)
Set exit code of produced binaries
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java
index b3100c65..143cdd79 100644
--- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmCompiler.java
@@ -4,7 +4,6 @@ import org.shedlang.compiler.ast.typed.FreeVariables;
import org.shedlang.compiler.backends.llvm.ir.ast.*;
import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmCall;
import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmReturn;
-import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmReturnVoid;
import org.shedlang.compiler.backends.llvm.ir.ast.operands.LlvmOperand;
import org.shedlang.compiler.backends.llvm.ir.ast.operands.LlvmOperandInt;
import org.shedlang.compiler.backends.llvm.ir.ast.operands.LlvmOperandPtrToInt;
@@ -57,7 +56,9 @@ public class LlvmCompiler {
mainContext = LlvmCompilerClosures.call(field, mainContext, List.of());
- mainContext = mainContext.addTerminatorInstruction(new LlvmReturnVoid());
+ mainContext = mainContext.addTerminatorInstruction(
+ new LlvmReturn(LlvmTypes.INT_32, new LlvmOperandInt(0))
+ );
var mainBasicBlocksResult = context.exitFunction(mainContext);
var mainBasicBlocks = mainBasicBlocksResult.value();
@@ -65,7 +66,7 @@ public class LlvmCompiler {
context = context.addTopLevelEntity(new LlvmFunctionDefinition(
"main",
- LlvmTypes.VOID,
+ LlvmTypes.INT_32,
List.of(),
mainBasicBlocks
));