| commit | 9fbfe7cca00a456541e9aa2b2cc1251d777f325b | [log] [tgz] |
|---|---|---|
| author | David Lazar <lazard@golang.org> | Wed Nov 30 17:09:07 2016 -0500 |
| committer | David Lazar <lazard@golang.org> | Thu Dec 01 18:59:59 2016 +0000 |
| tree | 542d7d693477d70031d2492c3663bc811117dda5 | |
| parent | 3c2e4ed8d31e65556e936bf394a47e644605d23d [diff] |
cmd/compile: do not inline functions marked cgo_unsafe_args Now the net tests pass with -gcflags '-l=4'. Fixes #18125. Change-Id: I4e3a46eb0cb3a93b203e74f5bc99c5822331f535 Reviewed-on: https://go-review.googlesource.com/33722 Reviewed-by: Keith Randall <khr@golang.org>
diff --git a/src/cmd/compile/internal/gc/inl.go b/src/cmd/compile/internal/gc/inl.go index d8f1f24..7b2fcf8 100644 --- a/src/cmd/compile/internal/gc/inl.go +++ b/src/cmd/compile/internal/gc/inl.go
@@ -107,6 +107,12 @@ return } + // If marked "go:cgo_unsafe_args", don't inline + if fn.Func.Pragma&CgoUnsafeArgs != 0 { + reason = "marked go:cgo_unsafe_args" + return + } + // If fn has no body (is defined outside of Go), cannot inline it. if fn.Nbody.Len() == 0 { reason = "no function body"