From 98583be6e110406a37d0904c50c04d68efbffcd0 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 10 Sep 2020 22:22:42 -0700 Subject: stage1: fix crash with slice type --- src/analyze.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/analyze.cpp') diff --git a/src/analyze.cpp b/src/analyze.cpp index b1d362f6e9..0e036087f3 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -825,6 +825,7 @@ ZigType *get_array_type(CodeGen *g, ZigType *child_type, uint64_t array_size, Zi } ZigType *get_slice_type(CodeGen *g, ZigType *ptr_type) { + Error err; assert(ptr_type->id == ZigTypeIdPointer); assert(ptr_type->data.pointer.ptr_len == PtrLenUnknown); @@ -833,6 +834,11 @@ ZigType *get_slice_type(CodeGen *g, ZigType *ptr_type) { return *parent_pointer; } + // We use the pointer type's abi size below, so we have to resolve it now. + if ((err = type_resolve(g, ptr_type, ResolveStatusSizeKnown))) { + codegen_report_errors_and_exit(g); + } + ZigType *entry = new_type_table_entry(ZigTypeIdStruct); buf_resize(&entry->name, 0); -- cgit v1.2.3