mirror of
https://github.com/ziglang/zig.git
synced 2025-12-11 08:43:09 +00:00
parent
20925b2f5c
commit
61f5ea4c9a
12
src/Sema.zig
12
src/Sema.zig
@ -16612,7 +16612,17 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
|
|||||||
const bitoffset_src: LazySrcLoc = .{ .node_offset_ptr_bitoffset = extra.data.src_node };
|
const bitoffset_src: LazySrcLoc = .{ .node_offset_ptr_bitoffset = extra.data.src_node };
|
||||||
const hostsize_src: LazySrcLoc = .{ .node_offset_ptr_hostsize = extra.data.src_node };
|
const hostsize_src: LazySrcLoc = .{ .node_offset_ptr_hostsize = extra.data.src_node };
|
||||||
|
|
||||||
const unresolved_elem_ty = try sema.resolveType(block, elem_ty_src, extra.data.elem_type);
|
const unresolved_elem_ty = blk: {
|
||||||
|
const air_inst = try sema.resolveInst(extra.data.elem_type);
|
||||||
|
const ty = sema.analyzeAsType(block, elem_ty_src, air_inst) catch |err| {
|
||||||
|
if (err == error.AnalysisFail and sema.err != null and sema.typeOf(air_inst).isSinglePointer()) {
|
||||||
|
try sema.errNote(block, elem_ty_src, sema.err.?, "use '.*' to dereference pointer", .{});
|
||||||
|
}
|
||||||
|
return err;
|
||||||
|
};
|
||||||
|
if (ty.tag() == .generic_poison) return error.GenericPoison;
|
||||||
|
break :blk ty;
|
||||||
|
};
|
||||||
const target = sema.mod.getTarget();
|
const target = sema.mod.getTarget();
|
||||||
|
|
||||||
var extra_i = extra.end;
|
var extra_i = extra.end;
|
||||||
|
|||||||
@ -0,0 +1,11 @@
|
|||||||
|
pub export fn entry() void {
|
||||||
|
var a: *u32 = undefined;
|
||||||
|
_ = *a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// error
|
||||||
|
// backend=stage2
|
||||||
|
// target=native
|
||||||
|
//
|
||||||
|
// :3:10: error: expected type 'type', found '*u32'
|
||||||
|
// :3:10: note: use '.*' to dereference pointer
|
||||||
Loading…
x
Reference in New Issue
Block a user