Update to go1.25.2
This commit is contained in:
77
test/fixedbugs/issue75569.go
Normal file
77
test/fixedbugs/issue75569.go
Normal file
@@ -0,0 +1,77 @@
|
||||
// run
|
||||
|
||||
// Copyright 2025 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package main
|
||||
|
||||
func fff(a []int, b bool, p, q *int) {
|
||||
outer:
|
||||
n := a[0]
|
||||
a = a[1:]
|
||||
switch n {
|
||||
case 1:
|
||||
goto one
|
||||
case 2:
|
||||
goto two
|
||||
case 3:
|
||||
goto three
|
||||
case 4:
|
||||
goto four
|
||||
}
|
||||
|
||||
one:
|
||||
goto inner
|
||||
two:
|
||||
goto outer
|
||||
three:
|
||||
goto inner
|
||||
four:
|
||||
goto innerSideEntry
|
||||
|
||||
inner:
|
||||
n = a[0]
|
||||
a = a[1:]
|
||||
switch n {
|
||||
case 1:
|
||||
goto outer
|
||||
case 2:
|
||||
goto inner
|
||||
case 3:
|
||||
goto innerSideEntry
|
||||
default:
|
||||
return
|
||||
}
|
||||
innerSideEntry:
|
||||
n = a[0]
|
||||
a = a[1:]
|
||||
switch n {
|
||||
case 1:
|
||||
goto outer
|
||||
case 2:
|
||||
goto inner
|
||||
case 3:
|
||||
goto inner
|
||||
}
|
||||
ggg(p, q)
|
||||
goto inner
|
||||
}
|
||||
|
||||
var b bool
|
||||
|
||||
func ggg(p, q *int) {
|
||||
n := *p + 5 // this +5 ends up in the entry block, well before the *p load
|
||||
if b {
|
||||
*q = 0
|
||||
}
|
||||
*p = n
|
||||
}
|
||||
|
||||
func main() {
|
||||
var x, y int
|
||||
fff([]int{4, 4, 4}, false, &x, &y)
|
||||
if x != 5 {
|
||||
panic(x)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user