]> Cypherpunks repositories - gostls13.git/commit
cmd/compile/internal/staticinit: fix bug in global new(expr)
authorAlan Donovan <adonovan@google.com>
Tue, 20 Jan 2026 21:18:59 +0000 (16:18 -0500)
committerAlan Donovan <adonovan@google.com>
Tue, 20 Jan 2026 21:48:41 +0000 (13:48 -0800)
commita8291eb61402d4549b69803fc8f834ded45b1f6c
tree746993434cc03b531e15036a4db42a12e0830be3
parent4edaaf2b529219ff219798914f730ca5a0ab018b
cmd/compile/internal/staticinit: fix bug in global new(expr)

The StaticInit pass asserts that the operand of &v is a global,
but this is not so for the &autotemp desugaring of new(expr).

(The variable has by that point escaped to the heap, so
the object code calls runtime.newobject. A future optimization
would be to statically allocate the variable when it is safe
and advantageous to do so.)

Thanks to khr for suggesting the fix.

+ static test

Fixes #77237

Change-Id: I71b34a1353fe0f3e297beab9851f8f87d765d8f1
Reviewed-on: https://go-review.googlesource.com/c/go/+/737680
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
src/cmd/compile/internal/staticinit/sched.go
test/newexpr.go