| ... | @@ -796,11 +796,13 @@ pub const DeclGen = struct { | ... | @@ -796,11 +796,13 @@ pub const DeclGen = struct { |
| 796 | const gpa = self.gpa; | 796 | const gpa = self.gpa; |
| 797 | const elem_ty = tv.ty.elemType(); | 797 | const elem_ty = tv.ty.elemType(); |
| 798 | const elem_vals = payload.data; | 798 | 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)); |
| 800 | defer gpa.free(llvm_elems); | 801 | defer gpa.free(llvm_elems); |
| 801 | for (elem_vals) |elem_val, i| { | 802 | for (elem_vals) |elem_val, i| { |
| 802 | llvm_elems[i] = try self.genTypedValue(.{ .ty = elem_ty, .val = elem_val }); | 803 | llvm_elems[i] = try self.genTypedValue(.{ .ty = elem_ty, .val = elem_val }); |
| 803 | } | 804 | } |
| | 805 | if (sento) |sent| llvm_elems[elem_vals.len] = try self.genTypedValue(.{ .ty = elem_ty, .val = sent }); |
| 804 | const llvm_elem_ty = try self.llvmType(elem_ty); | 806 | const llvm_elem_ty = try self.llvmType(elem_ty); |
| 805 | return llvm_elem_ty.constArray( | 807 | return llvm_elem_ty.constArray( |
| 806 | llvm_elems.ptr, | 808 | llvm_elems.ptr, |