diff --git a/src/codegen.zig b/src/codegen.zig index b7212eb..45d369d 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -339,7 +339,6 @@ pub const Codegen = struct { _ = llvm.LLVMBuildUnreachable(builder); }, - // TODO .VarDecl => |vardecl| { // we alaready inferred the type of the variable in the // analyze pass and the current scope contains the variable's @@ -352,14 +351,15 @@ pub const Codegen = struct { var fn_symbol = self.getFnSymbol(self.current_function_name.?); - _ = llvm.LLVMBuildAlloca( + // TODO add llvm value ref to var metadata as well + var variable = llvm.LLVMBuildAlloca( builder, try self.typeToLLVM(var_metadata.typ), name_cstr.ptr, ); - // TODO generate the store for the initializer - //var llvm_expr = try self.emitExpr(vardecl.value); + var llvm_expr = try self.emitExpr(builder, vardecl.value); + _ = llvm.LLVMBuildStore(builder, llvm_expr, variable); }, else => {