1
0
mirror of https://github.com/golang/go synced 2024-11-23 08:50:03 -07:00

cmd/compile: fix test/typeparam/mdempsky/4.go for -G=3

Change-Id: I894ee000561a3c6afede8df697b1bce4576ceef0
Reviewed-on: https://go-review.googlesource.com/c/go/+/349012
Reviewed-by: Dan Scales <danscales@google.com>
Trust: Dan Scales <danscales@google.com>
Trust: Keith Randall <khr@golang.org>
This commit is contained in:
wdvxdr 2021-09-10 20:56:29 +08:00 committed by Dan Scales
parent b2c04f0d48
commit 3a72175cdc
2 changed files with 19 additions and 5 deletions

View File

@ -1166,10 +1166,26 @@ func (r *importReader) stmtList() []ir.Node {
if n.Op() == ir.OBLOCK {
n := n.(*ir.BlockStmt)
list = append(list, n.List...)
} else {
list = append(list, n)
continue
}
if len(list) > 0 {
// check for an optional label that can only immediately
// precede a for/range/select/switch statement.
if last := list[len(list)-1]; last.Op() == ir.OLABEL {
label := last.(*ir.LabelStmt).Label
switch n.Op() {
case ir.OFOR:
n.(*ir.ForStmt).Label = label
case ir.ORANGE:
n.(*ir.RangeStmt).Label = label
case ir.OSELECT:
n.(*ir.SelectStmt).Label = label
case ir.OSWITCH:
n.(*ir.SwitchStmt).Label = label
}
}
}
list = append(list, n)
}
return list
}

View File

@ -2187,8 +2187,6 @@ var g3Failures = setOf(
"writebarrier.go", // correct diagnostics, but different lines (probably irgen's fault)
"typeparam/nested.go", // -G=3 doesn't support function-local types with generics
"typeparam/mdempsky/4.go", // -G=3 can't export functions with labeled breaks in loops
)
var unifiedFailures = setOf(