// $G $D/$F.go && $L $F.$A && ./$A.out >/dev/null 2>&1 || echo BUG: bug206

// Copyright 2009 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 "go/ast";

func g(list []ast.Expr) {
	n := len(list)-1;
	println(list[n].Pos());
}


// f is the same as g except that the expression assigned to n is inlined.
func f(list []ast.Expr) {
	// n := len(list)-1;
	println(list[len(list)-1 /* n */].Pos());
}


func main() {
	list := []ast.Expr{&ast.Ident{}};
	g(list);  // this works
	f(list);  // this doesn't
}


/*
0
throw: index out of range

panic PC=0x2bcf10
throw+0x33 /home/gri/go/src/pkg/runtime/runtime.c:71
	throw(0x470f8, 0x0)
sys·throwindex+0x1c /home/gri/go/src/pkg/runtime/runtime.c:45
	sys·throwindex()
main·f+0x26 /home/gri/go/test/bugs/bug206.go:16
	main·f(0x2b9560, 0x0)
main·main+0xc3 /home/gri/go/test/bugs/bug206.go:23
	main·main()
mainstart+0xf /home/gri/go/src/pkg/runtime/amd64/asm.s:55
	mainstart()
goexit /home/gri/go/src/pkg/runtime/proc.c:133
	goexit()
*/
