...
Run Format

Source file test/fixedbugs/issue17918.go

Documentation: test/fixedbugs

  // 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)
  }
  

View as plain text