1
0
mirror of https://github.com/golang/go synced 2024-10-04 10:21:21 -06:00
go/src/cmd/8g
Russ Cox 9dd062b82e undo CL 102820043 / b0ce6dbafc18
Breaks 386 and arm builds.
The obvious reason is that this CL only edited 6g/gsubr.c
and failed to edit 5g/gsubr.c and 8g/gsubr.c.
However, the obvious CL applying the same edit to those
files (CL 101900043) causes mysterious build failures
in various of the standard package tests, usually involving
reflect. Something deep and subtle is broken but only on
the 32-bit systems.

Undo this CL for now.

««« original CL description
cmd/gc: fix x=x crash

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
»»»

TBR=r
CC=golang-codereviews, khr
https://golang.org/cl/95660043
2014-05-28 21:46:20 -04:00
..
cgen64.c cmd/gc: contiguous loop layout 2012-05-30 18:07:39 -04:00
cgen.c undo CL 102820043 / b0ce6dbafc18 2014-05-28 21:46:20 -04:00
doc.go cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00
galign.c cmd/gc, cmd/5g, cmd/6g, cmd/8g: introduce linkarchinit and add amd64p32 support 2014-03-07 15:33:44 +11:00
gg.h 5g, 8g: remove dead code 2014-02-25 14:43:53 -08:00
ggen.c cmd/6g, cmd/8g: disable Duff's device on NaCl. 2014-04-04 08:42:35 +02:00
gobj.c cmd/gc: bypass DATA instruction for data initialized to integer constant 2013-12-20 14:24:39 -05:00
gsubr.c cmd/gc: alias more variables during register allocation 2014-05-12 17:10:36 -04:00
Makefile build: delete make paraphernalia 2012-02-06 13:34:25 -05:00
opt.h cmd/gc: fix liveness vs regopt mismatch for input variables 2014-05-12 17:19:02 -04:00
peep.c cmd/gc: shorten temporary lifetimes when possible 2014-04-01 13:31:38 -04:00
prog.c cmd/8g: fix liveness for 387 build (including plan9) 2014-04-06 10:30:02 -04:00
reg.c cmd/gc: correct handling of globals, func args, results 2014-05-15 15:34:53 -04:00