aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssagen
diff options
context:
space:
mode:
authorMatthew Dempsky <mdempsky@google.com>2021-07-07 23:32:49 -0700
committerMatthew Dempsky <mdempsky@google.com>2021-07-10 00:13:14 +0000
commita12ad271195d88ffa8f68ad01547560fb4d2ab49 (patch)
treef7ab1ee30f50471e0f0229e3c4dadd536bbf3f6b /src/cmd/compile/internal/ssagen
parent5059aed9dd33e35d3d0d88be945b2aed8265e1c3 (diff)
downloadgo-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.go3
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
}