./testdata/hist.go
55:	func test() {
57:		l := line{point{1 + zero, 2 + zero}, point{3 + zero, 4 + zero}}
58:		tinycall()                // this forces l etc to stack
59:		dx := l.end.x - l.begin.x //gdb-dbg=(l.begin.x,l.end.y)//gdb-opt=(l,dx/O,dy/O)
60:		dy := l.end.y - l.begin.y //gdb-opt=(dx,dy/O)
61:		sink = dx + dy            //gdb-opt=(dx,dy)
63:		hist := make([]int, 7)                                //gdb-opt=(dx/O,dy/O) // TODO sink is missing if this code is in 'test' instead of 'main'
64:		var reader io.Reader = strings.NewReader(cannedInput) //gdb-dbg=(hist/A) // TODO cannedInput/A is missing if this code is in 'test' instead of 'main'
65:		if len(os.Args) > 1 {
73:		scanner := bufio.NewScanner(reader)
74:		for scanner.Scan() { //gdb-opt=(scanner/A)
75:			s := scanner.Text()
76:			i, err := strconv.ParseInt(s, 10, 64)
77:			if err != nil { //gdb-dbg=(i) //gdb-opt=(err,hist,i)
81:			hist = ensure(int(i), hist)
82:			hist[int(i)]++
74:		for scanner.Scan() { //gdb-opt=(scanner/A)
75:			s := scanner.Text()
76:			i, err := strconv.ParseInt(s, 10, 64)
77:			if err != nil { //gdb-dbg=(i) //gdb-opt=(err,hist,i)
81:			hist = ensure(int(i), hist)
82:			hist[int(i)]++
74:		for scanner.Scan() { //gdb-opt=(scanner/A)
75:			s := scanner.Text()
76:			i, err := strconv.ParseInt(s, 10, 64)
77:			if err != nil { //gdb-dbg=(i) //gdb-opt=(err,hist,i)
81:			hist = ensure(int(i), hist)
82:			hist[int(i)]++
74:		for scanner.Scan() { //gdb-opt=(scanner/A)
75:			s := scanner.Text()
76:			i, err := strconv.ParseInt(s, 10, 64)
77:			if err != nil { //gdb-dbg=(i) //gdb-opt=(err,hist,i)
81:			hist = ensure(int(i), hist)
82:			hist[int(i)]++
74:		for scanner.Scan() { //gdb-opt=(scanner/A)
75:			s := scanner.Text()
76:			i, err := strconv.ParseInt(s, 10, 64)
77:			if err != nil { //gdb-dbg=(i) //gdb-opt=(err,hist,i)
81:			hist = ensure(int(i), hist)
82:			hist[int(i)]++
74:		for scanner.Scan() { //gdb-opt=(scanner/A)
75:			s := scanner.Text()
76:			i, err := strconv.ParseInt(s, 10, 64)
77:			if err != nil { //gdb-dbg=(i) //gdb-opt=(err,hist,i)
81:			hist = ensure(int(i), hist)
82:			hist[int(i)]++
74:		for scanner.Scan() { //gdb-opt=(scanner/A)
75:			s := scanner.Text()
76:			i, err := strconv.ParseInt(s, 10, 64)
77:			if err != nil { //gdb-dbg=(i) //gdb-opt=(err,hist,i)
81:			hist = ensure(int(i), hist)
82:			hist[int(i)]++
74:		for scanner.Scan() { //gdb-opt=(scanner/A)
75:			s := scanner.Text()
76:			i, err := strconv.ParseInt(s, 10, 64)
77:			if err != nil { //gdb-dbg=(i) //gdb-opt=(err,hist,i)
81:			hist = ensure(int(i), hist)
82:			hist[int(i)]++
74:		for scanner.Scan() { //gdb-opt=(scanner/A)
75:			s := scanner.Text()
76:			i, err := strconv.ParseInt(s, 10, 64)
77:			if err != nil { //gdb-dbg=(i) //gdb-opt=(err,hist,i)
81:			hist = ensure(int(i), hist)
82:			hist[int(i)]++
74:		for scanner.Scan() { //gdb-opt=(scanner/A)
84:		t := 0
85:		n := 0
86:		for i, a := range hist {
87:			if a == 0 { //gdb-opt=(a,n,t)
88:				continue
86:		for i, a := range hist {
87:			if a == 0 { //gdb-opt=(a,n,t)
90:			t += i * a
91:			n += a
92:			fmt.Fprintf(os.Stderr, "%d\t%d\t%d\t%d\t%d\n", i, a, n, i*a, t) //gdb-dbg=(n,i,t)
86:		for i, a := range hist {
87:			if a == 0 { //gdb-opt=(a,n,t)
90:			t += i * a
91:			n += a
92:			fmt.Fprintf(os.Stderr, "%d\t%d\t%d\t%d\t%d\n", i, a, n, i*a, t) //gdb-dbg=(n,i,t)
86:		for i, a := range hist {
87:			if a == 0 { //gdb-opt=(a,n,t)
88:				continue
86:		for i, a := range hist {
87:			if a == 0 { //gdb-opt=(a,n,t)
90:			t += i * a
91:			n += a
92:			fmt.Fprintf(os.Stderr, "%d\t%d\t%d\t%d\t%d\n", i, a, n, i*a, t) //gdb-dbg=(n,i,t)
86:		for i, a := range hist {
87:			if a == 0 { //gdb-opt=(a,n,t)
90:			t += i * a
91:			n += a
92:			fmt.Fprintf(os.Stderr, "%d\t%d\t%d\t%d\t%d\n", i, a, n, i*a, t) //gdb-dbg=(n,i,t)
86:		for i, a := range hist {
87:			if a == 0 { //gdb-opt=(a,n,t)
88:				continue
86:		for i, a := range hist {
98:	}