]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: fix ICE with new(<untyped expr>)
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Fri, 26 Sep 2025 11:07:18 +0000 (18:07 +0700)
committerGopher Robot <gobot@golang.org>
Fri, 26 Sep 2025 17:10:03 +0000 (10:10 -0700)
Fixes #75617

Change-Id: Iaee7d4556db54b9999f5ba8458e7c05c11ccfc36
Reviewed-on: https://go-review.googlesource.com/c/go/+/707075
Reviewed-by: Junyang Shao <shaojunyang@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
src/cmd/compile/internal/noder/reader.go
test/newexpr.go

index ca7c6bf1515cfa0d82310d32a39c371de25af7ad..41eb2dce1cc50fc74572e10eb5098e0924419f09 100644 (file)
@@ -2434,6 +2434,7 @@ func (r *reader) expr() (res ir.Node) {
                if r.Bool() {
                        // new(expr) -> tmp := expr; &tmp
                        x := r.expr()
+                       x = typecheck.DefaultLit(x, nil) // See TODO in exprConvert case.
                        var init ir.Nodes
                        addr := ir.NewAddrExpr(pos, r.tempCopy(pos, x, &init))
                        addr.SetInit(init)
index 7deffae38fbefd435499f348cd975dba957c28aa..c9a8804d4eb31ab6775b9a97141b12978625d30e 100644 (file)
@@ -29,4 +29,11 @@ func main() {
                        panic("wrong value")
                }
        }
+       {
+               var i int
+               v := new(i > 0) // untyped expression, see issue #75617
+               if *v != false {
+                       panic("wrong value")
+               }
+       }
 }