mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/link: escape % characters in symbols when reporting errors
Generic function symbols sometimes have % in them, like:
main.B2[%2eshape.string_0].m2·f
Which confuses this code because it doesn't esacpe % when
using this string as a format string, instead of a format argument.
Or could we get rid of the . -> %2e rewrite somehow?
I think it comes from LinkString.
Change-Id: I3275501f44cf30485e9d4577e0dfa77996d4939e
Reviewed-on: https://go-review.googlesource.com/c/go/+/357837
Trust: Keith Randall <khr@golang.org>
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dan Scales <danscales@google.com>
This commit is contained in:
parent
72b6a89ca5
commit
f92c8f07ac
1 changed files with 3 additions and 1 deletions
|
|
@ -2592,7 +2592,9 @@ type ErrorReporter struct {
|
|||
//
|
||||
func (reporter *ErrorReporter) Errorf(s Sym, format string, args ...interface{}) {
|
||||
if s != 0 && reporter.ldr.SymName(s) != "" {
|
||||
format = reporter.ldr.SymName(s) + ": " + format
|
||||
// Note: Replace is needed here because symbol names might have % in them,
|
||||
// due to the use of LinkString for names of instantiating types.
|
||||
format = strings.Replace(reporter.ldr.SymName(s), "%", "%%", -1) + ": " + format
|
||||
} else {
|
||||
format = fmt.Sprintf("sym %d: %s", s, format)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue