authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-10-27 12:26:18-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-10-27 12:43:34-07:00
log3fb301b16a51504bea1aa89efe856a2c2df6f293
tree5a870e2d4de60466cbd1278627605257a1296c41
parentdfe9cae4eb9ebd1409759f82a6f7ab9336a6da6b

categorize fn ptr behavior test

move a function pointer test from bugs/xxx.zig to fn.zig

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

test/behavior.zig-1
......@@ -253,7 +253,6 @@ test {
253253 builtin.zig_backend != .stage2_c and
254254 builtin.zig_backend != .stage2_spirv64)
255255 {
256 _ = @import("behavior/bugs/11227.zig");
257256 _ = @import("behavior/bugs/14198.zig");
258257 _ = @import("behavior/export.zig");
259258 }
test/behavior/bugs/11227.zig deleted-11
......@@ -1,11 +0,0 @@
1const std = @import("std");
2const builtin = @import("builtin");
3
4fn foo() u32 {
5 return 11227;
6}
7const bar = foo;
8test "pointer to alias behaves same as pointer to function" {
9 var a = &bar;
10 try std.testing.expect(foo() == a());
11}
test/behavior/fn.zig+17
......@@ -574,3 +574,20 @@ test "pass and return comptime-only types" {
574574 try expectEqual(null, S.returnNull(null));
575575 try expectEqual(@as(u0, 0), S.returnUndefined(undefined));
576576}
577
578test "pointer to alias behaves same as pointer to function" {
579 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
580 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
581 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
582 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
583 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
584
585 const S = struct {
586 fn foo() u32 {
587 return 11227;
588 }
589 const bar = foo;
590 };
591 var a = &S.bar;
592 try std.testing.expect(S.foo() == a());
593}