summaryrefslogtreecommitdiff
path: root/libffi
diff options
context:
space:
mode:
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>2009-12-14 02:42:18 +0000
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>2009-12-14 02:42:18 +0000
commitc64cba58b7b9670c0b9def8148b9736a7e69561f (patch)
treec4ad092727a97a5881fd2ba115edb99e6caaeb65 /libffi
parent0ca690d288c2ac8e1532ac55054fd53be2fe5276 (diff)
downloadgcc-c64cba58b7b9670c0b9def8148b9736a7e69561f.tar.gz
* src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
type on HP-UX. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155205 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libffi')
-rw-r--r--libffi/ChangeLog5
-rw-r--r--libffi/src/pa/ffi.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index 517ac4eff63..647e91f55da 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
+ type on HP-UX.
+
2009-12-11 Eric Botcazou <ebotcazou@adacore.com>
* src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
diff --git a/libffi/src/pa/ffi.c b/libffi/src/pa/ffi.c
index c7a14359a0b..6d7606f89bc 100644
--- a/libffi/src/pa/ffi.c
+++ b/libffi/src/pa/ffi.c
@@ -492,6 +492,13 @@ ffi_status ffi_closure_inner_pa32(ffi_closure *closure, UINT32 *stack)
avalue[i] = (void *)(stack - slot);
break;
+#ifdef PA_HPUX
+ case FFI_TYPE_LONGDOUBLE:
+ /* Long doubles are treated like a big structure. */
+ avalue[i] = (void *) *(stack - slot);
+ break;
+#endif
+
case FFI_TYPE_STRUCT:
/* Structs smaller or equal than 4 bytes are passed in one
register. Structs smaller or equal 8 bytes are passed in two