]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: allow bodyless function if it is linkname'd
authorKeith Randall <khr@google.com>
Mon, 26 Nov 2018 18:48:56 +0000 (10:48 -0800)
committerKeith Randall <khr@golang.org>
Mon, 26 Nov 2018 20:00:59 +0000 (20:00 +0000)
commitca3749230b5a7d43b3292226fdb2b6f3de5d653b
tree228f42320e098e6cc90844b87a566523b8c35897
parent9ab2ffe8e92f9660cbde1a18921ae864c64f280b
cmd/compile: allow bodyless function if it is linkname'd

In assembly free packages (aka "complete" or "pure go"), allow
bodyless functions if they are linkname'd to something else.

Presumably the thing the function is linkname'd to has a definition.
If not, the linker will complain. And linkname is unsafe, so we expect
users to know what they are doing.

Note this handles only one direction, where the linkname directive
is in the local package. If the linkname directive is in the remote
package, this CL won't help. (See os/signal/sig.s for an example.)

Fixes #23311

Change-Id: I824361b4b582ee05976d94812e5b0e8b0f7a18a6
Reviewed-on: https://go-review.googlesource.com/c/151318
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/noder.go
test/fixedbugs/issue23311.dir/main.go [moved from src/runtime/testdata/testprog/empty.s with 59% similarity]
test/fixedbugs/issue23311.go [moved from src/internal/syscall/unix/empty.s with 70% similarity]