-
Notifications
You must be signed in to change notification settings - Fork 18.3k
Closed
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone
Description
What version of Go are you using (go version
)?
$ go version go version devel +489c9e84be Fri Feb 19 10:37:37 2021 -0500 linux/amd64
Does this issue reproduce with the latest release?
Seems to happen only on tip (1.16 is ok).
What operating system and processor architecture are you using (go env
)?
linux/amd64
What did you do?
Using attached zip file, build with:
$ unzip file.zip
...
$ cd inlretbug/main
$ go build -gcflags=all=-l=4 .
What did you expect to see?
clean build
What did you see instead?
This crash:
# inlretbug/main
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x5f5685]
goroutine 1 [running]:
cmd/compile/internal/ir.(*Name).Op(0x0, 0x5c4155)
<autogenerated>:1 +0x5
cmd/compile/internal/ir.HasUniquePos(0xeaf3e0, 0x0, 0xc0004afb01)
/ssd2/go/src/cmd/compile/internal/ir/node.go:506 +0x35
cmd/compile/internal/ir.SetPos(0xeaf3e0, 0x0, 0xeaf3e0)
/ssd2/go/src/cmd/compile/internal/ir/node.go:527 +0x65
cmd/compile/internal/typecheck.typecheck(0xeaf3e0, 0x0, 0x2, 0xeaf3e0, 0xc0004bd520)
/ssd2/go/src/cmd/compile/internal/typecheck/typecheck.go:288 +0x66
cmd/compile/internal/typecheck.Expr(...)
/ssd2/go/src/cmd/compile/internal/typecheck/typecheck.go:32
cmd/compile/internal/typecheck.tcClosure(0xc0004b3bd0, 0x2)
/ssd2/go/src/cmd/compile/internal/typecheck/func.go:341 +0x188
cmd/compile/internal/typecheck.typecheck1(0xeae2b0, 0xc0004b3bd0, 0x2, 0xc0004b3bd0, 0x0)
/ssd2/go/src/cmd/compile/internal/typecheck/typecheck.go:770 +0x1a27
cmd/compile/internal/typecheck.typecheck(0xeae2b0, 0xc0004b3bd0, 0x2, 0xc, 0xc00024e380)
/ssd2/go/src/cmd/compile/internal/typecheck/typecheck.go:371 +0xaed
cmd/compile/internal/typecheck.Expr(...)
/ssd2/go/src/cmd/compile/internal/typecheck/typecheck.go:32
cmd/compile/internal/inline.(*inlsubst).closure(0xc0004bb560, 0xc0004b3540, 0x203000, 0x203000)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1245 +0xad3
cmd/compile/internal/inline.(*inlsubst).node(0xc0004bb560, 0xeae2b0, 0xc0004b3540, 0x748045, 0xc000484080)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1365 +0x14c9
cmd/compile/internal/ir.(*ConvExpr).editChildren(0xc0004b3b80, 0xc0000d6a50)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:445 +0x85
cmd/compile/internal/ir.EditChildren(...)
/ssd2/go/src/cmd/compile/internal/ir/visit.go:185
cmd/compile/internal/inline.(*inlsubst).node(0xc0004bb560, 0xeae5d0, 0xc0004b3590, 0x748045, 0xc000484080)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1371 +0x9e2
cmd/compile/internal/ir.(*ConvExpr).editChildren(0xc0004b3b30, 0xc0000d6a50)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:445 +0x85
cmd/compile/internal/ir.EditChildren(...)
/ssd2/go/src/cmd/compile/internal/ir/visit.go:185
cmd/compile/internal/inline.(*inlsubst).node(0xc0004bb560, 0xeae5d0, 0xc0004b35e0, 0xd4aa01, 0xed0100)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1371 +0x9e2
cmd/compile/internal/ir.editNodes(0xc0000d6ab0, 0x1, 0x1, 0xc0000d6a50)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:1422 +0x76
cmd/compile/internal/ir.(*ReturnStmt).editChildren(0xc0004b3ae0, 0xc0000d6a50)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:957 +0x79
cmd/compile/internal/ir.EditChildren(...)
/ssd2/go/src/cmd/compile/internal/ir/visit.go:185
cmd/compile/internal/inline.(*inlsubst).node(0xc0004bb560, 0xeaf890, 0xc0004b3630, 0xc0000d6aa0, 0xc00000f978)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1371 +0x9e2
cmd/compile/internal/inline.(*inlsubst).list(0xc0004bb560, 0xc0000d6970, 0x1, 0x1, 0x1, 0xc00000f978, 0x1)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1094 +0xbb
cmd/compile/internal/inline.(*inlsubst).closure(0xc0004bb560, 0xc0004b3680, 0xeadd38, 0xc0004b2d20)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1227 +0x8e8
cmd/compile/internal/inline.(*inlsubst).node(0xc0004bb560, 0xeae2b0, 0xc0004b3680, 0x748045, 0xc000484080)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1365 +0x14c9
cmd/compile/internal/ir.(*ConvExpr).editChildren(0xc0004b39a0, 0xc0000d6a50)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:445 +0x85
cmd/compile/internal/ir.EditChildren(...)
/ssd2/go/src/cmd/compile/internal/ir/visit.go:185
cmd/compile/internal/inline.(*inlsubst).node(0xc0004bb560, 0xeae5d0, 0xc0004b36d0, 0xc0000d6a80, 0xc0000d6a70)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1371 +0x9e2
cmd/compile/internal/inline.(*inlsubst).list(0xc0004bb560, 0xc0000d6980, 0x1, 0x1, 0x1, 0x1, 0x0)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1094 +0xbb
cmd/compile/internal/inline.(*inlsubst).node(0xc0004bb560, 0xeaf890, 0xc0004b3720, 0xc0000d6a60, 0x10)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1327 +0x305
cmd/compile/internal/inline.(*inlsubst).list(0xc0004bb560, 0xc0000d6990, 0x1, 0x1, 0x1, 0x1, 0x1)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1094 +0xbb
cmd/compile/internal/inline.mkinlcall(0xc0004dc750, 0xc0004af4a0, 0xc000000050, 0xc0004a1320, 0xc00025bae0, 0x0, 0x0)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:979 +0x1ec9
cmd/compile/internal/inline.inlnode(0xeae058, 0xc0004dc750, 0x50, 0xc0004a1320, 0xc00025bae0, 0xeaf3e0, 0xc0004bc4e0)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:630 +0x607
cmd/compile/internal/inline.InlineCalls.func1(0xeae058, 0xc0004dc750, 0xc0004bc4e0, 0xeaf3e0)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:517 +0x51
cmd/compile/internal/ir.editNodes(0xc0000d6820, 0x1, 0x1, 0xc00025bae0)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:1422 +0x76
cmd/compile/internal/ir.(*AssignListStmt).editChildren(0xc0004baae0, 0xc00025bae0)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:108 +0xab
cmd/compile/internal/ir.EditChildren(...)
/ssd2/go/src/cmd/compile/internal/ir/visit.go:185
cmd/compile/internal/inline.inlnode(0xeadae0, 0xc0004baae0, 0x7f2200000050, 0xc0004a1320, 0xc00025bae0, 0xd2fd00, 0xd479c0)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:596 +0x206
cmd/compile/internal/inline.InlineCalls.func1(0xeadae0, 0xc0004baae0, 0x613000000002, 0x7a)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:517 +0x51
cmd/compile/internal/ir.editNodes(0xc00025bb80, 0x2, 0x2, 0xc00025bae0)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:1422 +0x76
cmd/compile/internal/ir.(*BlockStmt).editChildren(0xc0004b66c0, 0xc00025bae0)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:229 +0x79
cmd/compile/internal/ir.EditChildren(...)
/ssd2/go/src/cmd/compile/internal/ir/visit.go:185
cmd/compile/internal/inline.inlnode(0xeadec8, 0xc0004b66c0, 0x50, 0xc0004a1320, 0xc00025bae0, 0xeaecd8, 0xc0004a13e0)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:596 +0x206
cmd/compile/internal/inline.InlineCalls.func1(0xeadec8, 0xc0004b66c0, 0xc0004a13e0, 0xeaecd8)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:517 +0x51
cmd/compile/internal/ir.editNodes(0xc00025bba0, 0x2, 0x2, 0xc00025bae0)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:1422 +0x76
cmd/compile/internal/ir.(*InlinedCallExpr).editChildren(0xc00024e2a0, 0xc00025bae0)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:668 +0x7d
cmd/compile/internal/ir.EditChildren(...)
/ssd2/go/src/cmd/compile/internal/ir/visit.go:185
cmd/compile/internal/inline.mkinlcall(0xc0004dc360, 0xc0004af340, 0xc000000050, 0xc0004a1320, 0xc00025bae0, 0x0, 0x0)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:1007 +0x2186
cmd/compile/internal/inline.inlnode(0xeae058, 0xc0004dc360, 0x50, 0xc0004a1320, 0xc00025bae0, 0xc0004bc000, 0xc00022bb30)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:630 +0x607
cmd/compile/internal/inline.InlineCalls.func1(0xeae058, 0xc0004dc360, 0xc0004dc3f0, 0x609000000002)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:517 +0x51
cmd/compile/internal/ir.editNodes(0xc00020a610, 0x1, 0x1, 0xc00025bae0)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:1422 +0x76
cmd/compile/internal/ir.(*CallExpr).editChildren(0xc0004dc3f0, 0xc00025bae0)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:276 +0x8e
cmd/compile/internal/ir.EditChildren(...)
/ssd2/go/src/cmd/compile/internal/ir/visit.go:185
cmd/compile/internal/inline.inlnode(0xeae058, 0xc0004dc3f0, 0x50, 0xc0004a1320, 0xc00025bae0, 0x30, 0x7f226c31e108)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:596 +0x206
cmd/compile/internal/inline.InlineCalls.func1(0xeae058, 0xc0004dc3f0, 0x20, 0xc00025bae0)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:517 +0x51
cmd/compile/internal/ir.editNodes(0xc00020a620, 0x1, 0x1, 0xc00025bae0)
/ssd2/go/src/cmd/compile/internal/ir/node_gen.go:1422 +0x76
cmd/compile/internal/ir.(*Func).editChildren(0xc00025e420, 0xc00025bae0)
/ssd2/go/src/cmd/compile/internal/ir/func.go:134 +0x4b
cmd/compile/internal/ir.EditChildren(...)
/ssd2/go/src/cmd/compile/internal/ir/visit.go:185
cmd/compile/internal/inline.InlineCalls(0xc00025e420)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:519 +0xed
cmd/compile/internal/inline.InlinePackage.func1(0xc00000f878, 0x1, 0x1, 0xc00024e200)
/ssd2/go/src/cmd/compile/internal/inline/inl.go:71 +0x76
cmd/compile/internal/ir.(*bottomUpVisitor).visit(0xc0004a1290, 0xc00025e420, 0xc0002251a0)
/ssd2/go/src/cmd/compile/internal/ir/scc.go:128 +0x2f7
cmd/compile/internal/ir.VisitFuncsBottomUp(0xc000250580, 0x2, 0x2, 0xd8e398)
/ssd2/go/src/cmd/compile/internal/ir/scc.go:60 +0x116
cmd/compile/internal/inline.InlinePackage()
/ssd2/go/src/cmd/compile/internal/inline/inl.go:58 +0x4f
cmd/compile/internal/gc.Main(0xd8e258)
/ssd2/go/src/cmd/compile/internal/gc/main.go:225 +0x132a
main.main()
/ssd2/go/src/cmd/compile/main.go:54 +0xb1
I originally ran into this trying to build kubernetes/kubelet with "-l=4" to stress test a recent DWARF inlining change.
Not sure what the priority of this is, since normally folks don't build with "-l=4", but I'm reporting it since it seems possible that it might crop up in some other context with a regular inlining level.
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.