Commit ba50599e authored by Russ Cox's avatar Russ Cox

8g: make a[byte(x)] truncate x

R=ken2
CC=golang-dev
https://golang.org/cl/223069
parent 9520a682
...@@ -215,7 +215,14 @@ cgen(Node *n, Node *res) ...@@ -215,7 +215,14 @@ cgen(Node *n, Node *res)
break; break;
} }
mgen(nl, &n1, res); mgen(nl, &n1, res);
gmove(&n1, res); if(n->type->width > widthptr)
tempname(&n2, n->type);
else
regalloc(&n2, n->type, res);
gmove(&n1, &n2);
gmove(&n2, res);
if(n2.op == OREGISTER)
regfree(&n2);
mfree(&n1); mfree(&n1);
break; break;
......
// $G $D/$F.go && $L $F.$A && ./$A.out
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import "fmt"
var x = uint32(0x01020304)
var y = [...]uint32{1,2,3,4,5}
func main() {
fmt.Sprint(y[byte(x)])
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment