1 // Copyright 2017 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 //go:build darwin && cgo && !internal
10 #cgo LDFLAGS: -framework CoreFoundation
11 #include <CoreFoundation/CoreFoundation.h>
20 func test21897(t *testing.T) {
21 // Please write barrier, kick in soon.
22 defer debug.SetGCPercent(debug.SetGCPercent(1))
24 for i := 0; i < 10000; i++ {
28 // Allocate some memory, so eventually the write barrier is enabled
29 // and it will see writes of bad pointers in the test* functions below.
30 byteSliceSink = make([]byte, 1024)
34 var byteSliceSink []byte
36 func testCFNumberRef() {
38 xCFNumberRef = C.CFNumberCreate(C.kCFAllocatorSystemDefault, C.kCFNumberSInt64Type, unsafe.Pointer(&v))
39 //fmt.Printf("CFNumberRef: %x\n", uintptr(unsafe.Pointer(xCFNumberRef)))
42 var xCFNumberRef C.CFNumberRef
44 func testCFDateRef() {
45 xCFDateRef = C.CFDateCreate(C.kCFAllocatorSystemDefault, 0) // 0 value is 1 Jan 2001 00:00:00 GMT
46 //fmt.Printf("CFDateRef: %x\n", uintptr(unsafe.Pointer(xCFDateRef)))
49 var xCFDateRef C.CFDateRef
51 func testCFBooleanRef() {
52 xCFBooleanRef = C.kCFBooleanFalse
53 //fmt.Printf("CFBooleanRef: %x\n", uintptr(unsafe.Pointer(xCFBooleanRef)))
56 var xCFBooleanRef C.CFBooleanRef