introduce TDF_compare_debug, omit OBJ_TYPE_REF casts with it
[official-gcc.git] / libgo / misc / cgo / test / fpvar.go
blob7aab8ca2fc2d2d519702373e9da63c1c0a504fba
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.
5 // This file contains test cases for cgo with function pointer variables.
7 package cgotest
9 /*
10 typedef int (*intFunc) ();
12 int
13 bridge_int_func(intFunc f)
15 return f();
18 int fortytwo()
20 return 42;
24 import "C"
25 import "testing"
27 func callBridge(f C.intFunc) int {
28 return int(C.bridge_int_func(f))
31 func callCBridge(f C.intFunc) C.int {
32 return C.bridge_int_func(f)
35 func testFpVar(t *testing.T) {
36 const expected = 42
37 f := C.intFunc(C.fortytwo)
38 res1 := C.bridge_int_func(f)
39 if r1 := int(res1); r1 != expected {
40 t.Errorf("got %d, want %d", r1, expected)
42 res2 := callCBridge(f)
43 if r2 := int(res2); r2 != expected {
44 t.Errorf("got %d, want %d", r2, expected)
46 r3 := callBridge(f)
47 if r3 != expected {
48 t.Errorf("got %d, want %d", r3, expected)