| // errorcheck -0 -race |
| |
| //go:build (linux && amd64) || (linux && ppc64le) || (darwin && amd64) || (freebsd && amd64) || (netbsd && amd64) || (windows && amd64) |
| |
| // Copyright 2016 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 sample |
| |
| type Html struct { |
| headerIDs map[string]int |
| } |
| |
| // We don't want to see: |
| // internal error: (*Html).xyzzy autotmp_3 (type *int) recorded as live on entry, p.Pc=0 |
| // or (now, with the error caught earlier) |
| // Treating auto as if it were arg, func (*Html).xyzzy, node ... |
| // caused by racewalker inserting instrumentation before an OAS where the Ninit |
| // of the OAS defines part of its right-hand-side. (I.e., the race instrumentation |
| // references a variable before it is defined.) |
| func (options *Html) xyzzy(id string) string { |
| for count, found := options.headerIDs[id]; found; count, found = options.headerIDs[id] { |
| _ = count |
| } |
| return "" |
| } |