You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
435 B
22 lines
435 B
// run
|
|
|
|
// Test for 6g register move bug. The optimizer gets confused
|
|
// about 32- vs 64-bit moves during splitContractIndex.
|
|
|
|
// Issue 3918.
|
|
|
|
package main
|
|
|
|
func main() {
|
|
const c = 0x123400005678
|
|
index, offset := splitContractIndex(c)
|
|
if index != (c&0xffffffff)>>5 || offset != c+1 {
|
|
println("BUG", index, offset)
|
|
}
|
|
}
|
|
|
|
func splitContractIndex(ce uint64) (index uint32, offset uint64) {
|
|
h := uint32(ce)
|
|
return h >> 5, ce + 1
|
|
}
|