--- /dev/null
+// Copyright 2013 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 a
+
+func F() {}
+
+type T struct {
+ F func()
+}
+
+func (T) M() {}
+
+var Fv = F
+
+func Comparison() {
+ var t T
+ var fn func()
+ if fn == nil || Fv == nil || t.F == nil {
+ // no error; these func vars or fields may be nil
+ }
+ if F == nil { // want "comparison of function F == nil is always false"
+ panic("can't happen")
+ }
+ if t.M == nil { // want "comparison of function M == nil is always false"
+ panic("can't happen")
+ }
+ if F != nil { // want "comparison of function F != nil is always true"
+ if t.M != nil { // want "comparison of function M != nil is always true"
+ return
+ }
+ }
+ panic("can't happen")
+}