841d865a56
My previous fix for issue 23179 was incomplete; it turns out that if an unnamed parameter is below a specific size threshold, it gets register-promoted away by the compiler (hence not encountered during some parts of DWARF inline info processing), but if it is sufficiently large, it is allocated to the stack as a named variable and treated as a regular parameter by DWARF generation. Interestingly, something in the ppc64le build of k8s causes an unnamed parameter to be retained (where on amd64 it is deleted), meaning that this wasn't caught in my amd64 testing. The fix is to insure that "_" params are treated in the same way that "~r%d" return temps are when matching up post-optimization inlined routine params with pre-inlining declarations. I've also updated the test case to include a "_" parameter with a very large size, which also triggers the bug on amd64. Fixes #23179. Change-Id: I961c84cc7a873ad3f8f91db098a5e13896c4856e Reviewed-on: https://go-review.googlesource.com/84975 Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Cherry Zhang <cherryyz@google.com> Reviewed-by: Heschi Kreinick <heschi@google.com> |
||
---|---|---|
.github | ||
api | ||
doc | ||
lib/time | ||
misc | ||
src | ||
test | ||
.gitattributes | ||
.gitignore | ||
AUTHORS | ||
CONTRIBUTING.md | ||
CONTRIBUTORS | ||
favicon.ico | ||
LICENSE | ||
PATENTS | ||
README.md | ||
robots.txt |
The Go Programming Language
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Download and Install
Binary Distributions
Official binary distributions are available at https://golang.org/dl/.
After downloading a binary release, visit https://golang.org/doc/install or load doc/install.html in your web browser for installation instructions.
Install From Source
If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source or load doc/install-source.html in your web browser for source installation instructions.
Contributing
Go is the work of hundreds of contributors. We appreciate your help!
To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html
Note that the Go project does not use GitHub pull requests, and that we use the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.