From 2933e938bf9451a6f4551056b672cd7fc467e94d Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Tue, 19 Nov 2019 10:09:28 -0500 Subject: [PATCH] cmd/cgo: better handling for '.' in pkgpath for gccgo Update gccgoPkgpathToSymbolNew() to bring it into conformance with the way that gccgo now handles packagepaths with embedded dots (see CL 200838). See also https://gcc.gnu.org/PR61880, a related bug. Updates #35623. Change-Id: I32f064320b9af387fc17771530c745a9e3003c20 Reviewed-on: https://go-review.googlesource.com/c/go/+/207957 Run-TryBot: Than McIntosh TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- src/cmd/cgo/out.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go index 6bee9b1909..e32a3a607b 100644 --- a/src/cmd/cgo/out.go +++ b/src/cmd/cgo/out.go @@ -1313,8 +1313,10 @@ func gccgoPkgpathToSymbolNew(ppath string) string { for _, c := range []byte(ppath) { switch { case 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z', - '0' <= c && c <= '9', c == '_', c == '.': + '0' <= c && c <= '9', c == '_': bsl = append(bsl, c) + case c == '.': + bsl = append(bsl, ".x2e"...) default: changed = true encbytes := []byte(fmt.Sprintf("..z%02x", c)) -- 2.50.0