]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: simplify slicebytes
authorJosh Bleecher Snyder <josharian@gmail.com>
Sat, 11 Apr 2020 04:33:27 +0000 (21:33 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Mon, 20 Apr 2020 15:35:23 +0000 (15:35 +0000)
Use slicesym to implement. Remove len param.

Passes toolstash-check.

Change-Id: Ia6d4fb2a3b476eceeba60979b4dd82b634b43939
Reviewed-on: https://go-review.googlesource.com/c/go/+/228887
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/obj.go
src/cmd/compile/internal/gc/sinit.go

index b8fb74940532177a060732123e3ccc95e329c6b1..95a1a3664ce4b7d842a4ac800813eac7d47cd2c5 100644 (file)
@@ -365,11 +365,12 @@ func stringsym(pos src.XPos, s string) (data *obj.LSym) {
 
 var slicebytes_gen int
 
-func slicebytes(nam *Node, s string, len int) {
+func slicebytes(nam *Node, s string) {
        slicebytes_gen++
        symname := fmt.Sprintf(".gobytes.%d", slicebytes_gen)
        sym := localpkg.Lookup(symname)
-       sym.Def = asTypesNode(newname(sym))
+       symnode := newname(sym)
+       sym.Def = asTypesNode(symnode)
 
        lsym := sym.Linksym()
        off := dsname(lsym, 0, s, nam.Pos, "slice")
@@ -378,11 +379,7 @@ func slicebytes(nam *Node, s string, len int) {
        if nam.Op != ONAME {
                Fatalf("slicebytes %v", nam)
        }
-       nsym := nam.Sym.Linksym()
-       off = int(nam.Xoffset)
-       off = dsymptr(nsym, off, lsym, 0)
-       off = duintptr(nsym, off, uint64(len))
-       duintptr(nsym, off, uint64(len))
+       slicesym(nam, symnode, int64(len(s)))
 }
 
 func dsname(s *obj.LSym, off int, t string, pos src.XPos, what string) int {
index 4dbf616937700be31a957d24dc7f4d21bdfdb5ab..016457654637efda863f8ce4edde7f8ba36dbe1e 100644 (file)
@@ -208,7 +208,7 @@ func (s *InitSchedule) staticassign(l *Node, r *Node) bool {
        case OSTR2BYTES:
                if l.Class() == PEXTERN && r.Left.Op == OLITERAL {
                        sval := strlit(r.Left)
-                       slicebytes(l, sval, len(sval))
+                       slicebytes(l, sval)
                        return true
                }