mirror of
https://github.com/golang/go
synced 2024-11-08 19:16:25 -07:00
48ef01051a
These new calls should not prevent NOSPLIT promotion, like the old ones. These new calls should not prevent racefuncenter/exit removal. (The latter was already true, as the new calls are not yet lowered to StaticCalls at the point where racefuncenter/exit removal is done.) Add tests to make sure we don't regress (again). Fixes #31219 Change-Id: I3fb6b17cdd32c425829f1e2498defa813a5a9ace Reviewed-on: https://go-review.googlesource.com/c/go/+/170639 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ilya Tocar <ilya.tocar@intel.com>
21 lines
581 B
Go
21 lines
581 B
Go
// asmcheck -race
|
|
|
|
// Copyright 2019 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 codegen
|
|
|
|
// Check that we elide racefuncenter/racefuncexit for
|
|
// functions with no calls (but which might panic
|
|
// in various ways). See issue 31219.
|
|
// amd64:-"CALL.*racefuncenter.*"
|
|
func RaceMightPanic(a []int, i, j, k, s int) {
|
|
var b [4]int
|
|
_ = b[i] // panicIndex
|
|
_ = a[i:j] // panicSlice
|
|
_ = a[i:j:k] // also panicSlice
|
|
_ = i << s // panicShift
|
|
_ = i / j // panicDivide
|
|
}
|