tinygo/testdata/cgo/out.txt
Ayke van Laethem e02727679f builder, cgo: support function definitions in CGo headers
For example, the following did not work before but does work with this
change:

    // int add(int a, int b) {
    //   return a + b;
    // }
    import "C"

    func main() {
        println("add:", C.add(3, 5))
    }

Even better, the functions in the header are compiled together with the
rest of the Go code and so they can be optimized together! Currently,
inlining is not yet allowed but const-propagation across functions
works. This should be improved in the future.
2021-09-28 18:44:11 +02:00

64 строки
1,1 КиБ
Text

fortytwo: 42
add: 8
myint: 3 5
myint size: 2
longlong: -1099511627776
global: 3
defined ints: 5 5
defined floats: +5.800000e+000 +5.800000e+000
defined string: defined string
defined char: 99
defined expr: 9
15: 15
25: 25
callback 1: 50
callback 2: 600
variadic0: 1
variadic2: 15
headerfunc: 6
bool: true true
float: +3.100000e+000
double: +3.200000e+000
complex float: (+4.100000e+000+3.300000e+000i)
complex double: (+4.200000e+000+3.400000e+000i)
complex long double: (+4.300000e+000+3.500000e+000i)
char match: true
void* match: true true true
int64_t match: true
struct: true 256 -123456 +3.140000e+000
array: 5 6 7
union: true
union s: 22
union f: +3.140000e+000
union global data: 5 8 1
union local data: 5 8 1
union s: true
union f: +6.280000e+000
union field: +6.280000e+000
bitfield a: 15
bitfield b: 1
bitfield c: 2
bitfield d: 47
bitfield e: 5
bitfield a: 7
bitfield b: 0
bitfield c: 3
bitfield d: 47
bitfield e: 5
struct: 3 5
n in chain: 3
n in chain: 6
n in chain: 7
option: 12
option A: 0
option B: 1
option C: -5
option D: -4
option E: 10
option F: 11
option G: 12
option 2A: 20
option 3A: 21
enum width matches: true
CFLAGS value: 17
copied string: foobar