mirror of
https://github.com/golang/go
synced 2024-10-04 06:31:22 -06:00
948b2c722b
The 'nodarg' function is used to obtain a Node* representing a function argument or result. It returned a brand new Node*, but that violates the guarantee in most places in the compiler that two Node*s refer to the same variable if and only if they are the same Node* pointer. Reestablish that invariant by making nodarg return a preexisting named variable if present. Having fixed that, avoid any copy during x=x in componentgen, because the VARDEF we emit before the copy marks the lhs x as dead incorrectly. The change in walk.c avoids modifying the result of nodarg. This was the only place in the compiler that did so. Fixes #8097. LGTM=r, khr R=golang-codereviews, r, khr CC=golang-codereviews, iant https://golang.org/cl/102820043 |
||
---|---|---|
.. | ||
cgen64.c | ||
cgen.c | ||
doc.go | ||
galign.c | ||
gg.h | ||
ggen.c | ||
gobj.c | ||
gsubr.c | ||
Makefile | ||
opt.h | ||
peep.c | ||
prog.c | ||
reg.c |