/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue59190.go
39 строк
688 B
Robert Griesemer
cmd/compile: don't panic if unsafe.Sizeof/Offsetof is used with oversize types
27 мар 2023, 19:52
27 мар 2023, 19:52
171850f
Код
Авторство
О чём код?
// 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" }