diff options
author | Matthew Dempsky <mdempsky@google.com> | 2021-07-07 23:32:49 -0700 |
---|---|---|
committer | Matthew Dempsky <mdempsky@google.com> | 2021-07-10 00:13:14 +0000 |
commit | a12ad271195d88ffa8f68ad01547560fb4d2ab49 (patch) | |
tree | f7ab1ee30f50471e0f0229e3c4dadd536bbf3f6b /src/cmd/compile/internal/ssagen | |
parent | 5059aed9dd33e35d3d0d88be945b2aed8265e1c3 (diff) | |
download | go-a12ad271195d88ffa8f68ad01547560fb4d2ab49.tar.gz go-a12ad271195d88ffa8f68ad01547560fb4d2ab49.zip |
[dev.typeparams] cmd/compile: report functions declared in Go and assembly
This CL reuses the symabi wrapper information to warn when a function
is defined both in Go (i.e., has a function declaration with a body)
and in assembly (i.e., has a TEXT instruction).
This will eventually produce a linker error anyway, but we can provide
a slightly nicer error message earlier.
Change-Id: Ia107f813343c0b10f4cd1013e7c72e67149ee52e
Reviewed-on: https://go-review.googlesource.com/c/go/+/333454
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssagen')
-rw-r--r-- | src/cmd/compile/internal/ssagen/abi.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssagen/abi.go b/src/cmd/compile/internal/ssagen/abi.go index e460adaf95..6d8c53e722 100644 --- a/src/cmd/compile/internal/ssagen/abi.go +++ b/src/cmd/compile/internal/ssagen/abi.go @@ -152,6 +152,9 @@ func (s *SymABIs) GenABIWrappers() { // Apply definitions. defABI, hasDefABI := s.defs[symName] if hasDefABI { + if len(fn.Body) != 0 { + base.ErrorfAt(fn.Pos(), "%v defined in both Go and assembly", fn) + } fn.ABI = defABI } |