summaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2019-11-19 23:04:08 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2019-11-19 23:04:08 +0000
commit0c6ce0ae553a9a73bf4eb27d16ee751167806f8d (patch)
tree243f5f5dc8187a7e9ad55250bf754fc5f47e5477 /libgo
parentfce6467b1ef93c162f955a10d9bdb2bfb2e12c1c (diff)
libgo: better cmd/cgo handling for '.' in pkgpath
Updates cgo's gccgoPkgpathToSymbolNew() to bring it into conformance with the way that gccgo now handles package paths with embedded dots (see CL 200838). See also https://gcc.gnu.org/PR61880, a related bug. This CL is a copy of CL 207957 in the main Go repo. Updates golang/go#35623. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/207977 From-SVN: r278470
Diffstat (limited to 'libgo')
-rw-r--r--libgo/go/cmd/cgo/out.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/libgo/go/cmd/cgo/out.go b/libgo/go/cmd/cgo/out.go
index 7282933e3c5..97886e1abd0 100644
--- a/libgo/go/cmd/cgo/out.go
+++ b/libgo/go/cmd/cgo/out.go
@@ -1318,8 +1318,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))