/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue56777.go
56 строк
928 B
Wayne Zuo
cmd/compile: fix wrong optimization for eliding Not in Phi
18 ноя 2022, 16:26
18 ноя 2022, 16:26
8893da7
Код
Авторство
О чём код?
// compile // Copyright 2022 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 p func fn(setText []rune, negate bool) int { ranges := []singleRange{} if len(setText) > 0 { fillFirst := false l := len(setText) if negate { if setText[0] == 0 { setText = setText[1:] } else { l++ fillFirst = true } } if l%2 == 0 { ranges = make([]singleRange, l/2) } else { ranges = make([]singleRange, l/2+1) } first := true if fillFirst { ranges[0] = singleRange{first: 0} first = false } i := 0 for _, r := range setText { if first { // lower bound in a new range ranges[i] = singleRange{first: r} first = false } else { ranges[i].last = r - 1 i++ first = true } } } return len(ranges) } type singleRange struct { first rune last rune }