authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-06-30 16:58:46+03:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-07-01 10:22:25+03:00
log3c73f711771e41e9176e973c64484f0ce5e0eeed
treedbccc9029dee8e1412d30a3de4279166b2d1efe0
parent3014a0d5f1dcbcfdcec3852ffd54f3c589fe3e83

Sema: prefer func.onwer_decl for compilelog src


13 files changed, 84 insertions(+), 84 deletions(-)

src/Sema.zig+2-1
...@@ -4272,7 +4272,8 @@ fn zirCompileLog(...@@ -4272,7 +4272,8 @@ fn zirCompileLog(
4272 }4272 }
4273 try writer.print("\n", .{});4273 try writer.print("\n", .{});
42744274
4275 const gop = try sema.mod.compile_log_decls.getOrPut(sema.gpa, sema.owner_decl_index);4275 const decl_index = if (sema.func) |some| some.owner_decl else sema.owner_decl_index;
4276 const gop = try sema.mod.compile_log_decls.getOrPut(sema.gpa, decl_index);
4276 if (!gop.found_existing) {4277 if (!gop.found_existing) {
4277 gop.value_ptr.* = src_node;4278 gop.value_ptr.* = src_node;
4278 }4279 }
test/cases/compile_errors/compile-time_division_by_zero.zig created+12
...@@ -0,0 +1,12 @@
1comptime {
2 const a: i32 = 1;
3 const b: i32 = 0;
4 const c = a / b;
5 _ = c;
6}
7
8// error
9// backend=stage2
10// target=native
11//
12// :4:19: error: division by zero here causes undefined behavior
test/cases/compile_errors/compile-time_remainder_division_by_zero.zig created+12
...@@ -0,0 +1,12 @@
1comptime {
2 const a: i32 = 1;
3 const b: i32 = 0;
4 const c = a % b;
5 _ = c;
6}
7
8// error
9// backend=stage2
10// target=native
11//
12// :4:19: error: division by zero here causes undefined behavior
test/cases/compile_errors/compileLog_of_tagged_enum_doesnt_crash_the_compiler.zig created+17
...@@ -0,0 +1,17 @@
1const Bar = union(enum(u32)) {
2 X: i32 = 1
3};
4
5fn testCompileLog(x: Bar) void {
6 @compileLog(x);
7}
8
9pub export fn entry() void {
10 comptime testCompileLog(Bar{.X = 123});
11}
12
13// error
14// backend=stage2
15// target=native
16//
17// :6:5: error: found compile log statement
test/cases/compile_errors/compile_log.zig created+14
...@@ -0,0 +1,14 @@
1export fn foo() void {
2 comptime bar(12, "hi",);
3}
4fn bar(a: i32, b: []const u8) void {
5 @compileLog("begin",);
6 @compileLog("a", a, "b", b);
7 @compileLog("end",);
8}
9
10// error
11// backend=llvm
12// target=native
13//
14// :5:5: error: found compile log statement
test/cases/compile_errors/compile_log_statement_inside_function_which_must_be_comptime_evaluated.zig created+14
...@@ -0,0 +1,14 @@
1fn Foo(comptime T: type) type {
2 @compileLog(@typeName(T));
3 return T;
4}
5export fn entry() void {
6 _ = Foo(i32);
7 _ = @typeName(Foo(i32));
8}
9
10// error
11// backend=stage2
12// target=native
13//
14// :2:5: error: found compile log statement
test/cases/compile_errors/compile_time_division_by_zero.zig created+13
...@@ -0,0 +1,13 @@
1const y = foo(0);
2fn foo(x: u32) u32 {
3 return 1 / x;
4}
5
6export fn entry() usize { return @sizeOf(@TypeOf(y)); }
7
8// error
9// backend=llvm
10// target=native
11//
12// :3:16: error: division by zero here causes undefined behavior
13// :1:14: note: called from here
test/cases/compile_errors/stage1/obj/compile-time_division_by_zero.zig deleted-12
...@@ -1,12 +0,0 @@
1comptime {
2 const a: i32 = 1;
3 const b: i32 = 0;
4 const c = a / b;
5 _ = c;
6}
7
8// error
9// backend=stage1
10// target=native
11//
12// tmp.zig:4:17: error: division by zero
test/cases/compile_errors/stage1/obj/compile-time_remainder_division_by_zero.zig deleted-12
...@@ -1,12 +0,0 @@
1comptime {
2 const a: i32 = 1;
3 const b: i32 = 0;
4 const c = a % b;
5 _ = c;
6}
7
8// error
9// backend=stage1
10// target=native
11//
12// tmp.zig:4:17: error: division by zero
test/cases/compile_errors/stage1/obj/compileLog_of_tagged_enum_doesnt_crash_the_compiler.zig deleted-17
...@@ -1,17 +0,0 @@
1const Bar = union(enum(u32)) {
2 X: i32 = 1
3};
4
5fn testCompileLog(x: Bar) void {
6 @compileLog(x);
7}
8
9pub fn main () void {
10 comptime testCompileLog(Bar{.X = 123});
11}
12
13// error
14// backend=stage1
15// target=native
16//
17// tmp.zig:6:5: error: found compile log statement
test/cases/compile_errors/stage1/obj/compile_log.zig deleted-16
...@@ -1,16 +0,0 @@
1export fn foo() void {
2 comptime bar(12, "hi",);
3}
4fn bar(a: i32, b: []const u8) void {
5 @compileLog("begin",);
6 @compileLog("a", a, "b", b);
7 @compileLog("end",);
8}
9
10// error
11// backend=stage1
12// target=native
13//
14// tmp.zig:5:5: error: found compile log statement
15// tmp.zig:6:5: error: found compile log statement
16// tmp.zig:7:5: error: found compile log statement
test/cases/compile_errors/stage1/obj/compile_log_statement_inside_function_which_must_be_comptime_evaluated.zig deleted-14
...@@ -1,14 +0,0 @@
1fn Foo(comptime T: type) type {
2 @compileLog(@typeName(T));
3 return T;
4}
5export fn entry() void {
6 _ = Foo(i32);
7 _ = @typeName(Foo(i32));
8}
9
10// error
11// backend=stage1
12// target=native
13//
14// tmp.zig:2:5: error: found compile log statement
test/cases/compile_errors/stage1/obj/compile_time_division_by_zero.zig deleted-12
...@@ -1,12 +0,0 @@
1const y = foo(0);
2fn foo(x: u32) u32 {
3 return 1 / x;
4}
5
6export fn entry() usize { return @sizeOf(@TypeOf(y)); }
7
8// error
9// backend=stage1
10// target=native
11//
12// tmp.zig:3:14: error: division by zero