mirror of
https://github.com/golang/go
synced 2024-11-26 14:36:52 -07:00
doc: add description of new framepointer vet check
Update #43014 Change-Id: I5fbfaa16e6acb8859fd0b1188f532f5a225f6349 Reviewed-on: https://go-review.googlesource.com/c/go/+/276373 Trust: Keith Randall <khr@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
This commit is contained in:
parent
31496cfde5
commit
ae9b442df2
@ -293,6 +293,18 @@ Do not send CLs removing the interior tags from such phrases.
|
|||||||
<!-- CL 235677: https://golang.org/cl/235677: cmd/vet: bring in pass to catch invalid uses of testing.T in goroutines -->
|
<!-- CL 235677: https://golang.org/cl/235677: cmd/vet: bring in pass to catch invalid uses of testing.T in goroutines -->
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p><!-- CL 248686, CL 276372 -->
|
||||||
|
The vet tool now warns about amd64 assembly that clobbers the BP
|
||||||
|
register (the frame pointer) without saving and restoring it,
|
||||||
|
contrary to the calling convention. Code that doesn't preserve the
|
||||||
|
BP register must be modified to either not use BP at all or preserve
|
||||||
|
BP by saving and restoring it. An easy way to preserve BP is to set
|
||||||
|
the frame size to a nonzero value, which causes the generated
|
||||||
|
prologue and epilogue to preserve the BP register for you.
|
||||||
|
See <a href="https://golang.org/cl/248260">CL 248260</a> for example
|
||||||
|
fixes.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h2 id="runtime">Runtime</h2>
|
<h2 id="runtime">Runtime</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
Loading…
Reference in New Issue
Block a user