mirror of
https://github.com/golang/go
synced 2024-11-18 14:04:45 -07:00
42 lines
619 B
Go
42 lines
619 B
Go
|
// 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)
|
||
|
}
|