aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/error.zig
diff options
context:
space:
mode:
Diffstat (limited to 'test/behavior/error.zig')
-rw-r--r--test/behavior/error.zig17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/behavior/error.zig b/test/behavior/error.zig
index 06062ac66c..1c4450a07f 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();
+}