]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.15] cmd/compile: propagate go:notinheap implicitly
authorKeith Randall <khr@golang.org>
Thu, 17 Sep 2020 16:55:23 +0000 (09:55 -0700)
committerDmitri Shuralyov <dmitshur@golang.org>
Fri, 9 Oct 2020 17:25:48 +0000 (17:25 +0000)
commitcfeb16ddec5b2134198dcc029cdd501ed11a7c01
tree6c035739633c0a191318f5e17a3c16d93af5a77e
parent46a6fd080635001d7f9fbd8118094f0aa21661a0
[release-branch.go1.15] 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.

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>
(cherry picked from commit 22053790fa2c0944df53ea95df476ad2f855424f)
Reviewed-on: https://go-review.googlesource.com/c/go/+/255697
Trust: Keith Randall <khr@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
src/cmd/compile/internal/gc/typecheck.go
test/notinheap.go
test/notinheap2.go