OSDN Git Service

* src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 Dec 2009 02:42:18 +0000 (02:42 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 Dec 2009 02:42:18 +0000 (02:42 +0000)
type on HP-UX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155205 138bc75d-0d04-0410-961f-82ee72b054a4

libffi/ChangeLog
libffi/src/pa/ffi.c

index 517ac4e..647e91f 100644 (file)
@@ -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
index c7a1435..6d7606f 100644 (file)
@@ -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