authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-09-15 18:10:52-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-09-16 14:47:17-04:00
log8edd7219c0d5cc5799ae26ee8299b4d4114f7aed
tree498de2b7699f08122bbbc45efc9bde7fb61be9a4
parentd3d24874c91054a70c706fed47278c81c9ce890a

Sema: improve source location after as_node is used

+2 more passing compile error tests

6 files changed, 23 insertions(+), 22 deletions(-)

src/Sema.zig+1
...@@ -8321,6 +8321,7 @@ fn zirAsNode(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air....@@ -8321,6 +8321,7 @@ fn zirAsNode(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.
8321 const inst_data = sema.code.instructions.items(.data)[inst].pl_node;8321 const inst_data = sema.code.instructions.items(.data)[inst].pl_node;
8322 const src = inst_data.src();8322 const src = inst_data.src();
8323 const extra = sema.code.extraData(Zir.Inst.As, inst_data.payload_index).data;8323 const extra = sema.code.extraData(Zir.Inst.As, inst_data.payload_index).data;
8324 sema.src = src;
8324 return sema.analyzeAs(block, src, extra.dest_type, extra.operand, false);8325 return sema.analyzeAs(block, src, extra.dest_type, extra.operand, false);
8325}8326}
83268327
test/cases/compile_errors/and_on_undefined_value.zig created+10
...@@ -0,0 +1,10 @@
1comptime {
2 var a: bool = undefined;
3 _ = a and a;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/or_on_undefined_value.zig created+10
...@@ -0,0 +1,10 @@
1comptime {
2 var a: bool = undefined;
3 _ = a or a;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/and_on_undefined_value.zig deleted-10
...@@ -1,10 +0,0 @@
1comptime {
2 var a: bool = undefined;
3 _ = a and a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/obj/reify_type_for_union_with_opaque_field.zig+2-2
...@@ -8,8 +8,8 @@ const Untagged = @Type(.{...@@ -8,8 +8,8 @@ const Untagged = @Type(.{
8 .decls = &.{},8 .decls = &.{},
9 },9 },
10});10});
11export fn entry() void {11export fn entry() usize {
12 _ = Untagged{};12 return @sizeOf(Untagged);
13}13}
1414
15// error15// error
test/cases/compile_errors/stage1/or_on_undefined_value.zig deleted-10
...@@ -1,10 +0,0 @@
1comptime {
2 var a: bool = undefined;
3 _ = a or a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior