Mercurial > hg > CbC > CbC_gcc
view libgo/go/runtime/testdata/testprog/checkptr.go @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | |
children |
line wrap: on
line source
// Copyright 2020 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. package main import "unsafe" func init() { register("CheckPtrAlignmentNoPtr", CheckPtrAlignmentNoPtr) register("CheckPtrAlignmentPtr", CheckPtrAlignmentPtr) register("CheckPtrArithmetic", CheckPtrArithmetic) register("CheckPtrSize", CheckPtrSize) register("CheckPtrSmall", CheckPtrSmall) } func CheckPtrAlignmentNoPtr() { var x [2]int64 p := unsafe.Pointer(&x[0]) sink2 = (*int64)(unsafe.Pointer(uintptr(p) + 1)) } func CheckPtrAlignmentPtr() { var x [2]int64 p := unsafe.Pointer(&x[0]) sink2 = (**int64)(unsafe.Pointer(uintptr(p) + 1)) } func CheckPtrArithmetic() { var x int i := uintptr(unsafe.Pointer(&x)) sink2 = (*int)(unsafe.Pointer(i)) } func CheckPtrSize() { p := new(int64) sink2 = p sink2 = (*[100]int64)(unsafe.Pointer(p)) } func CheckPtrSmall() { sink2 = unsafe.Pointer(uintptr(1)) }