authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-11-17 12:09:53+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-11-20 20:25:11+02:00
logbc7687382784c94c24d9ff4ebe10b03916d81e7c
treed2e8e29fecc41a7201a5a1d9f819dcf3e8c6d08e
parent7b131a7cd496da221434939c1f624629d02fd3d0

Sema: fix type check in `zirIntToPtr`

Simple fix: don't assume a ptr type before it has been checked. Closes #13567

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

src/Sema.zig+1-1
......@@ -18778,8 +18778,8 @@ fn zirIntToPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1877818778
1877918779 const type_src: LazySrcLoc = .{ .node_offset_builtin_call_arg0 = inst_data.src_node };
1878018780 const ptr_ty = try sema.resolveType(block, src, extra.lhs);
18781 const elem_ty = ptr_ty.elemType2();
1878218781 try sema.checkPtrType(block, type_src, ptr_ty);
18782 const elem_ty = ptr_ty.elemType2();
1878318783 const target = sema.mod.getTarget();
1878418784 const ptr_align = try ptr_ty.ptrAlignmentAdvanced(target, sema);
1878518785
test/cases/compile_errors/inttoptr_non_ptr_type.zig created+9
......@@ -0,0 +1,9 @@
1pub export fn entry() void {
2 _ = @intToPtr(i32, 10);
3}
4
5// error
6// backend=stage2
7// target=native
8//
9// :2:19: error: expected pointer type, found 'i32'