File: bug440_64.go

package info (click to toggle)
golang 2%3A1.3-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 48,860 kB
  • ctags: 100,108
  • sloc: ansic: 154,811; asm: 21,584; yacc: 4,966; perl: 4,860; sh: 2,318; xml: 1,084; lisp: 990; python: 273; makefile: 223; awk: 106; cpp: 22
file content (21 lines) | stat: -rw-r--r-- 435 bytes parent folder | download | duplicates (66)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 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
}