aboutsummaryrefslogtreecommitdiff
path: root/src/stage1/analyze.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/stage1/analyze.cpp')
-rw-r--r--src/stage1/analyze.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/stage1/analyze.cpp b/src/stage1/analyze.cpp
index 0da3ec58dc..f942e06cb8 100644
--- a/src/stage1/analyze.cpp
+++ b/src/stage1/analyze.cpp
@@ -6821,9 +6821,12 @@ static Error resolve_pointer_zero_bits(CodeGen *g, ZigType *ty) {
TypeStructField *field = find_struct_type_field(isf->inferred_struct_type, isf->field_name);
assert(field != nullptr);
if (field->is_comptime) {
+ ty->data.pointer.resolve_loop_flag_zero_bits = false;
+
ty->abi_size = 0;
ty->size_in_bits = 0;
ty->abi_align = 0;
+
return ErrorNone;
}
elem_type = field->type_entry;
@@ -6835,6 +6838,8 @@ static Error resolve_pointer_zero_bits(CodeGen *g, ZigType *ty) {
if ((err = type_has_bits2(g, elem_type, &has_bits)))
return err;
+ ty->data.pointer.resolve_loop_flag_zero_bits = false;
+
if (has_bits) {
ty->abi_size = g->builtin_types.entry_usize->abi_size;
ty->size_in_bits = g->builtin_types.entry_usize->size_in_bits;