mirror of
https://github.com/golang/go
synced 2024-11-25 16:47:56 -07:00
4f97a7e6ea
In CL 522879, I moved the logic for setting Addrtaken from typecheck's markAddrOf and ComputeAddrtaken directly into ir.NewAddrExpr. However, I took the logic from markAddrOf, and failed to notice that ComputeAddrtaken also set Addrtaken on the canonical ONAME. The result is that if the only address-of expressions were within a function literal, the canonical variable never got marked Addrtaken. In turn, this could cause the consistency check in ir.Reassigned to fail. (Yay for consistency checks turning mistakes into ICEs, rather than miscompilation.) Fixes #62313. Change-Id: Ieab2854cd7fcc1b6c5d1e61de66453add9890a4f Reviewed-on: https://go-review.googlesource.com/c/go/+/523375 Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> Auto-Submit: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
14 lines
259 B
Go
14 lines
259 B
Go
// compile
|
|
|
|
// Copyright 2023 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package p
|
|
|
|
func f() {
|
|
var err error = nil
|
|
defer func() { _ = &err }()
|
|
err.Error()
|
|
}
|