]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: propagate go:notinheap implicitly
authorKeith Randall <khr@golang.org>
Thu, 17 Sep 2020 16:55:23 +0000 (09:55 -0700)
committerKeith Randall <khr@golang.org>
Thu, 17 Sep 2020 19:35:53 +0000 (19:35 +0000)
commit22053790fa2c0944df53ea95df476ad2f855424f
tree31b3d36129447c77c3b8c29fc994635387110364
parent6796a7fb127676b61375339076ae1c982a721dde
cmd/compile: propagate go:notinheap implicitly

//go:notinheap
type T int

type U T

We already correctly propagate the notinheap-ness of T to U.  But we
have an assertion in the typechecker that if there's no explicit
//go:notinheap associated with U, then report an error. Get rid of
that error so that implicit propagation is allowed.

Adjust the tests so that we make sure that uses of types like U
do correctly report an error when U is used in a context that might
cause a Go heap allocation.

Fixes #41451

Update #40954
Update #41432

Change-Id: I1692bc7cceff21ebb3f557f3748812a40887118d
Reviewed-on: https://go-review.googlesource.com/c/go/+/255637
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
src/cmd/compile/internal/gc/typecheck.go
test/notinheap.go
test/notinheap2.go