diff options
Diffstat (limited to 'ext/ffi_c/libffi/testsuite/libffi.call/struct4.c')
-rw-r--r-- | ext/ffi_c/libffi/testsuite/libffi.call/struct4.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c b/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c index 0ad0a83..66a9551 100644 --- a/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +++ b/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c @@ -14,7 +14,7 @@ typedef struct unsigned ui3; } test_structure_4; -static test_structure_4 struct4(test_structure_4 ts) +static test_structure_4 ABI_ATTR struct4(test_structure_4 ts) { ts.ui3 = ts.ui1 * ts.ui2 * ts.ui3; @@ -28,26 +28,27 @@ int main (void) void *values[MAX_ARGS]; ffi_type ts4_type; ffi_type *ts4_type_elements[4]; + + test_structure_4 ts4_arg; + + /* This is a hack to get a properly aligned result buffer */ + test_structure_4 *ts4_result = + (test_structure_4 *) malloc (sizeof(test_structure_4)); + ts4_type.size = 0; ts4_type.alignment = 0; ts4_type.type = FFI_TYPE_STRUCT; - test_structure_4 ts4_arg; ts4_type.elements = ts4_type_elements; ts4_type_elements[0] = &ffi_type_uint; ts4_type_elements[1] = &ffi_type_uint; ts4_type_elements[2] = &ffi_type_uint; ts4_type_elements[3] = NULL; - - /* This is a hack to get a properly aligned result buffer */ - test_structure_4 *ts4_result = - (test_structure_4 *) malloc (sizeof(test_structure_4)); - args[0] = &ts4_type; values[0] = &ts4_arg; /* Initialize the cif */ - CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1, &ts4_type, args) == FFI_OK); + CHECK(ffi_prep_cif(&cif, ABI_NUM, 1, &ts4_type, args) == FFI_OK); ts4_arg.ui1 = 2; ts4_arg.ui2 = 3; |