-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Description
What version of Go are you using (go version
)?
$ go version go version go1.12.5 darwin/amd64 $ go-head version go version devel +919594830f Tue Jul 23 23:42:43 2019 +0000 darwin/amd64
Does this issue reproduce with the latest release?
It does with both versions reported above.
What operating system and processor architecture are you using (go env
)?
go env
Output
$ go env GOARCH="amd64" GOBIN="" GOCACHE="/Users/ramon/Library/Caches/go-build" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin" GOPATH="/Users/ramon/Documents/go" GOPROXY="" GORACE="" GOROOT="/usr/local/go" GOTMPDIR="" GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64" GCCGO="gccgo" CC="clang" CXX="clang++" CGO_ENABLED="1" GOMOD="/dev/null" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/fm/tzdsx49104v20lr4m55_g43w0000gn/T/go-build935976489=/tmp/go-build -gno-record-gcc-switches -fno-common"
What did you do?
I saw this blogpost and wanted to try out the SSA HTML thing. I thus wrote the main.go
file and ran the command:
$ env GOSSAFUNC=main go build main.go
# runtime
<unknown line number>: internal compiler error: 'main': open ssa.html: permission denied
Please file a bug report including a short program that triggers the error.
https://golang.org/issue/new
NOTE: as i have go modules enabled, I also ran go mod init ssatest
.
the permissions in the directory are rwx for all users.
a normal build with go build .
, or go build main.go
works fine.
And just for demonstration; when changing the file to this:
main.go
package mainimport "fmt"
func main() {
fmt.Println(2)
test()
}
func test() {
fmt.Println(3)
}
$ env GOSSAFUNC=test go build main.go
# command-line-arguments
dumped SSA to ./ssa.html
so it seems to only occur when using GOSSAFUNC=main
.
For the sake of completion:
output with GOSSAFUNC=main+
$ env GOSSAFUNC=main+ go-head build main.go # runtime generating SSA for main buildssa-enter buildssa-body . DCL l(111) . . NAME-runtime.g a(true) g(1) l(111) x(0) class(PAUTO) tc(1) used PTR-*g. AS l(111) colas(true) tc(1)
. . NAME-runtime.g a(true) g(1) l(111) x(0) class(PAUTO) tc(1) used PTR-*g
. . END l(111) tc(1) PTR-*g
. . . NAME-runtime.getg a(true) l(18) x(0) class(PFUNC) tc(1) used FUNC-func() *g. AS l(115) tc(1) hascall
. . DOTPTR l(115) x(304) tc(1) assigned hascall runtime.racectx uintptr
. . . DOTPTR l(115) x(0) tc(1) hascall runtime.g0 PTR-*g
. . . . DOTPTR l(115) x(48) tc(1) hascall runtime.m PTR-*m
. . . . . NAME-runtime.g a(true) g(1) l(111) x(0) class(PAUTO) tc(1) used PTR-*g
. . LITERAL-0 l(115) tc(1) uintptr. IF l(120) tc(1)
. . LITERAL-true l(120) tc(1) bool
. IF-body
. . AS l(121) tc(1)
. . . NAME-runtime.maxstacksize a(true) l(485) x(0) class(PEXTERN) tc(1) assigned used uintptr
. . . LITERAL-1000000000 l(121) tc(1) uintptr. AS l(127) tc(1)
. . NAME-runtime.mainStarted a(true) l(101) x(0) class(PEXTERN) tc(1) assigned used bool
. . LITERAL-true tc(1) runtime.true bool. IF l(129) tc(1)
. . LITERAL-true l(129) tc(1) bool
. IF-body
. . CALLFUNC l(130) tc(1) hascall
. . . NAME-runtime.systemstack a(true) l(54) x(0) class(PFUNC) tc(1) used FUNC-func(func())
. . CALLFUNC-rlist
. . . NAME-runtime.main.func1 a(true) l(130) x(0) class(PFUNC) tc(1) FUNC-func(). RETJMP l(141) x(2285)
. AS-init
. . AS l(3541) tc(1)
. . . NAME-runtime..autotmp_15 a(true) l(3541) x(0) class(PAUTO) esc(N) tc(1) assigned used PTR-*g
. . . END l(3541) tc(1) PTR-*g
. . . . NAME-runtime.getg a(true) l(18) x(0) class(PFUNC) tc(1) used FUNC-func() *g
. AS l(3541) tc(1) implicit(true) hascall uint32
. . DOTPTR l(3541) x(628) tc(1) assigned hascall runtime.lockedInt uint32
. . . DOTPTR l(3541) x(48) tc(1) hascall runtime.m PTR-*m
. . . . NAME-runtime..autotmp_15 a(true) l(3541) x(0) class(PAUTO) esc(N) tc(1) assigned used PTR-*g
. . ADD l(3541) tc(1) hascall uint32
. . . DOTPTR l(3541) x(628) tc(1) assigned hascall runtime.lockedInt uint32
. . . . DOTPTR l(3541) x(48) tc(1) hascall runtime.m PTR-*m
. . . . . NAME-runtime..autotmp_15 a(true) l(3541) x(0) class(PAUTO) esc(N) tc(1) assigned used PTR-*g
. . . LITERAL-1 l(3541) tc(1) uint32. RETJMP l(3542) x(2286)
. IF l(3499) tc(1)
. . LITERAL-false l(3499) tc(1) bool. DCL l(3502)
. . NAME-runtime.g a(true) l(3502) x(0) class(PAUTO) tc(1) used PTR-*g. AS l(3502) colas(true) tc(1)
. . NAME-runtime.g a(true) l(3502) x(0) class(PAUTO) tc(1) used PTR-*g
. . END l(3502) tc(1) PTR-*g
. . . NAME-runtime.getg a(true) l(18) x(0) class(PFUNC) tc(1) used FUNC-func() *g. DCL l(3503)
. . NAME-runtime.gp a(true) l(206) x(0) class(PAUTO) tc(1) assigned used PTR-*guintptr. DCL l(3503)
. . NAME-runtime.g a(true) l(206) x(0) class(PAUTO) tc(1) assigned used PTR-*g. AS l(3503) tc(1) hascall
. . NAME-runtime.gp a(true) l(206) x(0) class(PAUTO) tc(1) assigned used PTR-*guintptr
. . ADDR l(3503) esc(no) tc(1) implicit(true) hascall PTR-*guintptr
. . . DOTPTR l(3503) x(360) tc(1) addrtaken hascall runtime.lockedg runtime.guintptr
. . . . DOTPTR l(3503) x(48) tc(1) hascall runtime.m PTR-*m
. . . . . NAME-runtime.g a(true) l(3502) x(0) class(PAUTO) tc(1) used PTR-*g. BLOCK l(3503)
. BLOCK-list
. . AS l(3503) tc(1)
. . . NAME-runtime.g a(true) l(206) x(0) class(PAUTO) tc(1) assigned used PTR-*g
. . . NAME-runtime.g a(true) l(3502) x(0) class(PAUTO) tc(1) used PTR-*g. RETJMP l(3503) x(2287)
. AS l(206) tc(1) hascall
. . DEREF l(206) tc(1) assigned hascall runtime.guintptr
. . . NAME-runtime.gp a(true) l(206) x(0) class(PAUTO) tc(1) assigned used PTR-*guintptr
. . CONVNOP l(206) tc(1) runtime.guintptr
. . . CONVNOP l(206) tc(1) UNSAFEPTR-unsafe.Pointer
. . . . NAME-runtime.g a(true) l(206) x(0) class(PAUTO) tc(1) assigned used PTR-*g. LABEL l(3503) tc(1) runtime..i2
. DCL l(3504)
. . NAME-runtime.mp a(true) l(244) x(0) class(PAUTO) tc(1) assigned used PTR-*muintptr. DCL l(3504)
. . NAME-runtime.m a(true) l(244) x(0) class(PAUTO) tc(1) assigned used PTR-*m. AS l(3504) tc(1) hascall
. . NAME-runtime.mp a(true) l(244) x(0) class(PAUTO) tc(1) assigned used PTR-*muintptr
. . ADDR l(3504) esc(no) tc(1) implicit(true) hascall PTR-*muintptr
. . . DOTPTR l(3504) x(216) tc(1) addrtaken hascall runtime.lockedm runtime.muintptr
. . . . NAME-runtime.g a(true) l(3502) x(0) class(PAUTO) tc(1) used PTR-*g. BLOCK l(3504)
. BLOCK-list
. . AS l(3504) tc(1) hascall
. . . NAME-runtime.m a(true) l(244) x(0) class(PAUTO) tc(1) assigned used PTR-*m
. . . DOTPTR l(3504) x(48) tc(1) hascall runtime.m PTR-*m
. . . . NAME-runtime.g a(true) l(3502) x(0) class(PAUTO) tc(1) used PTR-*g. RETJMP l(3504) x(2288)
. AS l(244) tc(1) hascall
. . DEREF l(244) tc(1) assigned hascall runtime.muintptr
. . . NAME-runtime.mp a(true) l(244) x(0) class(PAUTO) tc(1) assigned used PTR-*muintptr
. . CONVNOP l(244) tc(1) runtime.muintptr
. . . CONVNOP l(244) tc(1) UNSAFEPTR-unsafe.Pointer
. . . . NAME-runtime.m a(true) l(244) x(0) class(PAUTO) tc(1) assigned used PTR-*m. LABEL l(3504) tc(1) runtime..i3
. LABEL l(3542) tc(1) runtime..i1
. LABEL l(141) tc(1) runtime..i0
. IF l(143) tc(1)
. . NE l(143) tc(1) hascall bool
. . . DOTPTR l(143) x(48) tc(1) hascall runtime.m PTR-*m
. . . . NAME-runtime.g a(true) g(1) l(111) x(0) class(PAUTO) tc(1) used PTR-*g
. . . ADDR l(143) esc(no) tc(1) PTR-*m
. . . . NAME-runtime.m0 a(true) l(80) x(0) class(PEXTERN) tc(1) addrtaken used runtime.m
. IF-body
. . CALLFUNC l(144) tc(1) hascall
. . . NAME-runtime.throw a(true) l(607) x(0) class(PFUNC) tc(1) used FUNC-func(string)
. . CALLFUNC-rlist
. . . LITERAL-"runtime.main not on m0" l(144) tc(1) string. CALLFUNC l(147) tc(1) hascall
. . NAME-runtime.runtime_init a(true) l(86) x(0) class(PFUNC) tc(1) used FUNC-func(). IF-init
. . AS l(148) tc(1) hascall
. . . NAME-runtime..autotmp_12 a(true) l(148) x(0) class(PAUTO) esc(N) tc(1) assigned used int64
. . . CALLFUNC l(148) tc(1) hascall int64
. . . . NAME-runtime.nanotime a(true) l(226) x(0) class(PFUNC) tc(1) used FUNC-func() int64
. IF l(148) tc(1)
. . EQ l(148) tc(1) bool
. . . NAME-runtime..autotmp_12 a(true) l(148) x(0) class(PAUTO) esc(N) tc(1) assigned used int64
. . . LITERAL-0 l(148) tc(1) int64
. IF-rlist
. . VARKILL l(148) tc(1)
. . . NAME-runtime..autotmp_12 a(true) l(148) x(0) class(PAUTO) esc(N) tc(1) assigned used int64
. IF-body
. . VARKILL l(148) tc(1)
. . . NAME-runtime..autotmp_12 a(true) l(148) x(0) class(PAUTO) esc(N) tc(1) assigned used int64. . CALLFUNC l(149) tc(1) hascall
. . . NAME-runtime.throw a(true) l(607) x(0) class(PFUNC) tc(1) used FUNC-func(string)
. . CALLFUNC-rlist
. . . LITERAL-"nanotime returning zero" l(149) tc(1) string. DCL l(153)
. . NAME-runtime.needUnlock a(true) g(1) l(153) x(0) class(PAUTO) tc(1) addrtaken assigned used bool. AS l(153) colas(true) tc(1)
. . NAME-runtime.needUnlock a(true) g(1) l(153) x(0) class(PAUTO) tc(1) addrtaken assigned used bool
. . LITERAL-true tc(1) runtime.true bool. DEFER l(154) tc(1)
. . CALLFUNC l(158) tc(1) hascall STRUCT-()
. . . NAME-runtime.main.func2 a(true) l(154) x(0) class(PFUNC) tc(1) FUNC-func(*bool)
. . CALLFUNC-rlist
. . . ADDR l(154) tc(1) PTR-*bool
. . . . NAME-runtime.needUnlock a(true) g(1) l(153) x(0) class(PAUTO) tc(1) addrtaken assigned used bool. AS l(161) tc(1) hascall
. . NAME-runtime.runtimeInitTime a(true) l(104) x(0) class(PEXTERN) tc(1) assigned used int64
. . CALLFUNC l(161) tc(1) hascall int64
. . . NAME-runtime.nanotime a(true) l(226) x(0) class(PFUNC) tc(1) used FUNC-func() int64. CALLFUNC l(163) tc(1) hascall
. . NAME-runtime.gcenable a(true) l(206) x(0) class(PFUNC) tc(1) used FUNC-func(). AS l(165) tc(1) hascall
. . NAME-runtime.main_init_done a(true) l(95) x(0) class(PEXTERN) tc(1) assigned used CHAN-chan bool
. . CALLFUNC l(165) tc(1) hascall CHAN-chan bool
. . . NAME-runtime.makechan a(true) x(0) class(PFUNC) tc(1) used FUNC-func(*byte, int) chan bool
. . CALLFUNC-rlist
. . . ADDR a(true) l(165) tc(1) PTR-*uint8
. . . . NAME-type.chan bool a(true) x(0) class(PEXTERN) tc(1) uint8. . . LITERAL-0 l(165) tc(1) int
. IF l(166) tc(1)
. . NAME-runtime.iscgo a(true) l(32) x(0) class(PEXTERN) tc(1) used bool
. IF-body
. . IF l(167) tc(1)
. . . EQ l(167) tc(1) bool
. . . . NAME-runtime._cgo_thread_start a(true) l(23) x(0) class(PEXTERN) tc(1) used UNSAFEPTR-unsafe.Pointer
. . . . LITERAL-0 tc(1) .nil UNSAFEPTR-unsafe.Pointer
. . IF-body
. . . CALLFUNC l(168) tc(1) hascall
. . . . NAME-runtime.throw a(true) l(607) x(0) class(PFUNC) tc(1) used FUNC-func(string)
. . . CALLFUNC-rlist
. . . . LITERAL-"_cgo_thread_start missing" l(168) tc(1) string. . IF l(170) tc(1)
. . . LITERAL-true l(170) tc(1) bool
. . IF-body
. . . IF l(171) tc(1)
. . . . EQ l(171) tc(1) bool
. . . . . NAME-runtime._cgo_setenv a(true) l(47) x(0) class(PEXTERN) tc(1) used UNSAFEPTR-unsafe.Pointer
. . . . . LITERAL-0 tc(1) .nil UNSAFEPTR-unsafe.Pointer
. . . IF-body
. . . . CALLFUNC l(172) tc(1) hascall
. . . . . NAME-runtime.throw a(true) l(607) x(0) class(PFUNC) tc(1) used FUNC-func(string)
. . . . CALLFUNC-rlist
. . . . . LITERAL-"_cgo_setenv missing" l(172) tc(1) string. . . IF l(174) tc(1)
. . . . EQ l(174) tc(1) bool
. . . . . NAME-runtime._cgo_unsetenv a(true) l(48) x(0) class(PEXTERN) tc(1) used UNSAFEPTR-unsafe.Pointer
. . . . . LITERAL-0 tc(1) .nil UNSAFEPTR-unsafe.Pointer
. . . IF-body
. . . . CALLFUNC l(175) tc(1) hascall
. . . . . NAME-runtime.throw a(true) l(607) x(0) class(PFUNC) tc(1) used FUNC-func(string)
. . . . CALLFUNC-rlist
. . . . . LITERAL-"_cgo_unsetenv missing" l(175) tc(1) string. . IF l(178) tc(1)
. . . EQ l(178) tc(1) bool
. . . . NAME-runtime._cgo_notify_runtime_init_done a(true) l(25) x(0) class(PEXTERN) tc(1) used UNSAFEPTR-unsafe.Pointer
. . . . LITERAL-0 tc(1) .nil UNSAFEPTR-unsafe.Pointer
. . IF-body
. . . CALLFUNC l(179) tc(1) hascall
. . . . NAME-runtime.throw a(true) l(607) x(0) class(PFUNC) tc(1) used FUNC-func(string)
. . . CALLFUNC-rlist
. . . . LITERAL-"_cgo_notify_runtime_init_done missing" l(179) tc(1) string. . RETJMP l(183) x(2289)
. . IF l(1870) tc(1)
. . . LITERAL-false l(1870) tc(1) bool. . IF-init
. . . AS l(1873) tc(1) hascall
. . . . NAME-runtime..autotmp_13 a(true) l(1873) x(0) class(PAUTO) esc(N) tc(1) assigned used bool
. . . . CALLFUNC l(1873) tc(1) hascall bool
. . . . . NAME-atomic.Cas a(true) l(12) x(0) class(PFUNC) tc(1) used FUNC-func(*uint32, uint32, uint32) bool
. . . . CALLFUNC-rlist
. . . . . ADDR l(1873) esc(no) tc(1) PTR-*uint32
. . . . . . DOT l(1873) x(32) tc(1) addrtaken runtime.haveTemplateThread uint32
. . . . . . . NAME-runtime.newmHandoff a(true) l(1789) x(0) class(PEXTERN) tc(1) addrtaken assigned used STRUCT-struct { lock mutex; newm muintptr; waiting bool; wake note; haveTemplateThread uint32 }. . . . . LITERAL-0 l(1873) tc(1) uint32
. . . . . LITERAL-1 l(1873) tc(1) uint32
. . IF l(1873) tc(1)
. . . NOT l(1873) tc(1) bool
. . . . NAME-runtime..autotmp_13 a(true) l(1873) x(0) class(PAUTO) esc(N) tc(1) assigned used bool
. . IF-rlist
. . . VARKILL l(1873) tc(1)
. . . . NAME-runtime..autotmp_13 a(true) l(1873) x(0) class(PAUTO) esc(N) tc(1) assigned used bool
. . IF-body
. . . VARKILL l(1873) tc(1)
. . . . NAME-runtime..autotmp_13 a(true) l(1873) x(0) class(PAUTO) esc(N) tc(1) assigned used bool. . . GOTO l(183) tc(1) runtime..i4
. . CALLFUNC l(1876) tc(1) hascall
. . . NAME-runtime.newm a(true) l(1811) x(0) class(PFUNC) tc(1) used FUNC-func(func(), *p)
. . CALLFUNC-rlist
. . . NAME-runtime.templateThread a(true) l(1891) x(0) class(PFUNC) tc(1) used FUNC-func(). . . LITERAL-0 tc(1) .nil PTR-*p
. . LABEL l(183) tc(1) runtime..i4
. . CALLFUNC l(184) tc(1) hascall int32
. . . NAME-runtime.cgocall a(true) l(94) x(0) class(PFUNC) tc(1) used FUNC-func(unsafe.Pointer, unsafe.Pointer) int32
. . CALLFUNC-rlist
. . . NAME-runtime._cgo_notify_runtime_init_done a(true) l(25) x(0) class(PEXTERN) tc(1) used UNSAFEPTR-unsafe.Pointer. . . LITERAL-0 tc(1) .nil UNSAFEPTR-unsafe.Pointer
. DCL l(187)
. . NAME-runtime.fn a(true) g(1) l(187) x(0) class(PAUTO) tc(1) assigned used FUNC-func(). AS l(187) colas(true) tc(1)
. . NAME-runtime.fn a(true) g(1) l(187) x(0) class(PAUTO) tc(1) assigned used FUNC-func()
. . NAME-runtime.main_init a(true) l(89) x(0) class(PFUNC) tc(1) used FUNC-func(). CALLFUNC l(188) tc(1) hascall
. . NAME-runtime.fn a(true) g(1) l(187) x(0) class(PAUTO) tc(1) assigned used FUNC-func(). CALLFUNC l(189) tc(1) hascall
. . NAME-runtime.closechan a(true) x(0) class(PFUNC) tc(1) used FUNC-func(chan bool)
. CALLFUNC-rlist
. . NAME-runtime.main_init_done a(true) l(95) x(0) class(PEXTERN) tc(1) assigned used CHAN-chan bool. AS l(191) tc(1)
. . NAME-runtime.needUnlock a(true) g(1) l(153) x(0) class(PAUTO) tc(1) addrtaken assigned used bool
. . LITERAL-false tc(1) runtime.false bool. CALLFUNC l(192) tc(1) hascall
. . NAME-runtime.unlockOSThread a(true) l(3585) x(0) class(PFUNC) tc(1) used FUNC-func(). IF-init
. . AS l(194) tc(1)
. . . NAME-runtime..autotmp_13 a(true) l(1873) x(0) class(PAUTO) esc(N) tc(1) assigned used bool
. . . NAME-runtime.isarchive a(true) l(879) x(0) class(PEXTERN) tc(1) used bool. . IF l(194)
. . . NAME-runtime..autotmp_13 a(true) l(1873) x(0) class(PAUTO) esc(N) tc(1) assigned used bool
. . IF-rlist
. . . AS l(194) tc(1)
. . . . NAME-runtime..autotmp_13 a(true) l(1873) x(0) class(PAUTO) esc(N) tc(1) assigned used bool
. . . . NAME-runtime.islibrary a(true) l(878) x(0) class(PEXTERN) tc(1) used bool
. IF l(194) tc(1)
. . CONVNOP l(194) tc(1) bool
. . . NAME-runtime..autotmp_13 a(true) l(1873) x(0) class(PAUTO) esc(N) tc(1) assigned used bool
. IF-rlist
. . VARKILL l(194) tc(1)
. . . NAME-runtime..autotmp_13 a(true) l(1873) x(0) class(PAUTO) esc(N) tc(1) assigned used bool
. IF-body
. . VARKILL l(194) tc(1)
. . . NAME-runtime..autotmp_13 a(true) l(1873) x(0) class(PAUTO) esc(N) tc(1) assigned used bool. . RETURN l(197) tc(1)
. AS l(199) tc(1)
. . NAME-runtime.fn a(true) g(1) l(187) x(0) class(PAUTO) tc(1) assigned used FUNC-func()
. . NAME-runtime.main_main a(true) l(98) x(0) class(PFUNC) tc(1) used FUNC-func(). CALLFUNC l(200) tc(1) hascall
. . NAME-runtime.fn a(true) g(1) l(187) x(0) class(PAUTO) tc(1) assigned used FUNC-func(). IF l(201) tc(1)
. . LITERAL-false a(true) l(15) x(0) class(PEXTERN) tc(1) runtime.raceenabled bool. IF-init
. . AS l(209) tc(1) hascall
. . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32
. . . CALLFUNC l(209) tc(1) hascall uint32
. . . . NAME-atomic.Load a(true) l(13) x(0) class(PFUNC) tc(1) used FUNC-func(*uint32) uint32
. . . CALLFUNC-rlist
. . . . ADDR l(209) esc(no) tc(1) PTR-*uint32
. . . . . NAME-runtime.runningPanicDefers a(true) l(624) x(0) class(PEXTERN) tc(1) addrtaken used uint32
. IF l(209) tc(1)
. . NE l(209) tc(1) bool
. . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32
. . . LITERAL-0 l(209) tc(1) uint32
. IF-rlist
. . VARKILL l(209) tc(1)
. . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32
. IF-body
. . VARKILL l(209) tc(1)
. . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32. . DCL l(211)
. . . NAME-runtime.c a(true) g(2) l(211) x(0) class(PAUTO) tc(1) assigned used int. . AS l(211) colas(true) tc(1)
. . . NAME-runtime.c a(true) g(2) l(211) x(0) class(PAUTO) tc(1) assigned used int
. . . LITERAL-0 l(211) tc(1) int. . FOR l(211) tc(1)
. . . LT l(211) tc(1) bool
. . . . NAME-runtime.c a(true) g(2) l(211) x(0) class(PAUTO) tc(1) assigned used int
. . . . LITERAL-1000 l(211) tc(1) int
. . . BLOCK l(211)
. . . BLOCK-list
. . . . AS l(211) tc(1) implicit(true) int
. . . . . NAME-runtime.c a(true) g(2) l(211) x(0) class(PAUTO) tc(1) assigned used int
. . . . . ADD l(211) tc(1) int
. . . . . . NAME-runtime.c a(true) g(2) l(211) x(0) class(PAUTO) tc(1) assigned used int
. . . . . . LITERAL-1 l(211) tc(1) int
. . FOR-body
. . . IF-init
. . . . AS l(212) tc(1) hascall
. . . . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32
. . . . . CALLFUNC l(212) tc(1) hascall uint32
. . . . . . NAME-atomic.Load a(true) l(13) x(0) class(PFUNC) tc(1) used FUNC-func(*uint32) uint32
. . . . . CALLFUNC-rlist
. . . . . . ADDR l(212) esc(no) tc(1) PTR-*uint32
. . . . . . . NAME-runtime.runningPanicDefers a(true) l(624) x(0) class(PEXTERN) tc(1) addrtaken used uint32
. . . IF l(212) tc(1)
. . . . EQ l(212) tc(1) bool
. . . . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32
. . . . . LITERAL-0 l(212) tc(1) uint32
. . . IF-rlist
. . . . VARKILL l(212) tc(1)
. . . . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32
. . . IF-body
. . . . VARKILL l(212) tc(1)
. . . . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32. . . . BREAK l(213) tc(1)
. . . RETJMP l(215) x(2290)
. . . RETJMP l(265) x(2291)
. . . LABEL l(265) tc(1) runtime..i6
. . . CALLFUNC l(266) tc(1) hascall
. . . . NAME-runtime.mcall a(true) l(34) x(0) class(PFUNC) tc(1) used FUNC-func(func(*g))
. . . CALLFUNC-rlist
. . . . NAME-runtime.gosched_m a(true) l(2624) x(0) class(PFUNC) tc(1) used FUNC-func(*g). . . LABEL l(215) tc(1) runtime..i5
. IF-init
. . AS l(218) tc(1) hascall
. . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32
. . . CALLFUNC l(218) tc(1) hascall uint32
. . . . NAME-atomic.Load a(true) l(13) x(0) class(PFUNC) tc(1) used FUNC-func(*uint32) uint32
. . . CALLFUNC-rlist
. . . . ADDR l(218) esc(no) tc(1) PTR-*uint32
. . . . . NAME-runtime.panicking a(true) l(628) x(0) class(PEXTERN) tc(1) addrtaken used uint32
. IF l(218) tc(1)
. . NE l(218) tc(1) bool
. . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32
. . . LITERAL-0 l(218) tc(1) uint32
. IF-rlist
. . VARKILL l(218) tc(1)
. . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32
. IF-body
. . VARKILL l(218) tc(1)
. . . NAME-runtime..autotmp_14 a(true) l(209) x(0) class(PAUTO) esc(N) tc(1) assigned used uint32. . CALLFUNC l(219) tc(1) hascall
. . . NAME-runtime.gopark a(true) l(284) x(0) class(PFUNC) tc(1) used FUNC-func(func(*g, unsafe.Pointer) bool, unsafe.Pointer, waitReason, byte, int)
. . CALLFUNC-rlist
. . . LITERAL-nil tc(1) .nil FUNC-func(*g, unsafe.Pointer) bool. . . LITERAL-0 tc(1) .nil UNSAFEPTR-unsafe.Pointer
. . . LITERAL-8 a(true) l(801) x(8) class(PEXTERN) tc(1) runtime.waitReasonPanicWait runtime.waitReason
. . . LITERAL-16 a(true) l(38) x(16) class(PEXTERN) tc(1) runtime.traceEvGoStop byte
. . . LITERAL-1 l(219) tc(1) int
. CALLFUNC l(222) tc(1) hascall
. . NAME-runtime.exit a(true) l(198) x(0) class(PFUNC) tc(1) used FUNC-func(int32)
. CALLFUNC-rlist
. . LITERAL-0 l(222) tc(1) int32. FOR l(223) tc(1)
. . BLOCK l(223)
. FOR-body
. . DCL l(224) tc(1)
. . . NAME-runtime.x a(true) g(3) l(224) x(0) class(PAUTO) tc(1) assigned used PTR-*int32. . AS l(224) tc(1)
. . . NAME-runtime.x a(true) g(3) l(224) x(0) class(PAUTO) tc(1) assigned used PTR-*int32. . AS l(225) tc(1) hascall
. . . DEREF l(225) tc(1) assigned hascall int32
. . . . NAME-runtime.x a(true) g(3) l(224) x(0) class(PAUTO) tc(1) assigned used PTR-*int32
. . . LITERAL-0 l(225) tc(1) int32
buildssa-exit
: internal compiler error: 'main': open ssa.html: permission deniedPlease file a bug report including a short program that triggers the error.
https://golang.org/issue/new
I'm a complete newbie in this topic, so maybe it's just me doing something wrong 🙂