1
0
mirror of https://github.com/golang/go synced 2024-11-19 16:44:43 -07:00
The Go programming language
Go to file
Russ Cox 89d46fed2c cmd/gc: fix x=x crash
[Same as CL 102820043 except applied changes to 6g/gsubr.c
also to 5g/gsubr.c and 8g/gsubr.c. The problem I had last night
trying to do that was that 8g's copy of nodarg has different
(but equivalent) control flow and I was pasting the new code
into the wrong place.]

Description from CL 102820043:

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=khr
R=golang-codereviews, khr
CC=golang-codereviews, iant, khr, r
https://golang.org/cl/103750043
2014-05-29 13:47:31 -04:00
api regexp: hide one-pass code from exported API 2014-05-28 14:08:44 -04:00
doc doc/go1.3.html: math/big's Int and Rat implement TextMarshaler, TextUnmarshaler 2014-05-28 15:48:35 -04:00
include liblink: fix field tracking 2014-05-20 00:30:58 -04:00
lib lib/time/zoneinfo.zip: update to IANA release 2014c 2014-05-16 22:06:37 +00:00
misc misc/makerelease: upload files to Google Cloud Storage 2014-05-29 08:40:15 +10:00
src cmd/gc: fix x=x crash 2014-05-29 13:47:31 -04:00
test cmd/gc: fix x=x crash 2014-05-29 13:47:31 -04:00
.hgignore lib9: enable on Plan 9 2014-02-13 20:06:41 +01:00
.hgtags tag go1.3beta1 and go1.3beta2 2014-05-21 13:23:24 +10:00
AUTHORS A+C: Pietro Gagliardi (individual CLA) 2014-05-21 16:01:41 -07:00
CONTRIBUTORS A+C: Pietro Gagliardi (individual CLA) 2014-05-21 16:01:41 -07:00
favicon.ico godoc: update favicon 2012-10-11 17:02:36 +11:00
LICENSE
PATENTS
README README: Fix installation instructions 2013-11-20 13:47:37 -08:00
robots.txt

This is the source code repository for the Go programming language.  

For documentation about how to install and use Go,
visit http://golang.org/ or load doc/install-source.html
in your web browser.

After installing Go, you can view a nicely formatted
doc/install-source.html by running godoc --http=:6060
and then visiting http://localhost:6060/doc/install/source.

Unless otherwise noted, the Go source files are distributed
under the BSD-style license found in the LICENSE file.

--

Binary Distribution Notes

If you have just untarred a binary Go distribution, you need to set
the environment variable $GOROOT to the full path of the go
directory (the one containing this README).  You can omit the
variable if you unpack it into /usr/local/go, or if you rebuild
from sources by running all.bash (see doc/install.html).
You should also add the Go binary directory $GOROOT/bin
to your shell's path.

For example, if you extracted the tar file into $HOME/go, you might
put the following in your .profile:

    export GOROOT=$HOME/go
    export PATH=$PATH:$GOROOT/bin

See doc/install.html for more details.