Commit 0e2cde7c authored by Hiroshi Ioka's avatar Hiroshi Ioka Committed by Ian Lance Taylor

cmd/link: refactor container()

* rename to emitPcln because I'd like to skip not only container types,
  but also something like "go.buildid" in the future.
* return bool instead of int.

Change-Id: I029adb81292f7dd2fe98e69f3877c5c27f32ec30
Reviewed-on: https://go-review.googlesource.com/59415Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
parent 0564e304
......@@ -171,19 +171,19 @@ func onlycsymbol(s *Symbol) bool {
return false
}
func container(s *Symbol) int {
func emitPcln(s *Symbol) bool {
if s == nil {
return 0
return true
}
if Buildmode == BuildmodePlugin && Headtype == objabi.Hdarwin && onlycsymbol(s) {
return 1
return false
}
// We want to generate func table entries only for the "lowest level" symbols,
// not containers of subsymbols.
if s.Type&SCONTAINER != 0 {
return 1
return false
}
return 0
return true
}
// pclntab initializes the pclntab symbol with
......@@ -220,7 +220,7 @@ func (ctxt *Link) pclntab() {
}
for _, s := range ctxt.Textp {
if container(s) == 0 {
if emitPcln(s) {
nfunc++
}
}
......@@ -247,7 +247,7 @@ func (ctxt *Link) pclntab() {
var last *Symbol
for _, s := range ctxt.Textp {
last = s
if container(s) != 0 {
if !emitPcln(s) {
continue
}
pcln := s.FuncInfo
......@@ -464,7 +464,7 @@ func (ctxt *Link) findfunctab() {
}
idx := int32(0)
for i, s := range ctxt.Textp {
if container(s) != 0 {
if !emitPcln(s) {
continue
}
p := s.Value
......@@ -473,7 +473,7 @@ func (ctxt *Link) findfunctab() {
if i < len(ctxt.Textp) {
e = ctxt.Textp[i]
}
for container(e) != 0 && i < len(ctxt.Textp) {
for !emitPcln(e) && i < len(ctxt.Textp) {
e = ctxt.Textp[i]
i++
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment