Home | History | Annotate | Download | only in fixedbugs
      1 // run
      2 
      3 // Copyright 2017 The Go Authors. All rights reserved.
      4 // Use of this source code is governed by a BSD-style
      5 // license that can be found in the LICENSE file.
      6 
      7 package main
      8 
      9 //go:noinline
     10 func f(x int) {
     11 }
     12 
     13 //go:noinline
     14 func val() int8 {
     15 	return -1
     16 }
     17 
     18 var (
     19 	array = [257]int{}
     20 	slice = array[1:]
     21 )
     22 
     23 func init() {
     24 	for i := range array {
     25 		array[i] = i - 1
     26 	}
     27 }
     28 
     29 func main() {
     30 	x := val()
     31 	y := int(uint8(x))
     32 	f(y) // try and force y to be calculated and spilled
     33 	if slice[y] != 255 {
     34 		panic("incorrect value")
     35 	}
     36 }
     37