mirror of
https://github.com/golang/go
synced 2024-09-25 05:10:12 -06:00
cmd/go: fix cgo error output rewrite
for example, we now rewrite *_Ctype_int to *C.int. Fixes #6781. LGTM=iant R=golang-codereviews, rsc, iant CC=golang-codereviews https://golang.org/cl/36860043
This commit is contained in:
parent
e8ecd9f67a
commit
c36dd4abdc
@ -1302,6 +1302,7 @@ func relPaths(paths []string) []string {
|
||||
var errPrintedOutput = errors.New("already printed output - no need to show error")
|
||||
|
||||
var cgoLine = regexp.MustCompile(`\[[^\[\]]+\.cgo1\.go:[0-9]+\]`)
|
||||
var cgoTypeSigRe = regexp.MustCompile(`\b_Ctype_\B`)
|
||||
|
||||
// run runs the command given by cmdline in the directory dir.
|
||||
// If the command fails, run prints information about the failure
|
||||
@ -1328,11 +1329,11 @@ func (b *builder) processOutput(out []byte) string {
|
||||
messages := string(out)
|
||||
// Fix up output referring to cgo-generated code to be more readable.
|
||||
// Replace x.go:19[/tmp/.../x.cgo1.go:18] with x.go:19.
|
||||
// Replace _Ctype_foo with C.foo.
|
||||
// Replace *[100]_Ctype_foo with *[100]C.foo.
|
||||
// If we're using -x, assume we're debugging and want the full dump, so disable the rewrite.
|
||||
if !buildX && cgoLine.MatchString(messages) {
|
||||
messages = cgoLine.ReplaceAllString(messages, "")
|
||||
messages = strings.Replace(messages, "type _Ctype_", "type C.", -1)
|
||||
messages = cgoTypeSigRe.ReplaceAllString(messages, "C.")
|
||||
}
|
||||
return messages
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user