Update to go1.24.3

This commit is contained in:
Vorapol Rinsatitnon
2025-05-13 13:55:40 +07:00
parent f665e748c7
commit fc8a9f2ce8
38 changed files with 339 additions and 151 deletions

View File

@@ -30,6 +30,8 @@ func main() {
// should not be adjusted when the stack is copied.
recurse(100, p, v)
}
//go:noinline
func recurse(n int, p *S, v uintptr) {
if n > 0 {
recurse(n-1, p, v)

View File

@@ -11,14 +11,14 @@ package p
func f() { // ERROR "can inline f"
var i interface{ m() } = T(0) // ERROR "T\(0\) does not escape"
i.m() // ERROR "devirtualizing i.m" "inlining call to T.m"
i.m() // ERROR "devirtualizing i.m" "inlining call to T.m" "inlining call to f" "T\(0\) does not escape"
}
type T int
func (T) m() { // ERROR "can inline T.m"
if never {
f() // ERROR "inlining call to f" "devirtualizing i.m" "T\(0\) does not escape"
f() // ERROR "inlining call to f" "devirtualizing i.m" "T\(0\) does not escape" "inlining call to T.m"
}
}

View File

@@ -6,7 +6,8 @@
package main
func run() { // ERROR "cannot inline run: recursive"
//go:noinline
func run() { // ERROR "cannot inline run: marked go:noinline"
f := func() { // ERROR "can inline run.func1 with cost .* as:.*" "func literal does not escape"
g() // ERROR "inlining call to g"
}

View File

@@ -280,13 +280,13 @@ func ff(x int) { // ERROR "can inline ff"
if x < 0 {
return
}
gg(x - 1) // ERROR "inlining call to gg" "inlining call to hh"
gg(x - 1) // ERROR "inlining call to gg" "inlining call to hh" "inlining call to ff"
}
func gg(x int) { // ERROR "can inline gg"
hh(x - 1) // ERROR "inlining call to hh" "inlining call to ff"
hh(x - 1) // ERROR "inlining call to hh" "inlining call to ff" "inlining call to gg"
}
func hh(x int) { // ERROR "can inline hh"
ff(x - 1) // ERROR "inlining call to ff" "inlining call to gg"
ff(x - 1) // ERROR "inlining call to ff" "inlining call to gg" "inlining call to hh"
}
// Issue #14768 - make sure we can inline for loops.
@@ -332,9 +332,9 @@ func ii() { // ERROR "can inline ii"
// Issue #42194 - make sure that functions evaluated in
// go and defer statements can be inlined.
func gd1(int) {
defer gd1(gd2()) // ERROR "inlining call to gd2"
defer gd1(gd2()) // ERROR "inlining call to gd2" "can inline gd1.deferwrap1"
defer gd3()() // ERROR "inlining call to gd3"
go gd1(gd2()) // ERROR "inlining call to gd2"
go gd1(gd2()) // ERROR "inlining call to gd2" "can inline gd1.gowrap2"
go gd3()() // ERROR "inlining call to gd3"
}

View File

@@ -88,6 +88,7 @@ func f5_int8(a [10]int) int {
return x
}
//go:noinline
func f6(a []int) {
for i := range a { // ERROR "Induction variable: limits \[0,\?\), increment 1$"
b := a[0:i] // ERROR "(\([0-9]+\) )?Proved IsSliceInBounds$"

View File

@@ -280,13 +280,13 @@ func ff(x int) { // ERROR "can inline ff"
if x < 0 {
return
}
gg(x - 1) // ERROR "inlining call to gg" "inlining call to hh"
gg(x - 1) // ERROR "inlining call to gg" "inlining call to hh" "inlining call to ff"
}
func gg(x int) { // ERROR "can inline gg"
hh(x - 1) // ERROR "inlining call to hh" "inlining call to ff"
hh(x - 1) // ERROR "inlining call to hh" "inlining call to ff" "inlining call to gg"
}
func hh(x int) { // ERROR "can inline hh"
ff(x - 1) // ERROR "inlining call to ff" "inlining call to gg"
ff(x - 1) // ERROR "inlining call to ff" "inlining call to gg" "inlining call to hh"
}
// Issue #14768 - make sure we can inline for loops.