aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd/compile/internal/gc/bexport.go2
-rw-r--r--src/cmd/compile/internal/gc/bimport.go5
2 files changed, 6 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/gc/bexport.go b/src/cmd/compile/internal/gc/bexport.go
index a8f5c3bda0..563e1fba48 100644
--- a/src/cmd/compile/internal/gc/bexport.go
+++ b/src/cmd/compile/internal/gc/bexport.go
@@ -1584,6 +1584,8 @@ func (p *exporter) sym(n *Node) {
if name != "_" {
p.pkg(s.Pkg)
}
+ // Fixes issue #18167.
+ p.string(s.Linkname)
}
func (p *exporter) bool(b bool) bool {
diff --git a/src/cmd/compile/internal/gc/bimport.go b/src/cmd/compile/internal/gc/bimport.go
index 752f65be42..e76d5ccfff 100644
--- a/src/cmd/compile/internal/gc/bimport.go
+++ b/src/cmd/compile/internal/gc/bimport.go
@@ -1185,7 +1185,10 @@ func (p *importer) sym() *Sym {
if name != "_" {
pkg = p.pkg()
}
- return pkg.Lookup(name)
+ linkname := p.string()
+ sym := pkg.Lookup(name)
+ sym.Linkname = linkname
+ return sym
}
func (p *importer) bool() bool {