diff options
| author | Matthew Dempsky <mdempsky@google.com> | 2023-08-21 14:08:46 -0700 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2023-08-21 23:34:34 +0000 |
| commit | fecf51717f0911e5e6c8ede773656da79c0ade9f (patch) | |
| tree | 2740cda3ec15c06f6c38554fe5592d913aa0b34c /src/cmd | |
| parent | e7240ed8868f8c1df9e3421711eb8d0a537c3414 (diff) | |
| download | go-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.go | 11 |
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 } |
