aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorMatthew Dempsky <mdempsky@google.com>2023-08-21 14:08:46 -0700
committerGopher Robot <gobot@golang.org>2023-08-21 23:34:34 +0000
commitfecf51717f0911e5e6c8ede773656da79c0ade9f (patch)
tree2740cda3ec15c06f6c38554fe5592d913aa0b34c /src/cmd
parente7240ed8868f8c1df9e3421711eb8d0a537c3414 (diff)
downloadgo-fecf51717f0911e5e6c8ede773656da79c0ade9f.tar.xz
cmd/compile/internal/walk: reuse runtime.scase
Shaves ~1.5kB off cmd/go binary. Change-Id: I8ad85aa4a24bc197b009c8e1ea9201957222152a Reviewed-on: https://go-review.googlesource.com/c/go/+/521677 Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Matthew Dempsky <mdempsky@google.com> Auto-Submit: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@google.com>
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/compile/internal/walk/select.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cmd/compile/internal/walk/select.go b/src/cmd/compile/internal/walk/select.go
index 9ca132af7a..009753c8ad 100644
--- a/src/cmd/compile/internal/walk/select.go
+++ b/src/cmd/compile/internal/walk/select.go
@@ -9,6 +9,7 @@ import (
"cmd/compile/internal/ir"
"cmd/compile/internal/typecheck"
"cmd/compile/internal/types"
+ "cmd/internal/src"
)
func walkSelect(sel *ir.SelectStmt) {
@@ -287,11 +288,15 @@ var scase *types.Type
// Keep in sync with src/runtime/select.go.
func scasetype() *types.Type {
if scase == nil {
- scase = types.NewStruct([]*types.Field{
+ n := ir.NewDeclNameAt(src.NoXPos, ir.OTYPE, ir.Pkgs.Runtime.Lookup("scase"))
+ scase = types.NewNamed(n)
+ n.SetType(scase)
+ n.SetTypecheck(1)
+
+ scase.SetUnderlying(types.NewStruct([]*types.Field{
types.NewField(base.Pos, typecheck.Lookup("c"), types.Types[types.TUNSAFEPTR]),
types.NewField(base.Pos, typecheck.Lookup("elem"), types.Types[types.TUNSAFEPTR]),
- })
- scase.SetNoalg(true)
+ }))
}
return scase
}