Skip to content

Commit 996a687

Browse files
committed
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 <[email protected]> TryBot-Result: Gobot Gobot <[email protected]> Reviewed-by: David Chase <[email protected]>
1 parent a16dcc0 commit 996a687

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/cmd/compile/internal/gc/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -253,13 +253,13 @@ func Main(archInit func(*Arch)) {
253253
flag.StringVar(&blockprofile, "blockprofile", "", "write block profile to `file`")
254254
flag.StringVar(&mutexprofile, "mutexprofile", "", "write mutex profile to `file`")
255255
flag.StringVar(&benchfile, "bench", "", "append benchmark times to `file`")
256-
flag.BoolVar(&newescape, "newescape", false, "enable new escape analysis")
256+
flag.BoolVar(&newescape, "newescape", true, "enable new escape analysis")
257257
objabi.Flagparse(usage)
258258

259259
// Record flags that affect the build result. (And don't
260260
// record flags that don't, since that would cause spurious
261261
// changes in the binary.)
262-
recordFlags("B", "N", "l", "msan", "race", "shared", "dynlink", "dwarflocationlists")
262+
recordFlags("B", "N", "l", "msan", "race", "shared", "dynlink", "dwarflocationlists", "newescape")
263263

264264
Ctxt.Flag_shared = flag_dynlink || flag_shared
265265
Ctxt.Flag_dynlink = flag_dynlink

0 commit comments

Comments
 (0)