aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/noder
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2022-05-07 16:18:57 -0700
committerGopher Robot <gobot@golang.org>2022-05-08 17:29:15 +0000
commit3391517c0e4695a87cdb806cbf7b9760e7c9fa73 (patch)
treebe5aea498cb76b1bbf469aa1d4ae89a1e70e559b /src/cmd/compile/internal/noder
parent1b86ef47de13622f48f76765403f065222d8f584 (diff)
downloadgo-3391517c0e4695a87cdb806cbf7b9760e7c9fa73.tar.xz
cmd/compile: don't crash in size computation for invalid type
An invalid program may produce invalid types. If the program calls unsafe.Sizeof on such a type, which is a compile-time computation, the size-computation must be able to handle it. Add the invalid type to the list of permissible basic types and give it a size of 1 (word). Fixes #52748. Change-Id: I6c409628f9b77044758caf71cdcb199f9e77adea Reviewed-on: https://go-review.googlesource.com/c/go/+/404894 Run-TryBot: Robert Griesemer <gri@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Robert Griesemer <gri@google.com> Auto-Submit: Robert Griesemer <gri@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/cmd/compile/internal/noder')
-rw-r--r--src/cmd/compile/internal/noder/sizes.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/noder/sizes.go b/src/cmd/compile/internal/noder/sizes.go
index 23f2062675..9ba0e509d7 100644
--- a/src/cmd/compile/internal/noder/sizes.go
+++ b/src/cmd/compile/internal/noder/sizes.go
@@ -134,6 +134,7 @@ func (s *gcSizes) Sizeof(T types2.Type) int64 {
}
var basicSizes = [...]byte{
+ types2.Invalid: 1,
types2.Bool: 1,
types2.Int8: 1,
types2.Int16: 2,