// compile // Copyright 2026 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Issue 77635: test building values of zero-sized types. package p type T1 [2][0]int type T2 [0][2]int type T3 struct { t T1 x *byte } type T4 struct { t T2 x *byte } func f1(t T1) any { return t } func f2(t T2) any { return t } func f3(t T3) any { return t } func f4(t T4) any { return t } func f5(t T1) any { return T3{t:t} } func f6(t T2) any { return T4{t:t} } func f7(t T1) { use(T3{t:t}) } func f8(t T2) { use(T4{t:t}) } func g1(t T3, i int) { t.t[i][i] = 1 } func g2(t T4, i int) { t.t[i][i] = 1 } func g3(t *T3, i int) { t.t[i][i] = 1 } func g4(t *T4, i int) { t.t[i][i] = 1 } //go:noinline func use(x any) { }