diff options
author | Austin Clements <austin@google.com> | 2018-11-01 12:20:28 -0400 |
---|---|---|
committer | Austin Clements <austin@google.com> | 2018-11-12 20:46:50 +0000 |
commit | 16e6cd9a4dc499db164624a048f25e2f382ac016 (patch) | |
tree | fcf2eb5fcc0c780d3ad55fab972048915c52d863 /src/cmd/compile/internal/gc/export.go | |
parent | c5718b6b261a66aa47312037f17281d3d810c98c (diff) | |
download | go-16e6cd9a4dc499db164624a048f25e2f382ac016.tar.gz go-16e6cd9a4dc499db164624a048f25e2f382ac016.zip |
cmd/compile: mark function Syms
In order to mark the obj.LSyms produced by the compiler with the
correct ABI, we need to know which types.Syms refer to function
symbols. This CL adds a flag to types.Syms to mark symbols for
functions, and sets this flag everywhere we create a PFUNC-class node,
and in the one place where we directly create function symbols without
always wrapping them in a PFUNC node (methodSym).
We'll use this information to construct obj.LSyms with correct ABI
information.
For #27539.
Change-Id: Ie3ac8bf3da013e449e78f6ca85546a055f275463
Reviewed-on: https://go-review.googlesource.com/c/147158
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/gc/export.go')
-rw-r--r-- | src/cmd/compile/internal/gc/export.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/gc/export.go b/src/cmd/compile/internal/gc/export.go index 85916509cb..4fe1f8b95f 100644 --- a/src/cmd/compile/internal/gc/export.go +++ b/src/cmd/compile/internal/gc/export.go @@ -140,6 +140,9 @@ func importobj(ipkg *types.Pkg, pos src.XPos, s *types.Sym, op Op, ctxt Class, t n.Op = op n.Pos = pos n.SetClass(ctxt) + if ctxt == PFUNC { + n.Sym.SetFunc(true) + } n.Type = t return n } |