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