Mercurial > hg > CbC > CbC_gcc
view libgo/misc/cgo/test/fpvar.go @ 133:420680fc7707
do normal call in goto codesegment in normal function
author | anatofuz |
---|---|
date | Sat, 03 Nov 2018 19:49:09 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// 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. // This file contains test cases for cgo with function pointer variables. package cgotest /* typedef int (*intFunc) (); int bridge_int_func(intFunc f) { return f(); } int fortytwo() { return 42; } */ import "C" import "testing" func callBridge(f C.intFunc) int { return int(C.bridge_int_func(f)) } func callCBridge(f C.intFunc) C.int { return C.bridge_int_func(f) } func testFpVar(t *testing.T) { const expected = 42 f := C.intFunc(C.fortytwo) res1 := C.bridge_int_func(f) if r1 := int(res1); r1 != expected { t.Errorf("got %d, want %d", r1, expected) } res2 := callCBridge(f) if r2 := int(res2); r2 != expected { t.Errorf("got %d, want %d", r2, expected) } r3 := callBridge(f) if r3 != expected { t.Errorf("got %d, want %d", r3, expected) } }