authorgravatar for jacoblevgw@gmail.comJacob G-W <jacoblevgw@gmail.com> 2021-08-22 14:44:33-04:00
committergravatar for jacoblevgw@gmail.comJacob G-W <jacoblevgw@gmail.com> 2021-08-31 07:46:23-04:00
log908f72210741cc10b6bf494ace06f8e74a08f215
treedbd97004b5fa6e830474b5d19b949d435a3fccc8
parent353eec73cad82ed0783fe76837cbb94095f79f9d

stage2 llvm backend: if an array has a senteniel, add it


1 files changed, 3 insertions(+), 1 deletions(-)

src/codegen/llvm.zig+3-1
......@@ -796,11 +796,13 @@ pub const DeclGen = struct {
796796 const gpa = self.gpa;
797797 const elem_ty = tv.ty.elemType();
798798 const elem_vals = payload.data;
799 const llvm_elems = try gpa.alloc(*const llvm.Value, elem_vals.len);
799 const sento = tv.ty.sentinel();
800 const llvm_elems = try gpa.alloc(*const llvm.Value, elem_vals.len + @boolToInt(sento != null));
800801 defer gpa.free(llvm_elems);
801802 for (elem_vals) |elem_val, i| {
802803 llvm_elems[i] = try self.genTypedValue(.{ .ty = elem_ty, .val = elem_val });
803804 }
805 if (sento) |sent| llvm_elems[elem_vals.len] = try self.genTypedValue(.{ .ty = elem_ty, .val = sent });
804806 const llvm_elem_ty = try self.llvmType(elem_ty);
805807 return llvm_elem_ty.constArray(
806808 llvm_elems.ptr,