authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-27 17:45:29-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-27 17:45:29-05:00
logb96872ef2f619de476fb79c0bb142ebdace62382
tree1a67c2738595991e4d155ace22f022d35d49b475
parentc0fee9dfc7be5ab2c232a4787223a8e56a56745b
signature Commit is signed but in an unrecognized format.

`@bitCast` result location: fix passing invalid alignment

when the value has 0 bits

1 files changed, 2 insertions(+), 1 deletions(-)

src/ir.cpp+2-1
...@@ -18525,10 +18525,11 @@ static IrInstGen *ir_resolve_result_raw(IrAnalyze *ira, IrInst *suspend_source_i...@@ -18525,10 +18525,11 @@ static IrInstGen *ir_resolve_result_raw(IrAnalyze *ira, IrInst *suspend_source_i
18525 return ira->codegen->invalid_inst_gen;18525 return ira->codegen->invalid_inst_gen;
18526 }18526 }
1852718527
18528 uint64_t parent_ptr_align = get_ptr_align(ira->codegen, parent_ptr_type);
18529 if ((err = type_resolve(ira->codegen, value_type, ResolveStatusAlignmentKnown))) {18528 if ((err = type_resolve(ira->codegen, value_type, ResolveStatusAlignmentKnown))) {
18530 return ira->codegen->invalid_inst_gen;18529 return ira->codegen->invalid_inst_gen;
18531 }18530 }
18531 uint64_t parent_ptr_align = 0;
18532 if (type_has_bits(value_type)) parent_ptr_align = get_ptr_align(ira->codegen, parent_ptr_type);
18532 ZigType *ptr_type = get_pointer_to_type_extra(ira->codegen, value_type,18533 ZigType *ptr_type = get_pointer_to_type_extra(ira->codegen, value_type,
18533 parent_ptr_type->data.pointer.is_const, parent_ptr_type->data.pointer.is_volatile, PtrLenSingle,18534 parent_ptr_type->data.pointer.is_const, parent_ptr_type->data.pointer.is_volatile, PtrLenSingle,
18534 parent_ptr_align, 0, 0, parent_ptr_type->data.pointer.allow_zero);18535 parent_ptr_align, 0, 0, parent_ptr_type->data.pointer.allow_zero);