From baa2b62e88c5438c95ab439b12d3bafa55fd21a0 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 24 Jun 2023 13:37:39 -0400 Subject: cbe: fix crash caused by calling `mod.intValue` on `type_inferred_error_set` --- test/behavior/error.zig | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'test/behavior/error.zig') diff --git a/test/behavior/error.zig b/test/behavior/error.zig index 14b0eca030..be0de6932d 100644 --- a/test/behavior/error.zig +++ b/test/behavior/error.zig @@ -921,3 +921,20 @@ test "optional error set return type" { try expect(null == S.foo(true)); try expect(E.A == S.foo(false).?); } + +test "returning an error union containing a type with no runtime bits" { + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; + + const ZeroByteType = struct { + foo: void, + + pub fn init() !@This() { + return .{ .foo = {} }; + } + }; + + var zero_byte: ZeroByteType = undefined; + (&zero_byte).* = try ZeroByteType.init(); +} -- cgit v1.2.3