[go] cmd/link: use a switch for name prefix switching

438 views
Skip to first unread message

David Crawshaw (Gerrit)

unread,
Apr 13, 2016, 10:07:36 AM4/13/16
to Ian Lance Taylor, golang-co...@googlegroups.com
David Crawshaw uploaded a change:
https://go-review.googlesource.com/21982

cmd/link: use a switch for name prefix switching

Minor cleanup.

Change-Id: I7574f58a7e55c2bb798ebe9c7c98d36b8c258fb8
---
M src/cmd/link/internal/ld/symtab.go
1 file changed, 21 insertions(+), 40 deletions(-)



diff --git a/src/cmd/link/internal/ld/symtab.go
b/src/cmd/link/internal/ld/symtab.go
index 678ed38..60bec0d 100644
--- a/src/cmd/link/internal/ld/symtab.go
+++ b/src/cmd/link/internal/ld/symtab.go
@@ -384,33 +384,19 @@
symtyperel = s
}

- s = Linklookup(Ctxt, "go.string.*", 0)
- s.Type = obj.SGOSTRING
- s.Attr |= AttrLocal
- s.Size = 0
- s.Attr |= AttrReachable
- symgostring := s
-
- s = Linklookup(Ctxt, "go.string.hdr.*", 0)
- s.Type = obj.SGOSTRINGHDR
- s.Attr |= AttrLocal
- s.Size = 0
- s.Attr |= AttrReachable
- symgostringhdr := s
-
- s = Linklookup(Ctxt, "go.func.*", 0)
- s.Type = obj.SGOFUNC
- s.Attr |= AttrLocal
- s.Size = 0
- s.Attr |= AttrReachable
- symgofunc := s
-
- s = Linklookup(Ctxt, "runtime.gcbits.*", 0)
- s.Type = obj.SGCBITS
- s.Attr |= AttrLocal
- s.Size = 0
- s.Attr |= AttrReachable
- symgcbits := s
+ groupSym := func(name string, t int16) *LSym {
+ s := Linklookup(Ctxt, name, 0)
+ s.Type = t
+ s.Size = 0
+ s.Attr |= AttrLocal | AttrReachable
+ return s
+ }
+ var (
+ symgostring = groupSym("go.string.*", obj.SGOSTRING)
+ symgostringhdr = groupSym("go.string.hdr.*", obj.SGOSTRINGHDR)
+ symgofunc = groupSym("go.func.*", obj.SGOFUNC)
+ symgcbits = groupSym("runtime.gcbits.*", obj.SGCBITS)
+ )

symtypelink := Linklookup(Ctxt, "runtime.typelink", 0)
symtypelink.Type = obj.STYPELINK
@@ -436,7 +422,8 @@
continue
}

- if strings.HasPrefix(s.Name, "type.") {
+ switch {
+ case strings.HasPrefix(s.Name, "type."):
if !DynlinkingGo() {
s.Attr |= AttrHidden
}
@@ -447,23 +434,20 @@
s.Type = obj.STYPE
s.Outer = symtype
}
- }

- if strings.HasPrefix(s.Name, "go.typelink.") {
+ case strings.HasPrefix(s.Name, "go.typelink."):
ntypelinks++
s.Type = obj.STYPELINK
s.Attr |= AttrHidden
s.Outer = symtypelink
- }

- if strings.HasPrefix(s.Name, "go.itablink.") {
+ case strings.HasPrefix(s.Name, "go.itablink."):
nitablinks++
s.Type = obj.SITABLINK
s.Attr |= AttrHidden
s.Outer = symitablink
- }

- if strings.HasPrefix(s.Name, "go.string.") {
+ case strings.HasPrefix(s.Name, "go.string."):
s.Type = obj.SGOSTRING
s.Attr |= AttrHidden
s.Outer = symgostring
@@ -471,21 +455,18 @@
s.Type = obj.SGOSTRINGHDR
s.Outer = symgostringhdr
}
- }

