authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-08-23 17:39:56-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-08-23 17:39:56-04:00
loge8bad1e12a972ce26aeedd37bf49a6751bab2b76
tree97e3a45b53038ec672cebe6ded341517fcd93256
parent101440c1990de653bbfb19713915d86d7a5bc182
signaturelock-open Commit is signed but in an unrecognized format.

fix regression on `@ptrCast`

this case regressed and now fixed: ```zig const a: ?*i32 = undefined; const b: ?*f32 = @ptrCast(?*f32, a); ```

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

src/ir.cpp+1-6
...@@ -23298,12 +23298,7 @@ static IrInstruction *ir_analyze_ptr_cast(IrAnalyze *ira, IrInstruction *source_...@@ -23298,12 +23298,7 @@ static IrInstruction *ir_analyze_ptr_cast(IrAnalyze *ira, IrInstruction *source_
23298 if (!val)23298 if (!val)
23299 return ira->codegen->invalid_instruction;23299 return ira->codegen->invalid_instruction;
2330023300
23301 if (value_is_comptime(val)) {23301 if (value_is_comptime(val) && val->special != ConstValSpecialUndef) {
23302 if ((err = ir_resolve_const_val(ira->codegen, ira->new_irb.exec,
23303 source_instr->source_node, val, UndefBad)))
23304 {
23305 return ira->codegen->invalid_instruction;
23306 }
23307 bool is_addr_zero = val->data.x_ptr.special == ConstPtrSpecialNull ||23302 bool is_addr_zero = val->data.x_ptr.special == ConstPtrSpecialNull ||
23308 (val->data.x_ptr.special == ConstPtrSpecialHardCodedAddr &&23303 (val->data.x_ptr.special == ConstPtrSpecialHardCodedAddr &&
23309 val->data.x_ptr.data.hard_coded_addr.addr == 0);23304 val->data.x_ptr.data.hard_coded_addr.addr == 0);