// errorcheck // Copyright 2023 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. package p import "unsafe" type E [1 << 30]complex128 var a [1 << 30]E var _ = unsafe.Sizeof(a) // ERROR "too large" var s struct { _ [1 << 30]E x int } var _ = unsafe.Offsetof(s.x) // ERROR "too large" // Test case from issue (modified so it also triggers on 32-bit platforms). type A [1]int type S struct { x A y [1 << 30]A z [1 << 30]struct{} } type T [1 << 30][1 << 30]S func _() { var a A var s S var t T _ = unsafe.Sizeof(a) _ = unsafe.Sizeof(s) _ = unsafe.Sizeof(t) // ERROR "too large" }