Files
llgo/internal/cabi/_testdata/demo/basic.go

107 lines
2.1 KiB
Go

package main
import "unsafe"
const (
LLGoFiles = "../wrap/basic.c"
)
type pointer = *int8
//go:linkname printf C.printf
func printf(format *byte, __llgo_va_list ...any) int32
func assert(info string, b bool) {
if !b {
printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info))
}
}
func main() {
}
//go:linkname cbasic_int8 C.basic_int8
func cbasic_int8(a int8) int8
func basic_int8(a int8) int8 {
return a
}
func init() {
assert("cbasic_int8\000", cbasic_int8(100) == 100)
assert("basic_int8\000", basic_int8(100) == 100)
}
//go:linkname cbasic_int16 C.basic_int16
func cbasic_int16(a int16) int16
func basic_int16(a int16) int16 {
return a
}
func init() {
assert("cbasic_int16\000", cbasic_int16(100) == 100)
assert("basic_int16\000", basic_int16(100) == 100)
}
//go:linkname cbasic_int32 C.basic_int32
func cbasic_int32(a int32) int32
func basic_int32(a int32) int32 {
return a
}
func init() {
assert("cbasic_int32\000", cbasic_int32(100) == 100)
assert("basic_int32\000", basic_int32(100) == 100)
}
//go:linkname cbasic_int64 C.basic_int64
func cbasic_int64(a int64) int64
func basic_int64(a int64) int64 {
return a
}
func init() {
assert("cbasic_int64\000", cbasic_int64(100) == 100)
assert("basic_int64\000", basic_int64(100) == 100)
}
//go:linkname cbasic_float32 C.basic_float32
func cbasic_float32(a float32) float32
func basic_float32(a float32) float32 {
return a
}
func init() {
assert("cbasic_float32\000", cbasic_float32(100) == 100)
assert("basic_float32\000", basic_float32(100) == 100)
}
//go:linkname cbasic_float64 C.basic_float64
func cbasic_float64(a float64) float64
func basic_float64(a float64) float64 {
return a
}
func init() {
assert("cbasic_float64\000", cbasic_float64(100) == 100)
assert("basic_float64\000", basic_float64(100) == 100)
}
//go:linkname cbasic_pointer C.basic_pointer
func cbasic_pointer(a pointer) pointer
func basic_pointer(a pointer) pointer {
return a
}
func init() {
var p int8
assert("cbasic_pointer\000", cbasic_pointer(&p) == &p)
assert("basic_pointer\000", basic_pointer(&p) == &p)
}