| // Copyright 2013 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. |
| |
| // API Compatibility Checks for cgo |
| |
| package cgotest |
| |
| // #include <stdlib.h> |
| // |
| // // Test for issue 17723. |
| // typedef char *cstring_pointer; |
| // static void cstring_pointer_fun(cstring_pointer dummy) { } |
| // |
| // const char *api_hello = "hello!"; |
| import "C" |
| import "unsafe" |
| |
| func testAPI() { |
| var cs *C.char |
| cs = C.CString("hello") |
| defer C.free(unsafe.Pointer(cs)) |
| var s string |
| s = C.GoString((*C.char)(C.api_hello)) |
| s = C.GoStringN((*C.char)(C.api_hello), C.int(6)) |
| var b []byte |
| b = C.GoBytes(unsafe.Pointer(C.api_hello), C.int(6)) |
| _, _ = s, b |
| C.cstring_pointer_fun(nil) |
| } |