diff --git a/src/Sema.zig b/src/Sema.zig index 17341850738e237a974494a1b171117c0afe5573..03a8a8905423d6ffef689321dbaa4c9ee3691673 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -20816,6 +20816,7 @@ pub fn resolveTypeLayout( .Struct => return sema.resolveStructLayout(block, src, ty), .Union => return sema.resolveUnionLayout(block, src, ty), .Array => { + if (ty.arrayLenIncludingSentinel() == 0) return; const elem_ty = ty.childType(); return sema.resolveTypeLayout(block, src, elem_ty); }, diff --git a/test/behavior/array.zig b/test/behavior/array.zig index bbaf3b3c34a05d1ef31967650fddb49b873784ce..7e55bb13c34a562814647189a168105c9cb13ef2 100644 --- a/test/behavior/array.zig +++ b/test/behavior/array.zig @@ -479,10 +479,7 @@ test "sentinel element count towards the ABI size calculation" { test "zero-sized array with recursive type definition" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO const U = struct {