about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--examples/18.src2
-rw-r--r--src/codegen.zig3
2 files changed, 2 insertions, 3 deletions
diff --git a/examples/18.src b/examples/18.src
index 6d75e30..c050f8c 100644
--- a/examples/18.src
+++ b/examples/18.src
@@ -3,7 +3,7 @@ extern malloc = (i64) => *i64;
 extern free = (*i64) => void;
 
 let main = () => i64 {
-	let x = malloc(128);
+	let x = malloc(24);
 	(*(x+0)) = 10;
 	(*(x+1)) = 20;
 	(*(x+2)) = 40;
diff --git a/src/codegen.zig b/src/codegen.zig
index d6b3e98..77f5ea3 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -430,8 +430,7 @@ pub const CodeGen = struct {
                 var result: llvm.LLVMValueRef = undefined;
                 if (exp.addition) {
                     if (llvm.LLVMGetTypeKind(lhs_value.type.?) == llvm.LLVMPointerTypeKind) {
-                        const indices = [_]llvm.LLVMValueRef{rhs_value.value};
-                        result = llvm.LLVMBuildGEP2(self.builder, llvm.LLVMInt8Type(), lhs_value.value, @constCast(&indices), indices.len, "");
+                        result = llvm.LLVMBuildGEP2(self.builder, rhs_value.type, lhs_value.value, @constCast(&[_]llvm.LLVMValueRef{rhs_value.value}), 1, "");
                     } else {
                         result = llvm.LLVMBuildAdd(self.builder, lhs_value.value, rhs_value.value, "") orelse return CodeGenError.CompilationError;
                     }