aboutsummaryrefslogtreecommitdiff
path: root/src/encoding
diff options
context:
space:
mode:
authorCherry Mui <cherryyz@google.com>2022-10-14 19:52:00 -0400
committerCherry Mui <cherryyz@google.com>2022-10-20 22:16:41 +0000
commit4725c71b735143a138b24f2b0e055c717d8d69ca (patch)
tree7f2deba6ee13866858886fdb444f46975f238a2d /src/encoding
parent8415ec8c98627326ffb48141c45917b9d7d0c234 (diff)
downloadgo-4725c71b735143a138b24f2b0e055c717d8d69ca.tar.xz
cmd/compile: copy blank parameter node when substituting function type
When a function type is copied (e.g. for substituting type parameters), we make copies of its parameter ir.Name nodes, so they are not shared with the old function type. But currently a blank (_) identifier is not copied but shared. The parameter node's frame offset is assigned (in ABI analysis) and then used in the concurrent backend. Shared node can cause a data race. Make a new blank parameter node to avoid sharing. (Unified IR does already not have this problem. This fixes non-unified-IR mode.) This seems to fix #55357. Change-Id: Ie27f08e5589ac7d5d3f0d0d5de1a21e4fd2765c9 Reviewed-on: https://go-review.googlesource.com/c/go/+/443158 Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@google.com>
Diffstat (limited to 'src/encoding')
0 files changed, 0 insertions, 0 deletions