fix crash with sometimes type not being resolved

master
Andrew Kelley 2019-08-15 18:54:23 -04:00
parent 0b08ae581e
commit ff7e826b82
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9
2 changed files with 11 additions and 0 deletions

View File

@ -7004,6 +7004,8 @@ static void do_code_gen(CodeGen *g) {
ZigType *ptr_type = instruction->base.value.type;
assert(ptr_type->id == ZigTypeIdPointer);
ZigType *child_type = ptr_type->data.pointer.child_type;
if (type_resolve(g, child_type, ResolveStatusSizeKnown))
zig_unreachable();
if (!type_has_bits(child_type))
continue;
if (instruction->base.ref_count == 0)
@ -7015,6 +7017,8 @@ static void do_code_gen(CodeGen *g) {
continue;
}
}
if (type_resolve(g, child_type, ResolveStatusLLVMFull))
zig_unreachable();
instruction->base.llvm_value = build_alloca(g, child_type, instruction->name_hint,
get_ptr_align(g, ptr_type));
}

View File

@ -734,3 +734,10 @@ test "alignment of local variables in async functions" {
};
S.doTheTest();
}
test "no reason to resolve frame still works" {
_ = async simpleNothing();
}
fn simpleNothing() void {
var x: i32 = 1234;
}