authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-09-10 22:22:42-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-09-10 22:22:42-07:00
log98583be6e110406a37d0904c50c04d68efbffcd0
tree4082cb44be31a9c92a0519ff4a2bdf292807537b
parente05ecbf165931d14440e6e5d089b64788b82d14f

stage1: fix crash with slice type


1 files changed, 6 insertions(+), 0 deletions(-)

src/analyze.cpp+6
...@@ -825,6 +825,7 @@ ZigType *get_array_type(CodeGen *g, ZigType *child_type, uint64_t array_size, Zi...@@ -825,6 +825,7 @@ ZigType *get_array_type(CodeGen *g, ZigType *child_type, uint64_t array_size, Zi
825}825}
826826
827ZigType *get_slice_type(CodeGen *g, ZigType *ptr_type) {827ZigType *get_slice_type(CodeGen *g, ZigType *ptr_type) {
828 Error err;
828 assert(ptr_type->id == ZigTypeIdPointer);829 assert(ptr_type->id == ZigTypeIdPointer);
829 assert(ptr_type->data.pointer.ptr_len == PtrLenUnknown);830 assert(ptr_type->data.pointer.ptr_len == PtrLenUnknown);
830831
...@@ -833,6 +834,11 @@ ZigType *get_slice_type(CodeGen *g, ZigType *ptr_type) {...@@ -833,6 +834,11 @@ ZigType *get_slice_type(CodeGen *g, ZigType *ptr_type) {
833 return *parent_pointer;834 return *parent_pointer;
834 }835 }
835836
837 // We use the pointer type's abi size below, so we have to resolve it now.
838 if ((err = type_resolve(g, ptr_type, ResolveStatusSizeKnown))) {
839 codegen_report_errors_and_exit(g);
840 }
841
836 ZigType *entry = new_type_table_entry(ZigTypeIdStruct);842 ZigType *entry = new_type_table_entry(ZigTypeIdStruct);
837843
838 buf_resize(&entry->name, 0);844 buf_resize(&entry->name, 0);