diff options
author | Kaz Kojima <kkojima@gcc.gnu.org> | 2006-02-18 00:35:13 +0000 |
---|---|---|
committer | Kaz Kojima <kkojima@gcc.gnu.org> | 2006-02-18 00:35:13 +0000 |
commit | e097f8873d8389995b81b2794f7ec718064fb8b6 (patch) | |
tree | 979210fcf1532855829f967a4fdd19327886843b /libffi | |
parent | a30425018e7567900b7f51354ae994f7f5b47335 (diff) | |
download | gcc-e097f8873d8389995b81b2794f7ec718064fb8b6.zip gcc-e097f8873d8389995b81b2794f7ec718064fb8b6.tar.gz gcc-e097f8873d8389995b81b2794f7ec718064fb8b6.tar.bz2 |
ffi.c (ffi_closure_helper_SYSV): Remove unused variable and cast integer to void * if needed.
* src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
and cast integer to void * if needed. Update the pointer to
the FP register saved area correctly.
From-SVN: r111225
Diffstat (limited to 'libffi')
-rw-r--r-- | libffi/ChangeLog | 6 | ||||
-rw-r--r-- | libffi/src/sh/ffi.c | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/libffi/ChangeLog b/libffi/ChangeLog index 6d1542e..2ed033e 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,9 @@ +2006-02-18 Kaz Kojima <kkojima@gcc.gnu.org> + + * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable + and cast integer to void * if needed. Update the pointer to + the FP register saved area correctly. + 2006-02-17 Andreas Tobler <a.tobler@schweiz.ch> * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630 diff --git a/libffi/src/sh/ffi.c b/libffi/src/sh/ffi.c index 38449e9..2bcb981 100644 --- a/libffi/src/sh/ffi.c +++ b/libffi/src/sh/ffi.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------- - ffi.c - Copyright (c) 2002, 2003, 2004, 2005 Kaz Kojima + ffi.c - Copyright (c) 2002, 2003, 2004, 2005, 2006 Kaz Kojima SuperH Foreign Function Interface @@ -535,7 +535,6 @@ ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue, int freg = 0; #endif ffi_cif *cif; - double temp; cif = closure->cif; avalue = alloca(cif->nargs * sizeof(void *)); @@ -544,7 +543,7 @@ ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue, returns the data directly to the caller. */ if (cif->rtype->type == FFI_TYPE_STRUCT && STRUCT_VALUE_ADDRESS_WITH_ARG) { - rvalue = *pgr++; + rvalue = (void *) *pgr++; ireg = 1; } else @@ -611,6 +610,8 @@ ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue, { if (freg + 1 >= NFREGARG) continue; + if (freg & 1) + pfr++; freg = (freg + 1) & ~1; freg += 2; avalue[i] = pfr; |