authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-06-07 17:58:18-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-06-09 15:37:16-07:00
log83f300218f1a35a32d80e92179011db44ac83d05
treecd44229f67b8d4de83328039c1e5af29cbacf8de
parentbac132bc8fb320620ca5ad554ce515ccb7e4dad1

upgrade behavior test to stage2 fn ptr semantics


1 files changed, 17 insertions(+), 3 deletions(-)

test/behavior/bugs/920.zig+17-3
...@@ -1,14 +1,24 @@...@@ -1,14 +1,24 @@
1const builtin = @import("builtin");
1const std = @import("std");2const std = @import("std");
2const Random = std.rand.Random;3const Random = std.rand.Random;
34
5const zeroCaseFn = switch (builtin.zig_backend) {
6 .stage1 => fn (*Random, f64) f64,
7 else => *const fn (*Random, f64) f64,
8};
9const pdfFn = switch (builtin.zig_backend) {
10 .stage1 => fn (f64) f64,
11 else => *const fn (f64) f64,
12};
13
4const ZigTable = struct {14const ZigTable = struct {
5 r: f64,15 r: f64,
6 x: [257]f64,16 x: [257]f64,
7 f: [257]f64,17 f: [257]f64,
818
9 pdf: fn (f64) f64,19 pdf: pdfFn,
10 is_symmetric: bool,20 is_symmetric: bool,
11 zero_case: fn (*Random, f64) f64,21 zero_case: zeroCaseFn,
12};22};
1323
14fn ZigTableGen(comptime is_symmetric: bool, comptime r: f64, comptime v: f64, comptime f: fn (f64) f64, comptime f_inv: fn (f64) f64, comptime zero_case: fn (*Random, f64) f64) ZigTable {24fn ZigTableGen(comptime is_symmetric: bool, comptime r: f64, comptime v: f64, comptime f: fn (f64) f64, comptime f_inv: fn (f64) f64, comptime zero_case: fn (*Random, f64) f64) ZigTable {
...@@ -56,7 +66,11 @@ const NormalDist = blk: {...@@ -56,7 +66,11 @@ const NormalDist = blk: {
56};66};
5767
58test "bug 920 fixed" {68test "bug 920 fixed" {
59 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; // TODO69 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
70 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
71 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
72 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
73 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
6074
61 const NormalDist1 = blk: {75 const NormalDist1 = blk: {
62 break :blk ZigTableGen(true, norm_r, norm_v, norm_f, norm_f_inv, norm_zero_case);76 break :blk ZigTableGen(true, norm_r, norm_v, norm_f, norm_f_inv, norm_zero_case);