- if strings.HasPrefix(s.Name, "runtime.gcbits.") {
+ case strings.HasPrefix(s.Name, "runtime.gcbits."):
s.Type = obj.SGCBITS
s.Attr |= AttrHidden
s.Outer = symgcbits
- }

- if strings.HasPrefix(s.Name, "go.func.") {
+ case strings.HasPrefix(s.Name, "go.func."):
s.Type = obj.SGOFUNC
s.Attr |= AttrHidden
s.Outer = symgofunc
- }

- if strings.HasPrefix(s.Name, "gcargs.") ||
strings.HasPrefix(s.Name, "gclocals.") ||
strings.HasPrefix(s.Name, "gclocals·") {
+ case strings.HasPrefix(s.Name, "gcargs."),
strings.HasPrefix(s.Name, "gclocals."),
strings.HasPrefix(s.Name, "gclocals·"):
s.Type = obj.SGOFUNC
s.Attr |= AttrHidden
s.Outer = symgofunc

--
https://go-review.googlesource.com/21982

David Crawshaw (Gerrit)

unread,
Apr 13, 2016, 10:07:57 AM4/13/16
to golang-co...@googlegroups.com
David Crawshaw has posted comments on this change.

cmd/link: use a switch for name prefix switching

Patch Set 1: Run-TryBot+1

--
https://go-review.googlesource.com/21982
Gerrit-Reviewer: David Crawshaw <craw...@golang.org>
Gerrit-HasComments: No

Gobot Gobot (Gerrit)

unread,
Apr 13, 2016, 10:08:40 AM4/13/16
to David Crawshaw, golang-co...@googlegroups.com
Gobot Gobot has posted comments on this change.

cmd/link: use a switch for name prefix switching

Patch Set 1:

TryBots beginning. Status page: http://farmer.golang.org/try?commit=fb7c4952

--
https://go-review.googlesource.com/21982
Gerrit-Reviewer: David Crawshaw <craw...@golang.org>
Gerrit-Reviewer: Gobot Gobot <go...@golang.org>
Gerrit-HasComments: No

Gobot Gobot (Gerrit)

unread,
Apr 13, 2016, 10:31:21 AM4/13/16
to David Crawshaw, golang-co...@googlegroups.com
Gobot Gobot has posted comments on this change.

cmd/link: use a switch for name prefix switching

Patch Set 1: TryBot-Result+1

TryBots are happy.

Brad Fitzpatrick (Gerrit)

unread,
Apr 13, 2016, 10:35:42 AM4/13/16
to David Crawshaw, Brad Fitzpatrick, Gobot Gobot, golang-co...@googlegroups.com
Brad Fitzpatrick has posted comments on this change.

cmd/link: use a switch for name prefix switching

Patch Set 1: Code-Review+2

--
https://go-review.googlesource.com/21982
Gerrit-Reviewer: Brad Fitzpatrick <brad...@golang.org>

David Crawshaw (Gerrit)

unread,
Apr 13, 2016, 10:42:33 AM4/13/16
to golang-...@googlegroups.com, Brad Fitzpatrick, Gobot Gobot, golang-co...@googlegroups.com
David Crawshaw has submitted this change and it was merged.

cmd/link: use a switch for name prefix switching

Minor cleanup.

Change-Id: I7574f58a7e55c2bb798ebe9c7c98d36b8c258fb8
Reviewed-on: https://go-review.googlesource.com/21982
Run-TryBot: David Crawshaw <craw...@golang.org>
TryBot-Result: Gobot Gobot <go...@golang.org>
Reviewed-by: Brad Fitzpatrick <brad...@golang.org>
---
M src/cmd/link/internal/ld/symtab.go
1 file changed, 21 insertions(+), 40 deletions(-)

Approvals:
David Crawshaw: Run TryBots
Gobot Gobot: TryBots succeeded
Brad Fitzpatrick: Looks good to me, approved
Reply all
Reply to author
Forward
0 new messages