From: Kaz Kojima Date: Tue, 13 Mar 2012 22:50:16 +0000 (+0000) Subject: ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI when... X-Git-Tag: upstream/12.2.0~77402 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=60f9021b2aaaf6beeb05c8abb48ecbad31e0b768;p=platform%2Fupstream%2Fgcc.git ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI when things are wrong. * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI when things are wrong. * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto. From-SVN: r185361 --- diff --git a/libffi/ChangeLog b/libffi/ChangeLog index bb5bc162..2884780 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,9 @@ +2012-03-13 Kaz Kojima + + * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, + just return FFI_BAD_ABI when things are wrong. + * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto. + 2012-03-03 H.J. Lu * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned diff --git a/libffi/src/sh/ffi.c b/libffi/src/sh/ffi.c index 69bd025..3515b91 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, 2006, 2007, 2008 Kaz Kojima + ffi.c - Copyright (c) 2002-2008, 2012 Kaz Kojima Copyright (c) 2008 Red Hat, Inc. SuperH Foreign Function Interface @@ -463,7 +463,8 @@ ffi_prep_closure_loc (ffi_closure* closure, unsigned int *tramp; unsigned int insn; - FFI_ASSERT (cif->abi == FFI_GCC_SYSV); + if (cif->abi != FFI_SYSV) + return FFI_BAD_ABI; tramp = (unsigned int *) &closure->tramp[0]; /* Set T bit if the function returns a struct pointed with R2. */ diff --git a/libffi/src/sh64/ffi.c b/libffi/src/sh64/ffi.c index 8fbc05c..123b87a 100644 --- a/libffi/src/sh64/ffi.c +++ b/libffi/src/sh64/ffi.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------- - ffi.c - Copyright (c) 2003, 2004, 2006, 2007 Kaz Kojima + ffi.c - Copyright (c) 2003, 2004, 2006, 2007, 2012 Kaz Kojima Copyright (c) 2008 Anthony Green SuperH SHmedia Foreign Function Interface @@ -302,7 +302,8 @@ ffi_prep_closure_loc (ffi_closure *closure, { unsigned int *tramp; - FFI_ASSERT (cif->abi == FFI_GCC_SYSV); + if (cif->abi != FFI_SYSV) + return FFI_BAD_ABI; tramp = (unsigned int *) &closure->tramp[0]; /* Since ffi_closure is an aligned object, the ffi trampoline is