From: Than McIntosh Date: Mon, 11 Sep 2023 16:15:48 +0000 (-0400) Subject: cmd/compile/internal/base: keep Ctxt.Flag_optimize in sync with Flag.N X-Git-Tag: go1.22rc1~886 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2399302a251ef54e4669f2065f656b61d2f5c323;p=gostls13.git cmd/compile/internal/base: keep Ctxt.Flag_optimize in sync with Flag.N This patch fixes an inconsistency in compiler flag handling introduced accidentally in CL 521699. In the compiler we have both base.Flag.N (which records whether the user has supplied the "-N" flag to disable optimization) and base.Ctxt.Flag_optimize (which tracks whether optimization is turned on). In this case Flag.N was updated without a corresponding change to Ctxt.Flag_optimize, which led to problems with DWARF generation for the runtime. This CL doesn't include a regression test; a test will be added later in the x/debug repo in a subsequent CL. Updates #62523. Change-Id: I0c383bb43ec0a0e7c12e7e2852c0590731416d6f Reviewed-on: https://go-review.googlesource.com/c/go/+/527319 Reviewed-by: Cherry Mui Reviewed-by: Alessandro Arzilli LUCI-TryBot-Result: Go LUCI --- diff --git a/src/cmd/compile/internal/base/flag.go b/src/cmd/compile/internal/base/flag.go index 8ffb41b16d..0e44deae71 100644 --- a/src/cmd/compile/internal/base/flag.go +++ b/src/cmd/compile/internal/base/flag.go @@ -334,6 +334,7 @@ func ParseFlags() { // It is not possible to build the runtime with no optimizations, // because the compiler cannot eliminate enough write barriers. Flag.N = 0 + Ctxt.Flag_optimize = true // Runtime can't use -d=checkptr, at least not yet. Debug.Checkptr = 0