github.com/riscv/riscv-go@v0.0.0-20200123204226-124ebd6fcc8e/misc/cgo/test/api.go (about) 1 // Copyright 2013 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. 4 5 // API Compatibility Checks for cgo 6 7 package cgotest 8 9 // #include <stdlib.h> 10 // 11 // // Test for issue 17723. 12 // typedef char *cstring_pointer; 13 // static void cstring_pointer_fun(cstring_pointer dummy) { } 14 // 15 // const char *api_hello = "hello!"; 16 import "C" 17 import "unsafe" 18 19 func testAPI() { 20 var cs *C.char 21 cs = C.CString("hello") 22 defer C.free(unsafe.Pointer(cs)) 23 var s string 24 s = C.GoString((*C.char)(C.api_hello)) 25 s = C.GoStringN((*C.char)(C.api_hello), C.int(6)) 26 var b []byte 27 b = C.GoBytes(unsafe.Pointer(C.api_hello), C.int(6)) 28 _, _ = s, b 29 C.cstring_pointer_fun(nil) 30 }