Updates #16357.
Change-Id: I37f04d83134b5e1e7f6ba44eb9a566758ef594d3
Reviewed-on: https://go-review.googlesource.com/29350
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
import "fmt"
-// TODO: labellist should become part of a "compilation state" for functions.
-var labellist []*Label
-
func Sysfunc(name string) *Node {
n := newname(Pkglookup(name, Runtimepkg))
n.Class = PFUNC
}
}
-func clearlabels() {
- for _, l := range labellist {
- l.Sym.Label = nil
- }
- labellist = labellist[:0]
-}
-
// make a new Node off the books
func tempname(nn *Node, t *Type) {
if Curfn == nil {
}
type Label struct {
- Sym *Sym
Def *Node
- Use []*Node
-
- // for use during gen
- Gotopc *obj.Prog // pointer to unresolved gotos
- Labelpc *obj.Prog // pointer to code
- Breakpc *obj.Prog // pointer to code
- Continpc *obj.Prog // pointer to code
-
- Used bool // for "label defined and not used" error
}
type SymFlags uint8
saveerrors()
- // set up domain for labels
- clearlabels()
-
if Curfn.Type.FuncType().Outnamed {
// add clearing of the output parameters
for _, t := range Curfn.Type.Results().Fields().Slice() {