
Anonymous enums (often used in typedefs) triggered a problem that was already solved for structs but wasn't yet solved for enums. So this patch generalizes the code to work for both structs and enums, and adds testing for both.
25 строки
698 Б
Go
25 строки
698 Б
Go
package main
|
|
|
|
// Make sure CGo supports multiple files.
|
|
|
|
// #include "test.h"
|
|
// int fortytwo(void);
|
|
// static float headerfunc_static(float a) { return a - 1; }
|
|
// static void headerfunc_void(int a, int *ptr) { *ptr = a; }
|
|
import "C"
|
|
|
|
func headerfunc_2() {
|
|
// Call headerfunc_static that is different from the headerfunc_static in
|
|
// the main.go file.
|
|
// The upstream CGo implementation does not handle this case correctly.
|
|
println("static headerfunc 2:", C.headerfunc_static(5))
|
|
|
|
// Test function without return value.
|
|
var n C.int
|
|
C.headerfunc_void(3, &n)
|
|
println("static headerfunc void:", n)
|
|
|
|
// anonymous structs and enums in multiple Go files
|
|
var _ C.teststruct
|
|
var _ C.testenum
|
|
}
|