/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue23521.go
43 строки
773 B
isharipo
cmd/compile: make DCE remove nodes after terminating if
03 апр 2018, 18:19
03 апр 2018, 18:19
dcaf3fb
Код
Авторство
О чём код?
// 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" }