1 // run 2 3 // Copyright 2013 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 // issue 5809: 6g and 8g attempted to constant propagate indexed LEA 8 9 package main 10 11 import "fmt" 12 13 func main() { 14 const d16 = "0123456789ABCDEF" 15 k := 0x1234 16 var x [4]byte 17 18 x[0] = d16[k>>12&0xf] 19 x[1] = d16[k>>8&0xf] 20 x[2] = d16[k>>4&0xf] 21 x[3] = d16[k&0xf] 22 23 if x != [4]byte{'1','2','3','4'} { 24 fmt.Println(x) 25 panic("x != [4]byte{'1','2','3','4'}") 26 } 27 } 28