aarch64: Fix handling of aggregates larger than 16 bytes
authorOle André Vadla Ravnås <oleavr@gmail.com>
Wed, 10 Aug 2016 20:48:09 +0000 (22:48 +0200)
committerOle André Vadla Ravnås <oleavr@gmail.com>
Wed, 10 Aug 2016 20:48:09 +0000 (22:48 +0200)
Instead of allocating stack space for a pointer we would allocate stack
space for the actual aggregate size.

src/aarch64/ffi.c

index cf33abc..a600fbf 100644 (file)
@@ -666,6 +666,7 @@ ffi_call_int (ffi_cif *cif, void (*fn)(void), void *orig_rvalue,
                   the argument is replaced by a pointer to the copy.  */
                a = &avalue[i];
                t = FFI_TYPE_POINTER;
+               s = sizeof (void *);
                goto do_pointer;
              }
            else