1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // Copyright 2021 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.
- // Issue 42580: cmd/cgo: shifting identifier position in ast
- package cgotest
- // typedef int (*intFunc) ();
- //
- // char* strarg = "";
- //
- // int func_with_char(char* arg, void* dummy)
- // {return 5;}
- //
- // int* get_arr(char* arg, void* dummy)
- // {return NULL;}
- import "C"
- import "unsafe"
- // Test variables
- var (
- checkedPointer = []byte{1}
- doublePointerChecked = []byte{1}
- singleInnerPointerChecked = []byte{1}
- )
- // This test checks the positions of variable identifiers.
- // Changing the positions of the test variables idents after this point will break the test.
- func TestSingleArgumentCast() C.int {
- retcode := C.func_with_char((*C.char)(unsafe.Pointer(&checkedPointer[0])), unsafe.Pointer(C.strarg))
- return retcode
- }
- func TestSingleArgumentCastRecFuncAsSimpleArg() C.int {
- retcode := C.func_with_char((*C.char)(unsafe.Pointer(C.get_arr((*C.char)(unsafe.Pointer(&singleInnerPointerChecked[0])), unsafe.Pointer(C.strarg)))), nil)
- return retcode
- }
- func TestSingleArgumentCastRecFunc() C.int {
- retcode := C.func_with_char((*C.char)(unsafe.Pointer(C.get_arr((*C.char)(unsafe.Pointer(&doublePointerChecked[0])), unsafe.Pointer(C.strarg)))), unsafe.Pointer(C.strarg))
- return retcode
- }
|