]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: remove Pointer from builtin/unsafe.go
authorMatthew Dempsky <mdempsky@google.com>
Mon, 12 Sep 2016 20:27:36 +0000 (13:27 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Mon, 12 Sep 2016 20:44:28 +0000 (20:44 +0000)
We already explicitly construct the "unsafe.Pointer" type in typeinit
because we need it for Types[TUNSAFEPTR]. No point in also having it
in builtin/unsafe.go if it just means (*importer).importtype needs to
fix it.

Change-Id: Ife8a5a73cbbe2bfcabe8b25ee4f7e0f5fd0570b4
Reviewed-on: https://go-review.googlesource.com/29082
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/compile/internal/gc/bimport.go
src/cmd/compile/internal/gc/builtin.go
src/cmd/compile/internal/gc/builtin/unsafe.go
src/cmd/compile/internal/gc/universe.go

index 37ce784e7a4c8194a7a3a302ecc2af68abe8e092..713a7f4610ab8d2ac5a1ddeee6a73d7199de2922 100644 (file)
@@ -390,13 +390,6 @@ func (p *importer) newtyp(etype EType) *Type {
 
 // importtype declares that pt, an imported named type, has underlying type t.
 func (p *importer) importtype(pt, t *Type) {
-       // override declaration in unsafe.go for Pointer.
-       // there is no way in Go code to define unsafe.Pointer
-       // so we have to supply it.
-       if incannedimport != 0 && importpkg.Name == "unsafe" && pt.Nod.Sym.Name == "Pointer" {
-               t = Types[TUNSAFEPTR]
-       }
-
        if pt.Etype == TFORW {
                n := pt.Nod
                copytype(pt.Nod, t)
index a52bb053e1c1e6ffb9b4ff93333a20f232d4b90b..9df4cc2a12474eb2e5344d3f742eddf3c8549a2c 100644 (file)
@@ -106,6 +106,5 @@ const runtimeimport = "" +
        "\x11msanwrite\x00\x04\x16\x96\x03\x00`\x16\x98\x03\x00`\x00\v\xf8\x01\v\x00\x01\x00\n$$\n"
 
 const unsafeimport = "" +
-       "version 2\n\n\x00\x00\x01\vunsafe\x00\x05\r\rPointer\x00\x16\x00\t\x0fOff" +
-       "setof\x00\x01:\x00\x01\x16\x00\t\vSizeof\x00\x01:\x00\x01\x16\x00\t\rAlignof\x00\x01:\x00" +
-       "\x01\x16\x00\v\b\v\x00\x01\x00\n$$\n"
+       "version 2\n\n\x00\x00\x01\vunsafe\x00\t\x0fOffsetof\x00\x01:\x00\x01\x16\x00\t" +
+       "\vSizeof\x00\x01:\x00\x01\x16\x00\t\rAlignof\x00\x01:\x00\x01\x16\x00\v\x06\v\x00\x01\x00\n$$\n"
index 6e25db65cc622b5fb79ccd37ba882314cc19b3fe..2417e7e1581cfc1be821658614f75ef91a3c0239 100644 (file)
@@ -10,7 +10,7 @@
 
 package unsafe
 
-type Pointer uintptr // not really; filled in by compiler
+// Type Pointer is constructed directly in typeinit.
 
 // return types here are ignored; see unsafe.go
 func Offsetof(any) uintptr
index 1e5650ffc23599c6a8b7a3cbf15a3300e04d03ea..9ca205ce6a63057f601abac344d688f5bc34fcdd 100644 (file)
@@ -163,7 +163,6 @@ func typeinit() {
        t.Sym = Pkglookup("Pointer", unsafepkg)
        t.Sym.Def = typenod(t)
        t.Sym.Def.Name = new(Name)
-
        dowidth(Types[TUNSAFEPTR])
 
        Tptr = TPTR32