aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-01-27 17:45:29 -0500
committerAndrew Kelley <andrew@ziglang.org>2020-01-27 17:45:29 -0500
commitb96872ef2f619de476fb79c0bb142ebdace62382 (patch)
tree1a67c2738595991e4d155ace22f022d35d49b475 /src/ir.cpp
parentc0fee9dfc7be5ab2c232a4787223a8e56a56745b (diff)
downloadzig-b96872ef2f619de476fb79c0bb142ebdace62382.tar.gz
zig-b96872ef2f619de476fb79c0bb142ebdace62382.zip
`@bitCast` result location: fix passing invalid alignment
when the value has 0 bits
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index d4a0cb39c9..94d39b8cb6 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -18525,10 +18525,11 @@ static IrInstGen *ir_resolve_result_raw(IrAnalyze *ira, IrInst *suspend_source_i
return ira->codegen->invalid_inst_gen;
}
- uint64_t parent_ptr_align = get_ptr_align(ira->codegen, parent_ptr_type);
if ((err = type_resolve(ira->codegen, value_type, ResolveStatusAlignmentKnown))) {
return ira->codegen->invalid_inst_gen;
}
+ uint64_t parent_ptr_align = 0;
+ if (type_has_bits(value_type)) parent_ptr_align = get_ptr_align(ira->codegen, parent_ptr_type);
ZigType *ptr_type = get_pointer_to_type_extra(ira->codegen, value_type,
parent_ptr_type->data.pointer.is_const, parent_ptr_type->data.pointer.is_volatile, PtrLenSingle,
parent_ptr_align, 0, 0, parent_ptr_type->data.pointer.allow_zero);