Initial commit: Go 1.23 release state
This commit is contained in:
43
test/fixedbugs/issue23521.go
Normal file
43
test/fixedbugs/issue23521.go
Normal file
@@ -0,0 +1,43 @@
|
||||
// errorcheck -0 -m
|
||||
|
||||
// Copyright 2018 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.
|
||||
|
||||
// Issue 23521: improve early DCE for if without explicit else.
|
||||
|
||||
package p
|
||||
|
||||
//go:noinline
|
||||
func nonleaf() {}
|
||||
|
||||
const truth = true
|
||||
|
||||
func f() int { // ERROR "can inline f"
|
||||
if truth {
|
||||
return 0
|
||||
}
|
||||
// If everything below is removed, as it should,
|
||||
// function f should be inlineable.
|
||||
nonleaf()
|
||||
for {
|
||||
panic("")
|
||||
}
|
||||
}
|
||||
|
||||
func g() int { // ERROR "can inline g"
|
||||
return f() // ERROR "inlining call to f"
|
||||
}
|
||||
|
||||
func f2() int { // ERROR "can inline f2"
|
||||
if !truth {
|
||||
nonleaf()
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
panic("")
|
||||
}
|
||||
|
||||
func g2() int { // ERROR "can inline g2"
|
||||
return f2() // ERROR "inlining call to f2"
|
||||
}
|
||||
Reference in New Issue
Block a user