Hi, A recent patch fixed libffi.call/many.c to check that the absolute value of the difference of its two test results was smaller than FLT_EPSILON, rather than just checking their difference. Sadly, this exposes a problem with the testcase for targets with a fused-multiply-add instruction. After inlining the non-ffi function body, GCC will happily contract the final multiply with the subtract for the comparison. Thus skipping the rounding step after the multiply and causing an error large enough to cause the test to fail. Fixed by adding -ffp-contract=off to the list of dg-options thus suppressing the introduction of fused-multiply-add. Tested on aarch64-none-linux-gnu to ensure the failure becomes a pass. Thanks, James Greenhalgh --- 2013-04-08 James Greenhalgh * testsuite/libffi.call/many.c: Set -ffp-contract=off.