blob: 48273eaaa2861957b960e3cc1dc79442886a7a20 [file] [log] [blame]
// 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"
}