|  | // 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) | 
|  | } |