Many test fixes (failures due to excessive compiler warnings).
This commit is contained in:
@@ -1,3 +1,14 @@
|
|||||||
|
2008-07-24 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* testsuite/libffi.call/cls_dbls_struct.c,
|
||||||
|
testsuite/libffi.call/cls_double_va.c,
|
||||||
|
testsuite/libffi.call/cls_longdouble.c,
|
||||||
|
testsuite/libffi.call/cls_longdouble_va.c,
|
||||||
|
testsuite/libffi.call/cls_pointer.c,
|
||||||
|
testsuite/libffi.call/cls_pointer_stack.c,
|
||||||
|
testsuite/libffi.call/err_bad_abi.c: Clean up failures from
|
||||||
|
compiler warnings.
|
||||||
|
|
||||||
2008-07-17 Anthony Green <green@redhat.com>
|
2008-07-17 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
* configure.ac: Bump version to 3.0.6.
|
* configure.ac: Bump version to 3.0.6.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
This is ../libffi/doc/libffi.info, produced by makeinfo version 4.11
|
This is doc/libffi.info, produced by makeinfo version 4.11 from
|
||||||
from ../libffi/doc/libffi.texi.
|
./doc/libffi.texi.
|
||||||
|
|
||||||
This manual is for Libffi, a portable foreign-function interface
|
This manual is for Libffi, a portable foreign-function interface
|
||||||
library.
|
library.
|
||||||
@@ -516,18 +516,18 @@ Index
|
|||||||
|
|
||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top688
|
Node: Top670
|
||||||
Node: Introduction1424
|
Node: Introduction1406
|
||||||
Node: Using libffi3060
|
Node: Using libffi3042
|
||||||
Node: The Basics3495
|
Node: The Basics3477
|
||||||
Node: Simple Example6102
|
Node: Simple Example6084
|
||||||
Node: Types7129
|
Node: Types7111
|
||||||
Node: Primitive Types7412
|
Node: Primitive Types7394
|
||||||
Node: Structures9232
|
Node: Structures9214
|
||||||
Node: Type Example10092
|
Node: Type Example10074
|
||||||
Node: Multiple ABIs11315
|
Node: Multiple ABIs11297
|
||||||
Node: The Closure API11686
|
Node: The Closure API11668
|
||||||
Node: Missing Features14606
|
Node: Missing Features14588
|
||||||
Node: Index15099
|
Node: Index15081
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@@ -20,12 +20,13 @@ closure_test_fn(Dbls p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
closure_test_gn(ffi_cif* cif,void* resp,void** args, void* userdata)
|
closure_test_gn(ffi_cif* cif __UNUSED__, void* resp __UNUSED__,
|
||||||
|
void** args, void* userdata __UNUSED__)
|
||||||
{
|
{
|
||||||
closure_test_fn(*(Dbls*)args[0]);
|
closure_test_fn(*(Dbls*)args[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc __UNUSED__, char** argv __UNUSED__)
|
||||||
{
|
{
|
||||||
ffi_cif cif;
|
ffi_cif cif;
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,8 @@
|
|||||||
#include "ffitest.h"
|
#include "ffitest.h"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cls_double_va_fn(ffi_cif* cif, void* resp, void** args, void* userdata)
|
cls_double_va_fn(ffi_cif* cif __UNUSED__, void* resp,
|
||||||
|
void** args, void* userdata __UNUSED__)
|
||||||
{
|
{
|
||||||
char* format = *(char**)args[0];
|
char* format = *(char**)args[0];
|
||||||
double doubleValue = *(double*)args[1];
|
double doubleValue = *(double*)args[1];
|
||||||
@@ -49,14 +50,14 @@ int main (void)
|
|||||||
|
|
||||||
ffi_call(&cif, FFI_FN(printf), &res, args);
|
ffi_call(&cif, FFI_FN(printf), &res, args);
|
||||||
// { dg-output "7.0" }
|
// { dg-output "7.0" }
|
||||||
printf("res: %d\n", res);
|
printf("res: %d\n", (int) res);
|
||||||
// { dg-output "\nres: 4" }
|
// { dg-output "\nres: 4" }
|
||||||
|
|
||||||
CHECK(ffi_prep_closure(pcl, &cif, cls_double_va_fn, NULL) == FFI_OK);
|
CHECK(ffi_prep_closure(pcl, &cif, cls_double_va_fn, NULL) == FFI_OK);
|
||||||
|
|
||||||
res = ((int(*)(char*, double))(pcl))(format, doubleArg);
|
res = ((int(*)(char*, double))(pcl))(format, doubleArg);
|
||||||
// { dg-output "\n7.0" }
|
// { dg-output "\n7.0" }
|
||||||
printf("res: %d\n", res);
|
printf("res: %d\n", (int) res);
|
||||||
// { dg-output "\nres: 4" }
|
// { dg-output "\nres: 4" }
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|||||||
@@ -28,7 +28,8 @@ long double cls_ldouble_fn(
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cls_ldouble_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
|
cls_ldouble_gn(ffi_cif* cif __UNUSED__, void* resp,
|
||||||
|
void** args, void* userdata __UNUSED__)
|
||||||
{
|
{
|
||||||
long double a1 = *(long double*)args[0];
|
long double a1 = *(long double*)args[0];
|
||||||
long double a2 = *(long double*)args[1];
|
long double a2 = *(long double*)args[1];
|
||||||
|
|||||||
@@ -8,7 +8,8 @@
|
|||||||
#include "ffitest.h"
|
#include "ffitest.h"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cls_longdouble_va_fn(ffi_cif* cif, void* resp, void** args, void* userdata)
|
cls_longdouble_va_fn(ffi_cif* cif __UNUSED__, void* resp,
|
||||||
|
void** args, void* userdata __UNUSED__)
|
||||||
{
|
{
|
||||||
char* format = *(char**)args[0];
|
char* format = *(char**)args[0];
|
||||||
long double ldValue = *(long double*)args[1];
|
long double ldValue = *(long double*)args[1];
|
||||||
@@ -49,14 +50,14 @@ int main (void)
|
|||||||
|
|
||||||
ffi_call(&cif, FFI_FN(printf), &res, args);
|
ffi_call(&cif, FFI_FN(printf), &res, args);
|
||||||
// { dg-output "7.0" }
|
// { dg-output "7.0" }
|
||||||
printf("res: %d\n", res);
|
printf("res: %d\n", (int) res);
|
||||||
// { dg-output "\nres: 4" }
|
// { dg-output "\nres: 4" }
|
||||||
|
|
||||||
CHECK(ffi_prep_closure(pcl, &cif, cls_longdouble_va_fn, NULL) == FFI_OK);
|
CHECK(ffi_prep_closure(pcl, &cif, cls_longdouble_va_fn, NULL) == FFI_OK);
|
||||||
|
|
||||||
res = ((int(*)(char*, long double))(pcl))(format, ldArg);
|
res = ((int(*)(char*, long double))(pcl))(format, ldArg);
|
||||||
// { dg-output "\n7.0" }
|
// { dg-output "\n7.0" }
|
||||||
printf("res: %d\n", res);
|
printf("res: %d\n", (int) res);
|
||||||
// { dg-output "\nres: 4" }
|
// { dg-output "\nres: 4" }
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|||||||
@@ -11,13 +11,15 @@ void* cls_pointer_fn(void* a1, void* a2)
|
|||||||
{
|
{
|
||||||
void* result = (void*)((long)a1 + (long)a2);
|
void* result = (void*)((long)a1 + (long)a2);
|
||||||
|
|
||||||
printf("0x%08x 0x%08x: 0x%08x\n", a1, a2, result);
|
printf("0x%08x 0x%08x: 0x%08x\n",
|
||||||
|
(unsigned int) a1, (unsigned int) a2, (unsigned int) result);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cls_pointer_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
|
cls_pointer_gn(ffi_cif* cif __UNUSED__, void* resp,
|
||||||
|
void** args, void* userdata __UNUSED__)
|
||||||
{
|
{
|
||||||
void* a1 = *(void**)(args[0]);
|
void* a1 = *(void**)(args[0]);
|
||||||
void* a2 = *(void**)(args[1]);
|
void* a2 = *(void**)(args[1]);
|
||||||
@@ -64,14 +66,14 @@ int main (void)
|
|||||||
|
|
||||||
ffi_call(&cif, FFI_FN(cls_pointer_fn), &res, args);
|
ffi_call(&cif, FFI_FN(cls_pointer_fn), &res, args);
|
||||||
/* { dg-output "0x12345678 0x89abcdef: 0x9be02467" } */
|
/* { dg-output "0x12345678 0x89abcdef: 0x9be02467" } */
|
||||||
printf("res: 0x%08x\n", res);
|
printf("res: 0x%08x\n", (unsigned int) res);
|
||||||
/* { dg-output "\nres: 0x9be02467" } */
|
/* { dg-output "\nres: 0x9be02467" } */
|
||||||
|
|
||||||
CHECK(ffi_prep_closure(pcl, &cif, cls_pointer_gn, NULL) == FFI_OK);
|
CHECK(ffi_prep_closure(pcl, &cif, cls_pointer_gn, NULL) == FFI_OK);
|
||||||
|
|
||||||
res = (ffi_arg)((void*(*)(void*, void*))(pcl))(arg1, arg2);
|
res = (ffi_arg)((void*(*)(void*, void*))(pcl))(arg1, arg2);
|
||||||
/* { dg-output "\n0x12345678 0x89abcdef: 0x9be02467" } */
|
/* { dg-output "\n0x12345678 0x89abcdef: 0x9be02467" } */
|
||||||
printf("res: 0x%08x\n", res);
|
printf("res: 0x%08x\n", (unsigned int) res);
|
||||||
/* { dg-output "\nres: 0x9be02467" } */
|
/* { dg-output "\nres: 0x9be02467" } */
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ void* cls_pointer_fn2(void* a1, void* a2)
|
|||||||
|
|
||||||
void* result = (void*)((long)a1 + (long)a2);
|
void* result = (void*)((long)a1 + (long)a2);
|
||||||
|
|
||||||
printf("0x%08x 0x%08x: 0x%08x\n", a1, a2, result);
|
printf("0x%08x 0x%08x: 0x%08x\n",
|
||||||
|
(unsigned int) a1, (unsigned int) a2, (unsigned int) result);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -63,7 +64,8 @@ void* cls_pointer_fn1(void* a1, void* a2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cls_pointer_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
|
cls_pointer_gn(ffi_cif* cif __UNUSED__, void* resp,
|
||||||
|
void** args, void* userdata __UNUSED__)
|
||||||
{
|
{
|
||||||
void* a1 = *(void**)(args[0]);
|
void* a1 = *(void**)(args[0]);
|
||||||
void* a2 = *(void**)(args[1]);
|
void* a2 = *(void**)(args[1]);
|
||||||
@@ -123,7 +125,7 @@ int main (void)
|
|||||||
printf("\n");
|
printf("\n");
|
||||||
ffi_call(&cif, FFI_FN(cls_pointer_fn1), &res, args);
|
ffi_call(&cif, FFI_FN(cls_pointer_fn1), &res, args);
|
||||||
|
|
||||||
printf("res: 0x%08x\n", res);
|
printf("res: 0x%08x\n", (unsigned int) res);
|
||||||
// { dg-output "\n0x01234567 0x89abcdef: 0x8acf1356" }
|
// { dg-output "\n0x01234567 0x89abcdef: 0x8acf1356" }
|
||||||
// { dg-output "\n0x8acf1356 0x01234567: 0x8bf258bd" }
|
// { dg-output "\n0x8acf1356 0x01234567: 0x8bf258bd" }
|
||||||
// { dg-output "\nres: 0x8bf258bd" }
|
// { dg-output "\nres: 0x8bf258bd" }
|
||||||
@@ -132,7 +134,7 @@ int main (void)
|
|||||||
|
|
||||||
res = (ffi_arg)((void*(*)(void*, void*))(pcl))(arg1, arg2);
|
res = (ffi_arg)((void*(*)(void*, void*))(pcl))(arg1, arg2);
|
||||||
|
|
||||||
printf("res: 0x%08x\n", res);
|
printf("res: 0x%08x\n", (unsigned int) res);
|
||||||
// { dg-output "\n0x01234567 0x89abcdef: 0x8acf1356" }
|
// { dg-output "\n0x01234567 0x89abcdef: 0x8acf1356" }
|
||||||
// { dg-output "\n0x8acf1356 0x01234567: 0x8bf258bd" }
|
// { dg-output "\n0x8acf1356 0x01234567: 0x8bf258bd" }
|
||||||
// { dg-output "\nres: 0x8bf258bd" }
|
// { dg-output "\nres: 0x8bf258bd" }
|
||||||
|
|||||||
@@ -8,7 +8,8 @@
|
|||||||
#include "ffitest.h"
|
#include "ffitest.h"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dummy_fn(ffi_cif* cif, void* resp, void** args, void* userdata)
|
dummy_fn(ffi_cif* cif __UNUSED__, void* resp __UNUSED__,
|
||||||
|
void** args __UNUSED__, void* userdata __UNUSED__)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
int main (void)
|
int main (void)
|
||||||
|
|||||||
Reference in New Issue
Block a user