For a closure, when an argument is a structure containing multiple floats, it seems that all but the first two floats are lost (on my machine they seem to consistently be set to zeros).
This is a big problem in GNUstep where we pass NSRect structures (containing four floats), but I managed to reproduce it by changing one of the libffi testsuite files to pass a structure containing four floats. I have reproduced this problem with libffi from the 4.? series of gcc and have also found it with libffi-3.0.9rc3 -- Summary: closures fail for some structure arguments containing floats Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: libffi AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rfm at gnu dot org GCC build triplet: x86_64-linux-gnu GCC host triplet: x86_64-linux-gnu GCC target triplet: x86_64-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41908