Source file test/fixedbugs/issue40917.go

     1  // run -gcflags=-d=checkptr
     2  
     3  // Copyright 2020 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  import "unsafe"
    10  
    11  func main() {
    12  	var x [2]uint64
    13  	a := unsafe.Pointer(&x[1])
    14  
    15  	b := a
    16  	b = unsafe.Pointer(uintptr(b) + 2)
    17  	b = unsafe.Pointer(uintptr(b) - 1)
    18  	b = unsafe.Pointer(uintptr(b) &^ 1)
    19  
    20  	if a != b {
    21  		panic("pointer arithmetic failed")
    22  	}
    23  }
    24  

View as plain text