diff options
| author | Robert Griesemer <gri@golang.org> | 2022-05-07 16:18:57 -0700 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2022-05-08 17:29:15 +0000 |
| commit | 3391517c0e4695a87cdb806cbf7b9760e7c9fa73 (patch) | |
| tree | be5aea498cb76b1bbf469aa1d4ae89a1e70e559b /src/cmd/compile/internal/noder | |
| parent | 1b86ef47de13622f48f76765403f065222d8f584 (diff) | |
| download | go-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.go | 1 |
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, |
