mirror of
https://github.com/golang/go
synced 2024-11-17 14:14:56 -07:00
cmd/compile: enable -newescape by default
RELNOTE=yes The new escape analysis pass is more precise, which for most Go code should be an improvement. However, it may also break code that happened to work before (e.g., code that violated the unsafe.Pointer safety rules). The old escape analysis pass can be re-enabled with "go build -gcflags=all=-newescape=false". N.B., it's NOT recommended to mix the old and new escape analysis passes such as by omitting "all=". While the old and new escape analysis passes use similar and mostly compatible metadata, there are cases (e.g., closure handling) where they semantically differ and could lead to memory corruption errors in compiled programs. Fixes #23109. Change-Id: I0b1b6a6de5e240cb30c87a165f47bb8795491158 Reviewed-on: https://go-review.googlesource.com/c/go/+/170448 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
a16dcc0052
commit
996a687ebb
@ -253,13 +253,13 @@ func Main(archInit func(*Arch)) {
|
||||
flag.StringVar(&blockprofile, "blockprofile", "", "write block profile to `file`")
|
||||
flag.StringVar(&mutexprofile, "mutexprofile", "", "write mutex profile to `file`")
|
||||
flag.StringVar(&benchfile, "bench", "", "append benchmark times to `file`")
|
||||
flag.BoolVar(&newescape, "newescape", false, "enable new escape analysis")
|
||||
flag.BoolVar(&newescape, "newescape", true, "enable new escape analysis")
|
||||
objabi.Flagparse(usage)
|
||||
|
||||
// Record flags that affect the build result. (And don't
|
||||
// record flags that don't, since that would cause spurious
|
||||
// changes in the binary.)
|
||||
recordFlags("B", "N", "l", "msan", "race", "shared", "dynlink", "dwarflocationlists")
|
||||
recordFlags("B", "N", "l", "msan", "race", "shared", "dynlink", "dwarflocationlists", "newescape")
|
||||
|
||||
Ctxt.Flag_shared = flag_dynlink || flag_shared
|
||||
Ctxt.Flag_dynlink = flag_dynlink
|
||||
|
Loading…
Reference in New Issue
Block a user