summaryrefslogtreecommitdiff
path: root/src/cmd/gc
diff options
context:
space:
mode:
authorR?my Oudompheng <oudomphe@phare.normalesup.org>2013-05-20 23:45:22 +0200
committerR?my Oudompheng <oudomphe@phare.normalesup.org>2013-05-20 23:45:22 +0200
commitdc1552097a0077d18694b44630dcd2d849e5fc98 (patch)
tree5e7336e3814458881ef57eff0c1ab696ad6b9093 /src/cmd/gc
parenta21450ed2d3662ef4737247852fad5c911bcd0fd (diff)
downloadgo-dc1552097a0077d18694b44630dcd2d849e5fc98.tar.gz
cmd/gc: clear n->list of OFOR range loop after walk.
It contains the LHS of the range clause and gets instrumented by racewalk, but it doesn't have any meaning. Fixes issue 5446. R=golang-dev, dvyukov, daniel.morsing, r CC=golang-dev https://codereview.appspot.com/9560044
Diffstat (limited to 'src/cmd/gc')
-rw-r--r--src/cmd/gc/range.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/gc/range.c b/src/cmd/gc/range.c
index 8af45b9d2..bd271da38 100644
--- a/src/cmd/gc/range.c
+++ b/src/cmd/gc/range.c
@@ -129,6 +129,9 @@ walkrange(Node *n)
v2 = N;
if(n->list->next)
v2 = n->list->next->n;
+ // n->list has no meaning anymore, clear it
+ // to avoid erroneous processing by racewalk.
+ n->list = nil;
hv2 = N;
if(v2 == N && t->etype == TARRAY) {