1
0
mirror of https://github.com/golang/go synced 2024-11-15 00:20:30 -07:00
go/test/fixedbugs/issue17918.go

42 lines
619 B
Go
Raw Normal View History

// compile
// Copyright 2016 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 17918: slice out-of-bounds in ssa/cse
package dead
import (
"fmt"
"time"
)
var (
units = []struct {
divisor time.Duration
unit rune
}{
{1000000, 's'},
{60, 'm'},
{60, 'h'},
{24, 'd'},
{7, 'w'},
}
)
func foobar(d time.Duration) string {
d /= time.Microsecond
unit := 'u'
for _, f := range units {
if d%f.divisor != 0 {
break
}
d /= f.divisor
unit = f.unit
}
return fmt.Sprintf("%d%c", d, unit)
}