mirror of
https://github.com/golang/go
synced 2024-10-04 04:41:23 -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 |
||
---|---|---|
.. | ||
5a | ||
5c | ||
5g | ||
5l | ||
6a | ||
6c | ||
6g | ||
6l | ||
8a | ||
8c | ||
8g | ||
8l | ||
addr2line | ||
api | ||
cc | ||
cgo | ||
dist | ||
fix | ||
gc | ||
go | ||
gofmt | ||
ld | ||
link | ||
nm | ||
objdump | ||
pack | ||
yacc |