ptr_to_array_pun.mx raw

   1  // Regression: only slice-to-array-pointer conversions are rejected.
   2  // A pointer-to-array pun is a *ssa.Convert over a pointer, not a
   3  // *ssa.SliceToArrayPointer over a slice, and stays legal.
   4  package main
   5  
   6  import "unsafe"
   7  
   8  func main() {
   9  	var x uint64 = 0x0102030405060708
  10  	b := (*[8]byte)(unsafe.Pointer(&x))
  11  	if int32(b[0]) != 8 {
  12  		panic("pun read the wrong byte")
  13  	}
  14  }
  15