1// run
2
3// Copyright 2012 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 3899: 8g incorrectly thinks a variable is
8// "set and not used" and elides an assignment, causing
9// variables to end up with wrong data.
10//
11// The reason is a miscalculation of variable width.
12
13package main
14
15func bar(f func()) {
16	f()
17}
18
19func foo() {
20	f := func() {}
21	if f == nil {
22	}
23	bar(f)
24}
25
26func main() {
27	foo()
28}
29