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 { ...@@ -171,19 +171,19 @@ func onlycsymbol(s *Symbol) bool {
return false return false
} }
func container(s *Symbol) int { func emitPcln(s *Symbol) bool {
if s == nil { if s == nil {
return 0 return true
} }
if Buildmode == BuildmodePlugin && Headtype == objabi.Hdarwin && onlycsymbol(s) { 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, // We want to generate func table entries only for the "lowest level" symbols,
// not containers of subsymbols. // not containers of subsymbols.
if s.Type&SCONTAINER != 0 { if s.Type&SCONTAINER != 0 {
return 1 return false
} }
return 0 return true
} }
// pclntab initializes the pclntab symbol with // pclntab initializes the pclntab symbol with
...@@ -220,7 +220,7 @@ func (ctxt *Link) pclntab() { ...@@ -220,7 +220,7 @@ func (ctxt *Link) pclntab() {
} }
for _, s := range ctxt.Textp { for _, s := range ctxt.Textp {
if container(s) == 0 { if emitPcln(s) {
nfunc++ nfunc++
} }
} }
...@@ -247,7 +247,7 @@ func (ctxt *Link) pclntab() { ...@@ -247,7 +247,7 @@ func (ctxt *Link) pclntab() {
var last *Symbol var last *Symbol
for _, s := range ctxt.Textp { for _, s := range ctxt.Textp {
last = s last = s
if container(s) != 0 { if !emitPcln(s) {
continue continue
} }
pcln := s.FuncInfo pcln := s.FuncInfo
...@@ -464,7 +464,7 @@ func (ctxt *Link) findfunctab() { ...@@ -464,7 +464,7 @@ func (ctxt *Link) findfunctab() {
} }
idx := int32(0) idx := int32(0)
for i, s := range ctxt.Textp { for i, s := range ctxt.Textp {
if container(s) != 0 { if !emitPcln(s) {
continue continue
} }
p := s.Value p := s.Value
...@@ -473,7 +473,7 @@ func (ctxt *Link) findfunctab() { ...@@ -473,7 +473,7 @@ func (ctxt *Link) findfunctab() {
if i < len(ctxt.Textp) { if i < len(ctxt.Textp) {
e = ctxt.Textp[i] e = ctxt.Textp[i]
} }
for container(e) != 0 && i < len(ctxt.Textp) { for !emitPcln(e) && i < len(ctxt.Textp) {
e = ctxt.Textp[i] e = ctxt.Textp[i]
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